Community研究与数据分析github.com

ChaoticSurfer/seo-suite

搜索性能分析、流量下降诊断与 SEO 报告。用于分析“为什么我们的流量下降了”、“自然搜索流量减少”、“排名丢失”、“分析我的 Search Console 导出数据”、“在 GSC 中寻找快速优化机会”、“触手可及的关键词”、“低点击率页面”、“关键词自相残杀”、“本月与上月对比”、“品牌与非品牌流量”、“Google 更新是否影响了我们”、“分析服务器日志 / Googlebot 爬取”、“构建 SEO 仪表板 / KPI 报告”、“我的 SEO 改动是否有效”、“排名跟踪”。使用 gsc_analyze.py、log_analyze.py 和 Looker Studio(免费);说明何时值得付费使用 Semrush/Ahrefs 排名跟踪。不适用于:抓取网站缺陷(seo-technical / seo-audit)、为新内容发现关键词(seo-keywords)或竞争对手研究(seo-competitors)。

seo-suite 是什么?

ChaoticSurfer/seo-suite 是一款专注于利用第一方数据进行搜索性能分析、流量下降诊断和 SEO 报告的专业 AI 技能。它通过固定的决策树来诊断流量下降问题,而非猜测,并诚实衡量 SEO 变动带来的影响。该技能支持 Google Search Console (GSC)、Bing Webmaster、GA4 以及服务器日志等多种数据源,适用于 Claude Code、Cursor 等 AI Agent 平台。其核心功能包括:机会分析(识别触手可及的关键词和低点击率页面)、时期对比与流量下降诊断(通过多步骤决策树排除技术问题、算法更新、季节性等因素)、报告与仪表板(推荐使用免费的 Looker Studio 构建 KPI 仪表板)、以及衡量 SEO 改动效果(支持预先注册实验并使用对照 URL 组)。技能提供了专门的 Python 脚本来处理数据(如 gsc_analyze.py 和 log_analyze.py),并明确区分了免费与付费工具的使用场景。

兼容平台✓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 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

分析:衡量、诊断、报告

