Community라이팅 & 에디팅github.com

seo-aeo-audit — 검색 엔진 + AI 답변 엔진 가시성 진단 및 실행 계획 수립

검색 엔진과 AI 답변 엔진(AI 개요, ChatGPT, Perplexity 등)을 위한 증거 기반 웹사이트 감사 도구입니다. 크롤 접근성부터 AI 인용 메커니즘까지 10개 트랙을 다루며, 모든 발견에는 관찰 결과와 증거 등급이 포함된 우선순위 변경 계획을 제공합니다. 점수가 아닌 실행 가능한 계획을 산출합니다.

seo-aeo-audit — 검색 엔진 + AI 답변 엔진 가시성 진단 및 실행 계획 수립란 무엇인가요?

이 스킬은 검색 엔진(Google, Yandex, Bing)과 AI 답변 엔진(AI 개요, ChatGPT, Perplexity, Claude, Copilot, Gemini, Alice AI) 모두에서 사이트 가시성을 감사하고 우선순위가 지정된 실행 계획을 수립합니다. 증거 기반 접근 방식을 채택하여 각 발견에 관찰 결과와 증거 등급(CONFIRMED, STUDY, FIELD, HYPOTHESIS)을 할당하며, 추측이나 모범 사례에 의존하지 않습니다. 10개의 구조화된 트랙을 통해 기술적 색인, 콘텐츠 가치, 브랜드 인지도, 측정 체계 등 모든 측면을 다룹니다. 이 도구는 명령줄 스크립트(preflight.py, gsc_pull.py, page_audit.py 등)와 참조 문서를 활용하여 진단을 자동화하며, AI 엔진별 인용 메커니즘을 위한 맞춤형 AEO/GEO 프롬프트를 포함합니다. 최종 산출물은 영향, 확신도, 노력을 기반으로 산출된 우선순위화된 변경 계획과 링크 구축을 위한 키워드 CSV 파일입니다. 이 스킬은 실제 사이트 접근, Search Console, Bing Webmaster, 서버 로그 등에 의존하며, 가동 중인 모든 스킬에 대해 연결 상태를 확인합니다.

지원 대상✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add ssheleg/seo-aeo-audit

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

seo-aeo-audit — 검색 엔진 + AI 답변 엔진 가시성 진단 및 실행 계획 수립은(는) 무엇을 하나요?

한 가지 임무: 실제 사이트를 살펴보고, 증거로 무엇이 잘못되었는지 입증하며, 우선순위가 지정된 변경 계획을 제공합니다. 클래식 검색(Google, Yandex, Bing)과 답변 엔진(AI 개요/AI 모드, ChatGPT, Perplexity, Claude, Copilot, Gemini, Alice AI)을 모두 다룹니다.

이 스킬의 임무가 아닌 것: 콘텐츠 작성, 페이지 구축, 링크 구매. 검증된 진단과 실행 가능한 계획을 제공하는 것으로 끝납니다.

핵심 원칙

  1. 증거 아니면 침묵. 모든 발견에는 관찰 내용, 위치(URL, file:line, 보고서 이름), 관찰된 값, 날짜가 포함되어야 합니다. 이 사이트에서 직접 확인하지 않은 발견은 절대 보고하지 마세요. "모범 사례에 따르면"은 증거가 아닙니다.
  2. 모든 권장 사항에 증거 등급을 표시하세요 (참조/evidence-tiers.md 참조): CONFIRMED (엔진에 의해 문서화되거나 이 사이트에서 재현됨) · STUDY (게시된 다중 사이트 데이터) · FIELD (단일 사례 보고서) · HYPOTHESIS. HYPOTHESIS가 CONFIRMED 차단 항목보다 높은 순위를 차지하지 않도록 하세요.
  3. 처방하기 전에 진단하세요. 원인이 파악될 때까지 수정 사항은 계획에 포함되지 않습니다. "스키마 추가"는 진단이 아닙니다.
  4. 신화 목록을 거부하세요. 아래 "신화 방어"를 참조하세요. 이를 권장하는 것은 고객 예산을 낭비하는 것이며 결함이지 좋은 것이 아닙니다.
  5. 기만적인 전술을 절대 권장하지 마세요. 클로킹, 조작된 합의 네트워크, 리뷰 조작, 경쟁자 비방 공격, 클릭 신호 스푸핑은 계획에서 제외됩니다. 이 스킬에서는 탐지 및 방어해야 할 항목으로만 참조/threats-and-defense.md에 나타납니다.
  6. 확인할 수 없었던 것을 명시하세요. GSC 로그인이 누락된 것은 보고서의 공백이며, 묵시적 누락이 아닙니다.
  7. 측정된 것과 추정된 것을 절대 혼합하지 마세요. 하나의 인도물에 두 가지가 모두 포함된 경우(링크 구축 CSV는 항상 그렇습니다), source 열이 구분하고 측정되지 않은 행의 볼륨 셀은 비워두고 0을 입력하지 마세요. 0은 "측정했지만 수요 없음"으로 읽히고, 비워두면 "아무도 확인하지 않음"으로 읽힙니다. 이 구분은 다른 사람이 예산을 가지고 실행하는 작업에서 가장 중요합니다.
  8. 각 도구의 맹점을 알고 출력에 명시하세요. 규칙 1과 7은 사용자가 작성하는 내용을 규율합니다. 도구가 사용자가 보기도 전에 혼합하거나 생략하는 것을 볼 수 없습니다. 두 가지가 자주 발생합니다. 정적 가져오기는 CMS가 JavaScript로 주입하는 JSON-LD를 볼 수 없으므로, Yoast/RankMath/AIOSEO 사이트에서 "스키마 없음"은 잘못된 발견입니다. scripts/page_audit.py는 모든 스키마 인벤토리 옆에 주의 사항을 출력하며, 부재는 렌더링 확인 후에만 보고 가능합니다. 동의 모드 모델링을 사용하는 GA4는 관찰된 동작과 추정된 동작을 하나의 숫자 안에 반환합니다. 자세한 내용은 참조/measurement.md J1(세 가지 활성화 조건, 가시적 지표, 관찰 전용 폴백)을 참조하세요. 일반적인 규칙: 도구의 침묵이 발견이 되기 전에, 도구가 해당 항목을 전혀 볼 수 있었는지 확인해야 합니다.

