Community연구 & 데이터 분석github.com

ChaoticSurfer/seo-suite

검색 성과 분석, 트래픽 하락 진단 및 SEO 보고를 수행합니다. '트래픽이 왜 떨어졌을까', '유기적 트래픽 하락', '순위 손실', 'Search Console 내보내기 분석', '빠른 성과 찾기', '근접 키워드', '낮은 CTR 페이지', '키워드 잠식', '이번 달과 지난달 비교', '브랜드 vs 비브랜드', 'Google 업데이트 영향', '서버 로그/Googlebot 크롤 분석', 'SEO 대시보드/KPI 보고서 구축', 'SEO 변경 효과 측정', '순위 추적'에 사용됩니다.

seo-suite란 무엇인가요?

이 SEO 스위트는 Search Console, Bing Webmaster, GA4, 서버 로그 등 퍼스트파티 데이터를 기반으로 검색 성과를 분석하고, 트래픽 하락을 진단하며, KPI 대시보드 및 보고서를 생성하는 Claude Code 용 AI 에이전트 스킬입니다. 주요 기능으로는 근접 키워드 기회 분석(4~20위), CTR 최적화 대상 식별, 키워드 잠식 진단, 기간 비교를 통한 트래픽 하락 원인 파악(알고리즘 업데이트, 기술적 문제, 수요 감소, SERP 대체 등), 서버 로그 분석을 통한 Googlebot 크롤 상태 점검, SEO 변경 효과 측정(A/B 테스트 방식), 그리고 무료 Looker Studio 대시보드 구축 지원을 포함합니다. `gsc_analyze.py`, `log_analyze.py` 등 전용 스크립트를 통해 CLI 기반으로 작동하며, Semrush/Ahrefs 같은 유료 도구의 필요성을 합리적으로 판단하여 추천합니다. 사이트 자체 결함 분석(seo-technical), 신규 콘텐츠 키워드 발굴(seo-keywords), 경쟁사 분석(seo-competitors)은 다루지 않으며, 필요한 경우 해당 스킬로 라우팅합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ChaoticSurfer/seo-suite/tree/HEAD/skills/seo-analytics

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

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

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

문서

분석: 측정, 진단, 보고

퍼스트파티 데이터(Search Console, Bing Webmaster, GA4, 서버 로그)를 의사 결정으로 전환합니다. 추측 대신 고정된 의사 결정 트리로 하락을 진단하고, 변경 사항을 정직하게 측정합니다.

사용 시기 / 사용하지 말아야 할 때

다음에 사용합니다:

  • Search Console, Bing Webmaster, GA4 내보내기
  • 트래픽 하락 및 알고리즘 업데이트 관련 질문
  • CTR 최적화 대상
  • 키워드 잠식
  • 크롤 로그 분석
  • KPI 대시보드
  • 전후 테스트

다음에는 사용하지 않습니다:

  • 사이트 내 결함 찾기 → seo-technical, seo-audit. 이 스킬은 하락 트리가 해당 영역을 가리킬 때 호출합니다.
  • 새 페이지를 위한 키워드 아이디어 → seo-keywords
  • 경쟁사 가시성 → seo-competitors

수집할 입력 데이터

  • Search Console 성과 내보내기
    • UI 내보내기: Queries.csv / Pages.csv (최대 1,000행만).
    • API 또는 Looker Studio 내보내기(쿼리+페이지 행 포함): 키워드 잠식 분석에 필요. API 제한: 요청당 25,000행, 유형당 하루 약 50,000행(google-rules §11).
    • 비교용: 동일 길이, 주중 기준 정렬된 두 기간을 사용하며 마지막 2~3일은 제외합니다(GSC 데이터 지연).
  • 브랜드 정규식. 브랜드 이름과 오타 포함(예: acme|acme ?corp|아크메).
  • 선택 사항:
    • Bing Webmaster 내보내기(동일 형식, gsc_analyze와 호환).
    • GA4 유기적 랜딩 페이지 보고서.
    • 서버 액세스 로그(.log / .gz).
    • 사이트 변경, 배포, 마이그레이션 날짜.
  • 하락 분석용: 시작 시점, 영향받은 섹션/국가/기기, 전환 하락 동반 여부.

워크플로우