将第一方数据(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 导出(包含 query+page 行):关键词自相残杀分析需要。API 限制:每次请求 25k 行,每天每种类型约 50k 行(参见 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;当数据不足时,会回退到默认值)。

    • 原因:标题/摘要文本质量差、搜索结果中存在 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"(排名相近但点击率下降)

    这些是启发式判断:在表述时请使用“与……一致”的语言。

  2. 按顺序遍历下降诊断树,并在证据支持的第一个分支处停止。记录每个分支的证据:

    1. 下降是否真实?

      • 对比 GSC 点击量与 GA4 自然搜索会话的趋势方向(预计存在 10-20% 的数据级别差异)。
      • 仅在 GA4 中观察到下降 → 可能是跟踪/用户同意/标签问题,而非 SEO 问题。
      • 检查同比数据以排除季节性因素。
    2. 技术问题。 并行运行以下检查:

      • robots_check.py
      • sitemap_check.py
      • 对排名下降最严重的 URL 运行 page_audit.py
      • 对受影响的版块运行 crawl.py

      查找以下信号:

      • noindex、canonical 标签变更、5xx/429 错误、robots.txt 拦截、重定向变更、机器人验证挑战(bot-challenge)。
      • 下降日期是否有部署活动。
      • Search Console 的页面索引报告中是否有“已排除”页面的数量激增(可借助 seo-technical 技能)。
    3. 算法更新。 将下降日期与 Google 搜索状态仪表板进行比对(访问 https://status.search.google.com/ → 排名事件;需获取页面内容)。下降模式至关重要:

      • 整个网站在更新日期出现阶梯式下降,表明系统进行了重新评估(可能涉及实用内容/核心/垃圾内容更新)。参见 google-rules §4。
      • 特定版块的下降指向页面级别的问题。
      • 除非 Search Console 显示了人工操作,否则切勿使用“惩罚”一词。
    4. 季节性 / 需求变化。 查看 GSC 中的同比数据(最长 16 个月;参见 google-rules §11),以及核心关键词的 Google Trends 趋势。如果排名稳定但展示次数下降 = 需求下降。

    5. SERP 结果页内容置换。 排名稳定但 CTR 下降。使用 WebSearch 查询:

      • 是否出现了 AI 概览?新的 SERP 功能(如视频、精选摘要、购物、论坛)?广告?
      • Search Console 中是否有“搜索生成式 AI 效果”报告可用?(参见 google-rules §10)
    6. 竞争对手。 排名被特定 URL 取代 → 使用 seo-competitors 技能(对胜出的页面进行 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)、展示次数、目标关键词集群的平均排名、Web Vitals 通过率、爬取错误数。
    • 滞后指标:非品牌点击量、自然搜索转化/收入 (GA4)、AI 引用率 (seo-ai-search)。
  • 免费仪表板: 使用 Looker Studio,连接原生 Search Console 连接器(站点 + URL 展示表)和 GA4 连接器。建议页面:
    • 概览。
    • 非品牌趋势(使用正则表达式过滤)。
    • 关键词集群分析(按 URL 路径分组)。
    • 优化机会(排名 4-20 位)。
    • Web Vitals 性能(CrUX 连接器,或 psi.py 快照)。
  • 月度报告: 发生了什么变化、原因(附证据标签)、我们做了什么(参考 SEO-WORKLOG.md)、下一步计划。

D. 衡量 SEO 改动是否有效

  1. 预先注册。 在进行变更之前,在工作日志中记录以下信息:
    • 变更的 URL。
    • 对照 URL(相似但未变更的页面)。
    • 衡量指标(目标查询的点击量/展示次数/CTR/排名)。
    • 预期的变化方向。
    • 观察窗口:索引后 ≥4 周;通过 URL 检查工具确认重新爬取日期。
  2. 分别为两个组导出变更前后的等长时间窗口数据。然后对每个组运行 gsc_analyze.py after.csv --compare before.csv。
  3. 报告实验组的变动减去对照组的变动。如果页面数量少或点击量低,请说明“结果不确定”。切勿仅凭单一的“前后”对比就断言因果关系。

排名跟踪

  • 免费方式: Search Console 提供的每个查询的平均排名(按展示次数加权,涵盖所有地点)。适合观察趋势,但非“我当前排在哪里”的实时视图。

  • 付费方式: 针对固定关键词列表的每日排名,可按地点/设备细分,并包含 SERP 功能。在以下情况值得付费:

    • 本地或多城市排名至关重要。
    • 客户合同要求提供排名报告。
    • 需要跟踪尚无展示次数的关键词。

    可选工具:Semrush 排名跟踪、Ahrefs 排名跟踪器、SE Ranking、或 DataForSEO 的 SERP API 用于脚本化检查(参见 tools.md)。

核验清单

检查项规则来源
对比窗口等长、按星期对齐、排除最后 2-3 天GSC 数据存在 2-3 天延迟google-rules §11 [Google 文档]
GSC 数据保留期16 个月google-rules §11 [Google 文档]
“惩罚”说法必须基于 Search Console 中的人工操作报告google-rules §4 [Google 文档]
AI 概览/AI 模式流量计入效果报告的“网页”标签;没有单独的点击量google-rules §10 [Google 文档]
Googlebot 爬取率下降与 5xx/429/响应慢同步发生google-rules §1 [Google 文档]
CTR 预期值优先使用网站自身的点击率曲线;默认值为启发式启发式
关键词自相残杀阈值≥2 个页面各获得 ≥10% 的展示次数,且总展示次数 ≥100启发式

数据来源:免费 vs 付费

免费数据几乎涵盖这里所有内容。 包括 Search Console(+API)、Bing Webmaster(+其 AI 效果报告,如可用;参见 google-rules §10)、GA4、Looker Studio、服务器日志、Google 搜索状态仪表板、Google Trends。

付费数据可以补充(参见 ${CLAUDE_PLUGIN_ROOT}/references/tools.md):

  • Semrush / Ahrefs。
    • 竞争对手的可见性历史和关键词变动情况(您自己网站的数据在 GSC 中更准确)。
    • 它们的算法波动性传感器(Semrush Sensor),用以判断流量下降是否是行业性的。
    • 在算法更新期间回答“只有我们受影响吗?”这个问题时,付费工具是合理的。
    • 成本控制策略:优先查看免费的传感器页面和单个竞争对手的 Organic Research 历史,而不是创建完整的付费项目。
  • 排名跟踪工具: 见上文。只跟踪核心关键词,并将地点和设备限制在重要的范围内。大多数工具按关键词 × 地点 × 设备 × 更新频率收费,因此对于非波动性的关键词集,建议选择每周而非每日的更新频率。
  • Screaming Frog 日志文件分析器 (## Screaming Frog)。当日志文件很大且用户偏好图形界面时很有用。log_analyze.py 脚本已免费覆盖了核心问题。

标记第三方流量数字为 [第三方数据] / [估值]。这些是估算模型的结果,而非实际测量值。

输出

  1. seo-work/gsc.json 等文件,以及一份简短的发现摘要:
    • 排名靠前的 10 个触手可及的优化机会:查询词、页面、预计额外点击量 [估值]。
    • 最需要修复的 CTR 问题。
    • 关键词自相残杀的处理决策。
  2. 下降诊断报告:展示决策树的检查结果(✅/❌)及各分支的证据,使用“与……一致”的语言给出最可能的解释,并将后续操作路由到相应的技能。
  3. KPI/仪表板规范(Looker Studio 的数据源、字段、过滤器)或月度报告草稿。
  4. 实验记录(预先注册 + 结果)。

常见陷阱与误解

  • 平均排名 是按所有查询和地点的展示次数加权计算的。一个新获得的第二页排名可能会拉低平均排名,而此时流量却在上升。
  • UI 导出限制为 1,000 行 并且会隐藏匿名查询,因此总计数据与图表不符。
  • 在更新日期发生的下降并不能证明是更新导致的。 首先需排除技术问题和跟踪问题。
  • 同比数据优于环比数据,尤其对于季节性业务。
  • 点击量下降但展示次数保持不变 通常是 AI 概览或其他 SERP 功能导致,而非排名下降。
  • GA4 的“自然搜索”渠道 依赖于同意模式和渠道分组设置,因此请在下降日期检查配置是否变更。
  • 不要为了优化 CTR 而使用标题党标题。 Google 可能会重写您的标题(参见 google-rules §3)。

记录工作

请将以下内容附加到 SEO-WORKLOG.md(${CLAUDE_PLUGIN_ROOT}/references/worklog.md):

  • 使用的导出数据(日期范围)。
  • 运行的脚本。
  • 带有证据标签的分析发现。
  • 诊断结论。
  • 预先注册的实验。
  • 付费工具使用情况。
  • 需要重新检查的日期(例如 "re-pull GSC on 2026-11-21 for the title test")。

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).

相关技能