seo-aeo-audit — 검색 엔진 + AI 답변 엔진 가시성 진단 및 실행 계획 수립은(는) 무엇을 하나요?
한 가지 임무: 실제 사이트를 살펴보고, 증거로 무엇이 잘못되었는지 입증하며, 우선순위가 지정된 변경 계획을 제공합니다. 클래식 검색(Google, Yandex, Bing)과 답변 엔진(AI 개요/AI 모드, ChatGPT, Perplexity, Claude, Copilot, Gemini, Alice AI)을 모두 다룹니다.
이 스킬의 임무가 아닌 것: 콘텐츠 작성, 페이지 구축, 링크 구매. 검증된 진단과 실행 가능한 계획을 제공하는 것으로 끝납니다.
핵심 원칙
- 증거 아니면 침묵. 모든 발견에는 관찰 내용, 위치(
URL,file:line, 보고서 이름), 관찰된 값, 날짜가 포함되어야 합니다. 이 사이트에서 직접 확인하지 않은 발견은 절대 보고하지 마세요. "모범 사례에 따르면"은 증거가 아닙니다. - 모든 권장 사항에 증거 등급을 표시하세요 (참조/evidence-tiers.md 참조):
CONFIRMED(엔진에 의해 문서화되거나 이 사이트에서 재현됨) ·STUDY(게시된 다중 사이트 데이터) ·FIELD(단일 사례 보고서) ·HYPOTHESIS. HYPOTHESIS가 CONFIRMED 차단 항목보다 높은 순위를 차지하지 않도록 하세요. - 처방하기 전에 진단하세요. 원인이 파악될 때까지 수정 사항은 계획에 포함되지 않습니다. "스키마 추가"는 진단이 아닙니다.
- 신화 목록을 거부하세요. 아래 "신화 방어"를 참조하세요. 이를 권장하는 것은 고객 예산을 낭비하는 것이며 결함이지 좋은 것이 아닙니다.
- 기만적인 전술을 절대 권장하지 마세요. 클로킹, 조작된 합의 네트워크, 리뷰 조작, 경쟁자 비방 공격, 클릭 신호 스푸핑은 계획에서 제외됩니다. 이 스킬에서는 탐지 및 방어해야 할 항목으로만 참조/threats-and-defense.md에 나타납니다.
- 확인할 수 없었던 것을 명시하세요. GSC 로그인이 누락된 것은 보고서의 공백이며, 묵시적 누락이 아닙니다.
- 측정된 것과 추정된 것을 절대 혼합하지 마세요. 하나의 인도물에 두 가지가 모두 포함된 경우(링크 구축 CSV는 항상 그렇습니다),
source열이 구분하고 측정되지 않은 행의 볼륨 셀은 비워두고 0을 입력하지 마세요.0은 "측정했지만 수요 없음"으로 읽히고, 비워두면 "아무도 확인하지 않음"으로 읽힙니다. 이 구분은 다른 사람이 예산을 가지고 실행하는 작업에서 가장 중요합니다. - 각 도구의 맹점을 알고 출력에 명시하세요. 규칙 1과 7은 사용자가 작성하는 내용을 규율합니다. 도구가 사용자가 보기도 전에 혼합하거나 생략하는 것을 볼 수 없습니다. 두 가지가 자주 발생합니다. 정적 가져오기는 CMS가 JavaScript로 주입하는 JSON-LD를 볼 수 없으므로, Yoast/RankMath/AIOSEO 사이트에서 "스키마 없음"은 잘못된 발견입니다.
scripts/page_audit.py는 모든 스키마 인벤토리 옆에 주의 사항을 출력하며, 부재는 렌더링 확인 후에만 보고 가능합니다. 동의 모드 모델링을 사용하는 GA4는 관찰된 동작과 추정된 동작을 하나의 숫자 안에 반환합니다. 자세한 내용은 참조/measurement.md J1(세 가지 활성화 조건, 가시적 지표, 관찰 전용 폴백)을 참조하세요. 일반적인 규칙: 도구의 침묵이 발견이 되기 전에, 도구가 해당 항목을 전혀 볼 수 있었는지 확인해야 합니다.
0단계 — 모드 감지, 두 번 묻지 않음
먼저 검사한 다음 행동합니다. 순서대로:
docs/seo/(또는 사용자가 지정한 경로)를 읽습니다. 이전 감사가 존재하는 경우, 이 실행은 재감사입니다: 이전 결과와 비교하고 변경된 사항을 먼저 제시합니다.- 도달 가능한 항목을 확인합니다: 라이브 사이트, 스테이징 URL,
robots.txt,sitemap.xml, Search Console / Bing Webmaster / 분석 액세스, 크롤 내보내기(Screaming Frog, Sitebulb), 서버 로그, 연결된 MCP 도구(Ahrefs, GSC, 분석, 크롤러 MCP 또는 Prowl MCP - 벤더별 라이선스 없이 대량 경쟁 및 수요 데이터 제공). 액세스를 테스트하고 가정하지 마세요. 연결된 서버가 작동 중인 서버는 아닙니다. API 계층은 엔드포인트를 제한하고 토큰은 대시보드가 제안하는 것보다 좁은 범위를 전달합니다. 각 소스에 대해 계획을 세우기 전에 하나의 호출을 테스트하고 무엇이 반환되었는지 기록하십시오. "연결되었지만Insufficient plan반환"은 다음 감사에 필요한 발견입니다. - 작업 내용을 변경하는 경우에만 사용자와 범위를 선택합니다: 전체 사이트, 하나의 템플릿/섹션, 하나의 질문("5월에 트래픽이 감소한 이유"), 또는 링크 구축 추출 - 타겟, 키워드 및 앵커(계약자용). 이는 진단보다는 인도물입니다: 요청 시 참조/linkbuilding.md를 읽으십시오. Search Console 유무에 관계없이 작동합니다.
- 세 줄로 상태 보고: 사용 가능한 입력, 누락된 입력, 범위. 그런 다음 시작합니다. 각 실행이 끝날 때 정확히 하나의 다음 작업을 제안합니다.
scripts/preflight.py는 이 단계의 자동화 가능한 절반을 수행하고 오류가 발생한 독립 게이트를 보고합니다. Search Console, GSC API 및 PageSpeed는 모두 다른 이유로 403을 반환합니다. 정확히 무엇을 검사하고 무엇을 남기는지(Bing/Yandex, 분석, 서버 로그, 크롤 내보내기 및 모든 MCP 도구) 참조/preflight.md를 읽으십시오. 녹색 사전 점검이 단계를 다룬 것은 아닙니다.
# Claude Code 플러그인: ${CLAUDE_PLUGIN_ROOT}는 스킬 콘텐츠 내에서 확장됩니다.
SKILL_DIR="${CLAUDE_PLUGIN_ROOT}/skills/seo-aeo-audit"
# 다른 채널: 기본 디렉토리는 이 스킬을 로드할 때 하니스가 지정하는 경로입니다.
# 이 SKILL.md가 있는 디렉토리입니다. 의존하기 전에 확인하세요:
ls "$SKILL_DIR/scripts/preflight.py"
여기서 No such file or directory는 누락된 기능이 아니며 조용히 진행할 이유가 아닙니다. 이는 여섯 가지 도구에 도달할 수 없음을 의미하며, 따라서 그들이 수행했을 모든 검사는 증거 사다리의 가장 낮은 단으로 떨어집니다. 그리고 발견의 단계는 등급을 제한합니다. 세 줄 상태에서 이를 말하십시오. 조용히 수동 감사가 된 감사는 결론의 가치를 변경했습니다(핵심 원칙 #6).
python3 "$SKILL_DIR/scripts/preflight.py" --site sc-domain:example.com --origin https://example.com
액세스 규칙: 기본적으로 읽기 전용입니다. 이 세션에서 명시적 승인 없이 양식을 제출하거나, 인덱싱을 요청하거나, 링크를 거부하거나, 라이브 속성을 변경하지 마십시오. 이는 외부 지향적 작업입니다.
1단계 — 의견 전에 기준 설정
날짜를 기록하여 이후의 모든 주장을 측정할 수 있도록 합니다:
- 국가 및 기기별 유기적 클릭수/노출수/평균 순위, 12개월(GSC + Bing), 그리고 드롭 또는 플래티넘 기간(있는 경우);
- 템플릿별 색인된 vs 게시된 URL 수(
site:는 냄새 테스트, GSC 페이지 보고서가 실제 숫자); - 상위 20개 수익 또는 전환 페이지 및 현재 순위;
- AI 표면 기준: 참조/aeo-geo.md의 브랜드 및 카테고리 프롬프트 세트를 도달 가능한 각 엔진에 대해 실행하고 답변을 그대로 기록;
- 실제로 사이트를 가져오는 AI 크롤러(서버 로그; 스푸퍼를 필터링하기 위한 정방향 확인 역방향 DNS) 및 분석에 나타나는 AI 리퍼러;
- 업데이트 타임라인: 원인에 대한 가설을 세우기 전에 곡선의 모든 변경 사항을 참조/algorithm-updates.md와 날짜 정렬.
자사 액세스가 전혀 없는 경우, 세 줄 상태에서 이를 말하고 타사 인덱스가 설정할 수 있는 것으로 대체: 도메인이 오늘 무엇을 순위 지정하는지, 링크 프로필이 경쟁 세트 크기와 비교하여 얼마나 큰지, 타겟 문구가 측정 가능한 수요를 가지고 있는지(참조/prowl-mcp.md 참조). 해당 기준은 STUDY로 제한되며 "이 페이지가 색인되지 않은 이유"에 답할 수 없습니다. 그러나 콜드 스타트와 감소를 구분하기에 충분하며, 이들은 반대되는 계획이 필요합니다.
사이트가 트래픽 감소를 주장하는 경우, 먼저 보고 실패와 순위 실패를 분리하십시오: 고정된 GSC 보고서는 클릭을 한 날짜에 고정하는 반면 실제 히트는 계속 새로운 감소 지점을 생성합니다. 알고리즘 원인을 진단하기 전에 GA4 세션, 서버 로그 및 독립적인 순위 추적기를 교차 확인하십시오.
2단계 — 10개 트랙
범위 내에 있는 모든 트랙을 실행합니다. 각 트랙에는 구체적인 검사, 2026년 현재의 함정, 캡처할 증거가 포함된 자체 참조 파일이 있습니다.
| # | 트랙 | 답변 | 참조 |
|---|---|---|---|
| A | 접근 및 색인 경제학 | 봇이 이것을 가져오고, 렌더링하고, 감당할 수 있습니까? 크롤 예산은 어디에서 소모됩니까? | technical-checks.md |
| B | 표준화 및 중복 | 표준 URL은 무엇이며, 엔진이 동의합니까? hreflang 포함? | technical-checks.md |
| C | 아키텍처 및 링크 equity | 머니 페이지가 권위, 깊이 및 크롤 빈도를 얻습니까? | architecture-and-equity.md |
| D | 의도 및 SERP 적합성 | 각 페이지가 SERP와 일치하며, 페이지가 잠식합니까? | intent-and-content.md + onpage-checks.md |
| E | 콘텐츠 가치 | AI가 복제할 수 없는 순위를 위한 이유? | intent-and-content.md + ranking-model.md |
| F | 추출 가능성 및 AEO/GEO | 답변 엔진이 이를 검색, 읽고 인용할 수 있습니까? | aeo-geo.md |
| G | 엔티티 및 브랜드 합의 | 모델이 브랜드를 일관되게 알고 이름을 지정합니까? | entity-and-brand.md |
| H | 경험, 전환 및 속성 | 작업이 여기서 완료되었거나 다시 튕겼습니까? 전환되었고 측정되었습니까? | experience-signals.md + demand-and-conversion.md |
| I | 위험 및 위협 | 패널티, 하이재킹, 주입, 비방. | threats-and-defense.md |
| J | 측정 | 계획이 효과가 있었는지 누군가 알 수 있습니까? | measurement.md |
Discover는 10개 트랙 중 하나가 아니며 트랙 A의 일부가 아닙니다. 자체 순위 패스, 자체 게이트(두 개의 메타태그, 없으면 카드가 전혀 렌더링되지 않음) 및 자체 신선도 곡선이 있으므로 Discover가 주요 트래픽 소스인 사이트는 열한 번째 패스로 참조/discover.md를 실행해야 합니다. 그렇지 않은 사이트는 완전히 건너뛸 수 있습니다. 결정하기 전에 GSC Discover 보고서를 확인하세요: 참조는 이 파일 하단의 목록에서만 접근 가능하게 제공되었으며, 이는 순서대로 트랙을 작업하는 에이전트가 절대 열지 않았음을 의미합니다.
어떤 감소 진단 이전에도, 참조/algorithm-updates.md의 날짜 정렬 및 업데이트 응답 프로토콜을 실행하십시오. "코어 업데이트가 우리를 강타했습니다"는 발견이 아니며, 문서화된 GSC 중단의 절반이 출시와 일치했습니다.
각 트랙에는 두 부분이 있습니다: 진단 작업(무엇이 잘못되었고 왜)과 완전성을 위한 기계적 스위프입니다 - 트랙 A/B의 경우 technical-checks.md §A3, D/E의 경우 onpage-checks.md. 먼저 진단을 실행하십시오. 그런 다음 스위프는 지루한 오류를 잡고, 관찰 가능한 영향을 가진 스위프 항목만 발견 테이블로 승격됩니다.
순서가 중요합니다. 트랙 A 차단기(사이트를 가져올 수 없음, 사전 렌더링 소스에 noindex, 수동 조치)는 다른 모든 발견을 무의미하게 만듭니다. F/G에 시간을 쓰기 전에 A → B → C를 작업하십시오.
증거 사다리 — 전체 라우팅은 참조/tooling.md에 있습니다. 증거 강도 순으로 정렬되며, 편의성 순이 아닙니다: 서버 로그 → Search Console / Bing / Yandex → 전체 크롤 → 필드 성능 데이터 → 타사 인덱스 → 수동 가져오기 및 DevTools. 각 검사에 대해 실제로 도달할 수 있는 가장 높은 단계를 사용하고 보고서에서 발견이 어느 단계에 기반하는지 명시하십시오. 속성 액세스가 없는 공개 전용 감사는 유효한 작업이지만, 인덱싱 및 쿼리 발견은 추론일 뿐 관찰이 아니며 그에 따라 등급이 매겨집니다.
6개의 번들 스크립트 — preflight.py, gsc_pull.py, page_audit.py, url_inspection.py, sitemap_audit.py, psi_pull.py — 모든 트랙의 기계적 절반을 수집합니다. 호출, 플래그, 할당량 및 스크립트별 제한에 대해서는 참조/scripts.md를 읽으십시오.
발견의 실제성 여부를 결정하는 네 가지 함정:
page_audit.py의 스키마 인벤토리는 서버 렌더링 HTML만 읽습니다. CMS가 JavaScript로 JSON-LD를 주입하는 경우, 빈 인벤토리는 마크업이 없다는 증거가 아닙니다(핵심 원칙 #8).--format json은 하나의 URL에 대해서도 페이지당 하나의 객체인 배열을 내보냅니다:data[0]을 인덱싱하십시오.--max-bytes로 잘린 응답은 측정으로서의 단편을 게시하는 대신 모든 카운트 기반 발견을 드롭합니다.- 내보내진 모든 발견은 심각도뿐만 아니라 증거 등급도 가지며, 등급만이 분류 공식에 입력됩니다. 심각성은 발견이 얼마나 큰지입니다. 등급은 그것을 뒷받침하는 것입니다.
url_inspection.py는 가져오기에서 추론하는 대신 인덱스에 질문하며, 이는 발견이CONFIRMED에 도달하는 유일한 방법입니다. 속성당 할당량은 2000/일 및 600/분이므로 템플릿당 하나의 URL과 발견이 실제로 관련된 페이지를 샘플링하십시오.
3단계 — 분류
모든 발견에 점수를 매긴 다음 정렬합니다. 순위가 매겨지지 않은 목록을 제시하지 마십시오.
우선순위 = (영향 × 확신도) / 노력
- 영향 1–5: 수익 페이지 차단 = 5; 템플릿 전체 누수 = 4; 단일 정보 페이지 = 1. 기준이 허용하는 경우 트래픽 또는 수익 측면에서 추정합니다.
- 확신도: CONFIRMED 1.0 · STUDY 0.7 · FIELD 0.4 · HYPOTHESIS 0.2.
- 노력 1–5 (엔지니어링 일수 기준, 릴리스 프로세스 포함, 단순 편집 아님).
출력을 다음 네 가지 버킷으로 그룹화하고 이 순서대로 정렬합니다:
- 차단기 — 인덱싱, 패널티, 하이재킹, 수익 페이지 접근 불가.
- 누수 — 크롤 예산, equity, 잠식, 읽기 예산 낭비.
- 이득 — 의도 적합성, 정보 획득, 추출 가능성, 엔티티 합의.
- 실험 — CONFIRMED 미만으로 롤아웃보다 분할 테스트가 필요한 모든 것. 참조/experiments.md에 따라 설계하고, HYPOTHESIS를 롤아웃하지 마십시오.
신화 방어
다음은 이 스킬이 절대 권장하지 않거나 비용을 청구하지 않는 항목입니다. 발견되면 결함으로 보고하십시오:
- "메타 키워드 태그" (Google에서 20년 이상 무시됨)
- "페이지의 단어 수" (순위 신호가 아님; 참조/ranking-model.md 참조)
- "도메인 나이" (스팸 방어 이외의 순위 요소가 아님)
- ".edu/.gov 링크"가 본질적으로 우수함 (편집적 의미만 중요)
- "Google 샌드박스" (문서화되지 않음; HYPOTHESIS로만 보고 가능)
- "SEO 점수" (단일 숫자가 전달하는 정보가 없음. 이 스킬은 점수를 생성하지 않음)
- "소셜 신호가 순위에 직접적임" (HYPOTHESIS)
- "빠른 호스팅이 순위 이점을 제공함" (Core Web Vitals는 성능을 보지만 호스팅 속도는 신호가 아님)
측정 체계 및 정량적 정밀도
참조/measurement.md는 GA4의 동의 모드 모델링, MTA, GSC 지연, 전환 창, 속성 및 80%/20% 허용 오차를 다루지만, 정밀도 규칙은 모든 트랙에 적용됩니다:
- 소수점 첫째 자리에서 반올림 보고서의 모든 퍼센트 및 비율. 87.3%는 정밀도를 가장합니다; 87%는 실제입니다.
- 절대 개수는 정수입니다.
- 상대 숫자에는 참조를 포함하십시오. "페이지당 링크 47개"는 평균을 1.5로 반올림할 수 있는 사이트에서 의미가 없습니다. 중앙값과 범위가 선호됩니다.
- 어느 쪽이 더 큰지 알 수 없는 경우 비교를 "vs"로 표시하십시오.
- GSC, 분석, 타사 도구 간의 소스 분산을 인식하고 보고하십시오(합계는 동일한 항목을 측정하지 않습니다).
출력 형식
각 실행은 다음을 생성합니다:
- 요약 — 발견된 항목, 등급 및 분류 결과. (수신자가 먼저 읽는 항목)
- 현재 상태 — 발견 테이블(URL당 한 행, 심각도, 트랙, 등급, 우선순위 점수, 증거 + 짧은 요약).
- 변경 계획 - 우선순위가 지정된 작업 목록(무엇, 왜, 증거, 노력, 담당자에게 필요한 항목).
- 링크 구축 브리핑 — 쿼리당 하나의 행이 있는 CSV 대상, 볼륨(비어 있거나 숫자), 앵커 스타일, 출처(측정됨 vs 추정됨). 이는 계약자에게 전달되도록 설계되었습니다.
도구 체인
번들 스크립트에 대한 전체 문서는 참조/scripts.md에서 제공됩니다. 모든 참조 파일은 references/ 디렉토리에 있으며 이 파일에 링크되어 있습니다.