A. 기회 분석 (GSC/Bing 내보내기)

  1. 분석 실행:

    mkdir -p seo-work
    python3 "${CLAUDE_PLUGIN_ROOT}/scripts/gsc_analyze.py" Queries.csv --brand "brand|brnd" --min-impressions 50 > seo-work/gsc.json
    python3 "${CLAUDE_PLUGIN_ROOT}/scripts/gsc_analyze.py" query_page.csv --brand "brand" > seo-work/gsc-qp.json   # 키워드 잠식
    

    플래그: --striking-from 4 --striking-to 20 (기본값). 대규모 사이트에서는 --min-impressions 값을 높입니다.

  2. striking_distance(4~20위, est_extra_clicks_at_pos3 [추정치] 기준 정렬)를 읽습니다. 이 페이지들이 우선 개선 대상입니다. 각각을 쿼리와 함께 seo-onpage / seo-content에 전달합니다.

  3. ctr_underperformers를 읽습니다. CTR이 해당 사이트 자체 해당 위치별 중간 CTR(ctr_curve_used; 데이터가 부족하면 기본값으로 대체)의 절반 미만인 상위 10개 쿼리.

    • 원인: 약한 제목/스니펫, 결과 위의 SERP 기능 또는 AI 개요, 의도 불일치.
    • 재작성 전에 WebSearch로 실시간 SERP를 검사하세요.
  4. question_queries: FAQ 섹션 및 답변 우선 구절을 위한 자료(seo-content, seo-ai-search).

  5. brand_split: 비브랜드 클릭을 별도로 보고합니다. 브랜드 수요는 SEO 성과가 아닙니다.

  6. cannibalization: 2개 이상의 페이지가 각각 노출수의 10% 이상을 차지하는 쿼리입니다. 사례별로 결정합니다: 병합 + 301, 의도 차별화, 또는 내부 링크를 기본 페이지로 지정. 모든 분할이 문제는 아닙니다. 두 페이지 모두 순위가 좋다면 그대로 둡니다.

