分析:衡量、诊断、报告
将第一方数据(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 数据存在延迟)。
- UI 导出:
- 品牌正则表达式。 品牌名称及其拼写错误,例如
acme|acme ?corp|აკმე。 - 可选:
- Bing Webmaster 导出(格式相同;可与 gsc_analyze 配合使用)。
- GA4 自然搜索落地页报告。
- 服务器访问日志(
.log/.gz)。 - 网站变更、部署和迁移的日期。
- 针对流量下降: 下降开始的时间、影响的版块/国家/设备、以及转化是否也同时下降。
工作流程
A. 机会分析(GSC/Bing 导出)
-
运行分析:
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值。 -
查看
striking_distance(排名 4-20 位的页面,按est_extra_clicks_at_pos3[估值]排序)。这些是需要优先优化的页面。将每个页面及其查询传递给 seo-onpage / seo-content 技能处理。 -
查看
ctr_underperformers。排名前十的查询,其 CTR 低于该网站自身在该位置的中位数 CTR 的一半(ctr_curve_used;当数据不足时,会回退到默认值)。- 原因:标题/摘要文本质量差、搜索结果中存在 SERP 功能或 AI 概览导致排名下移、或搜索意图不匹配。
- 在重写之前,请使用 WebSearch 检查实时 SERP。
-
question_queries:可用于 FAQ 版块和“答案优先”段落的内容素材(seo-content, seo-ai-search)。 -
brand_split:分别报告非品牌点击量。品牌需求不属于 SEO 性能指标。 -
cannibalization:对于某个查询,有 2 个或更多页面各自获得了 ≥10% 的展示次数。需逐一决定处理方案:合并页面并设置 301 重定向、区分页面意图、或将内部链接指向主页面。并非所有拆分都是问题:如果多个页面都排名良好,可以保留现状。
B. 时期对比和流量下降诊断
-
运行对比:
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"(排名相近但点击率下降)
这些是启发式判断:在表述时请使用“与……一致”的语言。
-
按顺序遍历下降诊断树,并在证据支持的第一个分支处停止。记录每个分支的证据:
-
下降是否真实?
- 对比 GSC 点击量与 GA4 自然搜索会话的趋势方向(预计存在 10-20% 的数据级别差异)。
- 仅在 GA4 中观察到下降 → 可能是跟踪/用户同意/标签问题,而非 SEO 问题。
- 检查同比数据以排除季节性因素。
-
技术问题。 并行运行以下检查:
robots_check.pysitemap_check.py- 对排名下降最严重的 URL 运行
page_audit.py - 对受影响的版块运行
crawl.py
查找以下信号:
- noindex、canonical 标签变更、5xx/429 错误、robots.txt 拦截、重定向变更、机器人验证挑战(
bot-challenge)。 - 下降日期是否有部署活动。
- Search Console 的页面索引报告中是否有“已排除”页面的数量激增(可借助 seo-technical 技能)。
-
算法更新。 将下降日期与 Google 搜索状态仪表板进行比对(访问
https://status.search.google.com/→ 排名事件;需获取页面内容)。下降模式至关重要:- 整个网站在更新日期出现阶梯式下降,表明系统进行了重新评估(可能涉及实用内容/核心/垃圾内容更新)。参见 google-rules §4。
- 特定版块的下降指向页面级别的问题。
- 除非 Search Console 显示了人工操作,否则切勿使用“惩罚”一词。
-
季节性 / 需求变化。 查看 GSC 中的同比数据(最长 16 个月;参见 google-rules §11),以及核心关键词的 Google Trends 趋势。如果排名稳定但展示次数下降 = 需求下降。
-
SERP 结果页内容置换。 排名稳定但 CTR 下降。使用 WebSearch 查询:
- 是否出现了 AI 概览?新的 SERP 功能(如视频、精选摘要、购物、论坛)?广告?
- Search Console 中是否有“搜索生成式 AI 效果”报告可用?(参见 google-rules §10)
-
竞争对手。 排名被特定 URL 取代 → 使用 seo-competitors 技能(对胜出的页面进行 compare_pages 操作)。通过 Wayback CDX 检查胜出页面何时发生变更。
-
-
在可用时使用日志数据:
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 改动是否有效
- 预先注册。 在进行变更之前,在工作日志中记录以下信息:
- 变更的 URL。
- 对照 URL(相似但未变更的页面)。
- 衡量指标(目标查询的点击量/展示次数/CTR/排名)。
- 预期的变化方向。
- 观察窗口:索引后 ≥4 周;通过 URL 检查工具确认重新爬取日期。
- 分别为两个组导出变更前后的等长时间窗口数据。然后对每个组运行
gsc_analyze.py after.csv --compare before.csv。 - 报告实验组的变动减去对照组的变动。如果页面数量少或点击量低,请说明“结果不确定”。切勿仅凭单一的“前后”对比就断言因果关系。
排名跟踪
-
免费方式: 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脚本已免费覆盖了核心问题。
标记第三方流量数字为 [第三方数据] / [估值]。这些是估算模型的结果,而非实际测量值。
输出
seo-work/gsc.json等文件,以及一份简短的发现摘要:- 排名靠前的 10 个触手可及的优化机会:查询词、页面、预计额外点击量
[估值]。 - 最需要修复的 CTR 问题。
- 关键词自相残杀的处理决策。
- 排名靠前的 10 个触手可及的优化机会:查询词、页面、预计额外点击量
- 下降诊断报告:展示决策树的检查结果(✅/❌)及各分支的证据,使用“与……一致”的语言给出最可能的解释,并将后续操作路由到相应的技能。
- KPI/仪表板规范(Looker Studio 的数据源、字段、过滤器)或月度报告草稿。
- 实验记录(预先注册 + 结果)。
常见陷阱与误解
- 平均排名 是按所有查询和地点的展示次数加权计算的。一个新获得的第二页排名可能会拉低平均排名,而此时流量却在上升。
- 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")。