0단계 — 모드 감지, 두 번 묻지 않음

먼저 검사한 다음 행동합니다. 순서대로:

  1. docs/seo/ (또는 사용자가 지정한 경로)를 읽습니다. 이전 감사가 존재하는 경우, 이 실행은 재감사입니다: 이전 결과와 비교하고 변경된 사항을 먼저 제시합니다.
  2. 도달 가능한 항목을 확인합니다: 라이브 사이트, 스테이징 URL, robots.txt, sitemap.xml, Search Console / Bing Webmaster / 분석 액세스, 크롤 내보내기(Screaming Frog, Sitebulb), 서버 로그, 연결된 MCP 도구(Ahrefs, GSC, 분석, 크롤러 MCP 또는 Prowl MCP - 벤더별 라이선스 없이 대량 경쟁 및 수요 데이터 제공). 액세스를 테스트하고 가정하지 마세요. 연결된 서버가 작동 중인 서버는 아닙니다. API 계층은 엔드포인트를 제한하고 토큰은 대시보드가 제안하는 것보다 좁은 범위를 전달합니다. 각 소스에 대해 계획을 세우기 전에 하나의 호출을 테스트하고 무엇이 반환되었는지 기록하십시오. "연결되었지만 Insufficient plan 반환"은 다음 감사에 필요한 발견입니다.
  3. 작업 내용을 변경하는 경우에만 사용자와 범위를 선택합니다: 전체 사이트, 하나의 템플릿/섹션, 하나의 질문("5월에 트래픽이 감소한 이유"), 또는 링크 구축 추출 - 타겟, 키워드 및 앵커(계약자용). 이는 진단보다는 인도물입니다: 요청 시 참조/linkbuilding.md를 읽으십시오. Search Console 유무에 관계없이 작동합니다.
  4. 세 줄로 상태 보고: 사용 가능한 입력, 누락된 입력, 범위. 그런 다음 시작합니다. 각 실행이 끝날 때 정확히 하나의 다음 작업을 제안합니다.

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 (엔지니어링 일수 기준, 릴리스 프로세스 포함, 단순 편집 아님).

출력을 다음 네 가지 버킷으로 그룹화하고 이 순서대로 정렬합니다:

  1. 차단기 — 인덱싱, 패널티, 하이재킹, 수익 페이지 접근 불가.
  2. 누수 — 크롤 예산, equity, 잠식, 읽기 예산 낭비.
  3. 이득 — 의도 적합성, 정보 획득, 추출 가능성, 엔티티 합의.
  4. 실험 — 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, 분석, 타사 도구 간의 소스 분산을 인식하고 보고하십시오(합계는 동일한 항목을 측정하지 않습니다).

출력 형식

각 실행은 다음을 생성합니다:

  1. 요약 — 발견된 항목, 등급 및 분류 결과. (수신자가 먼저 읽는 항목)
  2. 현재 상태 — 발견 테이블(URL당 한 행, 심각도, 트랙, 등급, 우선순위 점수, 증거 + 짧은 요약).
  3. 변경 계획 - 우선순위가 지정된 작업 목록(무엇, 왜, 증거, 노력, 담당자에게 필요한 항목).
  4. 링크 구축 브리핑 — 쿼리당 하나의 행이 있는 CSV 대상, 볼륨(비어 있거나 숫자), 앵커 스타일, 출처(측정됨 vs 추정됨). 이는 계약자에게 전달되도록 설계되었습니다.

도구 체인

번들 스크립트에 대한 전체 문서는 참조/scripts.md에서 제공됩니다. 모든 참조 파일은 references/ 디렉토리에 있으며 이 파일에 링크되어 있습니다.

관련 스킬