B. 기간 비교 및 트래픽 하락 진단

  1. 비교 실행:

    python3 "${CLAUDE_PLUGIN_ROOT}/scripts/gsc_analyze.py" last_28d.csv --compare prev_28d.csv > seo-work/gsc-compare.json
    

    각 손실 항목에 대해 likely_cause가 제공됩니다:

    • "rankings dropped" (순위 하락)
    • "fewer impressions at similar rank" (수요 또는 SERP 기능으로 인한 노출수 감소)
    • "CTR fell at similar rank" (CTR 하락)

    이는 휴리스틱입니다. "consistent with"(~와 일치) 표현을 사용하세요.

  2. 하락 트리를 순서대로 따라가며 증거가 뒷받침하는 첫 번째 분기에서 멈춥니다. 각 분기에 대한 증거를 기록합니다:

    1. 하락이 실제인가요?

      • GSC 클릭 vs GA4 유기적 세션, 추세 방향 비교(10~20% 수준 차이 예상).
      • GA4에서만 하락 → 추적/동의/태그 문제, SEO 아님.
      • 전년 대비 확인으로 계절성 배제.
    2. 기술적 문제. 병렬 실행:

      • robots_check.py
      • sitemap_check.py
      • page_audit.py (상위 손실 URL 대상)
      • crawl.py (영향받은 섹션 대상)

      확인할 사항:

      • noindex, 정규화 변경, 5xx/429, robots 차단, 리디렉션 변경, 봇 챌린지(bot-challenge).
      • 하락 날짜의 배포.
      • Search Console 페이지 색인 보고서에서 "제외됨" 급증 확인(seo-technical).
    3. 알고리즘 업데이트. 하락 날짜를 Google Search Status Dashboard(https://status.search.google.com/ → 순위 인시던트, 가져오기)와 비교합니다. 패턴 중요:

      • 업데이트 날짜의 사이트 전체 계단식 변화는 시스템 재평가(도움되는 콘텐츠 / 핵심 / 스팸)와 일치합니다. google-rules §4 참조.
      • 섹션별 변화는 페이지 수준 문제를 가리킵니다.
      • Search Console에 수동 조치가 표시되지 않으면 "페널티"라고 말하지 마세요.
    4. 계절성 / 수요. GSC 전년 대비(16개월 데이터, google-rules §11) 및 주요 용어에 대한 Google Trends를 확인합니다. 안정적인 위치에서 노출수 감소 = 수요 감소.

    5. SERP 대체. 위치는 안정적이나 CTR이 감소한 경우. WebSearch로 쿼리 확인:

      • AI 개요 존재? 새로운 기능(동영상, PAA, 쇼핑, 포럼)? 광고?
      • Search Console "Search generative AI performance" 보고서 사용 가능? (google-rules §10)
    6. 경쟁사. 특정 URL에 순위를 빼앗긴 경우 → seo-competitors (승자 URL에 대해 compare_pages 실행). Wayback CDX에서 해당 페이지 변경 시점 확인.

  3. 로그 데이터 사용 가능 시:

    python3 "${CLAUDE_PLUGIN_ROOT}/scripts/log_analyze.py" access.log access.log.1.gz --verify-dns --sitemap-urls seo-work/urls.txt > seo-work/logs.json
    

    확인할 사항:

    • Googlebot 일별 히트 수 감소(크롤 용량 문제: 5xx/429 또는 느린 서버, google-rules §1).
    • 봇에 제공된 오류.
    • 파라미터 URL 비중(크롤 낭비).
    • 사이트맵 경로 중 크롤되지 않은 항목.
    • 가짜 "Googlebot" IP(unverified_ips).
    • AI 봇(OAI-SearchBot, Claude-SearchBot, PerplexityBot)이 사이트에 도달하는지 여부.

C. 보고 및 대시보드

  • KPI. 선행 지표와 후행 지표 구분:
    • 선행: 색인된 페이지(GSC), 노출수, 대상 클러스터 평균 순위, CWV 통과율, 크롤 오류.
    • 후행: 비브랜드 클릭, 유기적 전환/수익(GA4), AI 인용률(seo-ai-search).
  • 무료 대시보드: 기본 Search Console 커넥터(사이트 + URL 노출 테이블) 및 GA4 커넥터와 함께 Looker Studio 사용. 페이지:
    • 개요.
    • 비브랜드 추세(정규식 필터).
    • 클러스터(URL 경로 그룹화).
    • 기회(4~20위).
    • CWV(CrUX 커넥터 또는 psi.py 스냅샷).
  • 월간 보고서: 변경 사항, 이유(증거 태그 포함), 수행한 작업(SEO-WORKLOG.md에서), 다음 단계.

D. SEO 변경 효과 측정

  1. 사전 등록. 변경 전, 작업 로그에 다음을 기록:
    • 변경된 URL.
    • 대조 URL (유사, 변경되지 않음).
    • 메트릭(대상 쿼리의 클릭/노출/CTR/위치).
    • 예상 방향.
    • 기간: 색인 후 ≥4주. URL 검사에서 재크롤 날짜 확인.
  2. 두 그룹에 대해 동일한 길이의 전후 기간을 내보내고, 각 그룹에 대해 gsc_analyze.py after.csv --compare before.csv 실행.
  3. 처리 그룹의 변화 에서 대조 그룹의 변화를 뺀 값을 보고합니다. 페이지 수가 적거나 클릭이 적으면 "inconclusive"(결론 불가)라고 표시합니다. 단일 전후 비교에서 인과관계를 주장하지 마세요.

순위 추적

  • 무료: 쿼리당 Search Console 평균 위치(노출 가중치, 모든 지역). 추세 파악에는 적합하지만 "현재 내 위치가 어디인가"를 보는 용도는 아닙니다.

  • 유료: 고정 키워드 목록의 일일 위치, 위치/기기별, SERP 기능 포함. 다음 경우에 정당화:

    • 지역 또는 다중 도시 순위가 중요한 경우,
    • 고객 계약에 순위 보고서가 필요한 경우,
    • 아직 노출이 없는 키워드를 추적해야 하는 경우.

    옵션: Semrush Position Tracking, Ahrefs Rank Tracker, SE Ranking 또는 스크립트형 확인용 DataForSEO SERP API(tools.md 참조).

체크리스트

확인 항목규칙출처
비교 기간 동일 길이, 주중 정렬, 마지막 2~3일 제외GSC 데이터 2~3일 지연google-rules §11 [Google 문서]
GSC 보존 기간16개월google-rules §11 [Google 문서]
"페널티" 주장수동 조치 보고서 항목이 있는 경우에만google-rules §4 [Google 문서]
AI 개요/AI 모드 트래픽Performance → Web 내에 포함, 별도 클릭 없음google-rules §10 [Google 문서]
Googlebot 크롤 속도 감소5xx/429/느린 응답과 일치google-rules §1 [Google 문서]
CTR 기대치먼저 사이트 자체 곡선 사용. 기본값은 휴리스틱heuristic
키워드 잠식 임계값≥2개 페이지 ≥10% 노출, ≥100 노출heuristic

데이터: 무료 vs 유료

무료로 여기 있는 거의 모든 것을 처리합니다. Search Console (+API), Bing Webmaster (+AI Performance 보고서(가능한 경우, google-rules §10)), GA4, Looker Studio, 서버 로그, Google Search Status Dashboard, Google Trends.

유료 추가 (${CLAUDE_PLUGIN_ROOT}/references/tools.md 참조):

  • Semrush / Ahrefs.
    • 경쟁사 가시성 기록 및 키워드 변동(자체 데이터는 GSC에서 더 좋음).
    • 알고리즘 변동성 센서(Semrush Sensor)를 통해 하락이 업계 전반인지 확인.
    • "우리만 그런가요?" 질문에 답할 때 정당화.
    • 비용 절감 전략: 전체 프로젝트 대신 무료 Sensor 페이지와 단일 경쟁사의 Organic Research 기록 확인.
  • 순위 추적기: 위 참조. 핵심 키워드만 추적하고, 중요한 위치/기기만 제한하세요. 대부분의 도구는 키워드 × 위치 × 기기 × 빈도로 청구하므로, 변동성이 낮은 세트는 일일보다 주간 선호.
  • Screaming Frog 로그 파일 분석기 (## Screaming Frog). 로그가 매우 크고 사용자가 GUI를 선호하는 경우 유용. log_analyze.py로 핵심 질문을 무료로 처리 가능.

서드파티 트래픽 수치에는 [벤더 데이터] / [추정치] 라벨을 붙이세요. 모델링된 값이며 측정값이 아닙니다.

출력

  1. seo-work/gsc.json 및 관련 파일, 간단한 결과 요약:
    • 상위 10개 근접 거리 기회: 쿼리, 페이지, 예상 추가 클릭 [추정치].
    • 상위 CTR 수정 대상.
    • 키워드 잠식 결정.
  2. 하락 진단: 각 분기별 ✅/❌ 및 증거, "consistent with"(일치) 표현의 가장 가능성 높은 설명, 적절한 스킬로 라우팅되는 다음 조치.
  3. KPI/대시보드 명세(Looker Studio 데이터 소스, 필드, 필터) 또는 월간 보고서 초안.
  4. 실험 기록(사전 등록 + 결과).

함정 및 오해

  • 평균 위치는 모든 쿼리/위치에 걸쳐 노출 가중치가 적용됩니다. 새 2페이지 순위가 트래픽 증가와 함께 평균을 낮출 수 있습니다.
  • UI 내보내기는 1,000행으로 제한되고 익명화된 쿼리를 숨기므로 총계가 차트와 일치하지 않습니다.
  • 업데이트 날짜의 하락이 업데이트로 인한 것임을 증명하지는 않습니다. 기술적 원인과 추적 원인을 먼저 배제하세요.
  • 계절성 비즈니스의 경우 전년 대비가 전월 대비보다 낫습니다.
  • 노출은 유지되면서 클릭이 감소하는 경우는 종종 AI 개요 또는 다른 SERP 기능 때문이지 순위 손실 때문이 아닙니다.
  • **GA4 "organic"**은 동의 모드와 채널 그룹화에 따라 달라지므로 하락 날짜의 설정 변경을 확인하세요.
  • 클릭베이트 제목으로 CTR을 최적화하지 마세요. Google이 이를 다시 작성할 수 있습니다(google-rules §3).

작업 기록

SEO-WORKLOG.md (${CLAUDE_PLUGIN_ROOT}/references/worklog.md)에 추가:

  • 사용된 내보내기(날짜 범위).
  • 실행된 스크립트.
  • 증거 태그가 포함된 결과.
  • 진단 결론.
  • 사전 등록된 실험.
  • 유료 도구 사용.
  • 재확인 날짜(예: "제목 테스트를 위해 2026-11-21에 GSC 재추출").

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

ChaoticSurfer/seo-suite

Use for visibility in AI answers (AEO, GEO, "LLM SEO") — "get cited by ChatGPT / Perplexity / Google AI Overviews / AI Mode / Copilot / Claude / Gemini", "why doesn't ChatGPT mention us", "should we block GPTBot or ClaudeBot", "AI crawler access", "do we need llms.txt", "track our AI visibility", "brand in AI answers", "opt out of AI Overviews". Covers eligibility, crawler policy by purpose (search vs user-fetch vs training), Bing indexing for ChatGPT and Copilot, consistent entity facts, citable content, off-site sources, and repeatable measurement with confidence intervals. Not for: classic keyword and ranking work (seo-keywords, seo-content), schema validation (seo-schema), Business Profile and maps (seo-local), traffic-drop forensics (seo-analytics).

ChaoticSurfer/seo-suite

Competitor and SERP analysis. Use for "who are my SEO competitors", "why does X outrank me", "compare my page with the top results", "competitor content gap", "keyword gap vs competitors", "what is ranking for <keyword>", "SERP features for <keyword>", "competitor backlinks", "how much traffic does competitor get", "what did competitor change on their page", "monitor competitor sites". Finds real SERP competitors (not just business rivals), compares pages with compare_pages.py, inventories SERP features and intent, tracks competitor page changes via the Wayback Machine, and states exactly when Semrush/Ahrefs/Similarweb are worth paying for. Not for keyword discovery from seeds (seo-keywords), link building execution (seo-links), or your own traffic analysis (seo-analytics).

관련 스킬