claude-seo 的 SEO Drift 监控实战:用基线对比守护线上页面的搜索可见性 【免费下载链接】claude-seoUniversal SEO skill for Claude Code. 26 sub-skills 19 sub-agents covering technical SEO, E-E-A-T, schema, GEO/AEO, agent readiness (Lighthouse Agentic Browsing, WebMCP, llms.txt), backlinks, local SEO, e-commerce, international SEO, Google APIs, and PDF/Excel reporting. 9 optional extensions for live SEO data.项目地址https://gitcode.com/GitHub_Trending/cl/claude-seo点击查看免费下载claude-seo 将Git for SEO的理念落地为seo-drift子技能与同名分析 Agent对应 agents/seo-drift.md 与 skills/seo-drift/SKILL.md为页面捕获已知良好的 SEO 关键元素基线通过 17 条对比规则检测回归并按时效分级告警。读完本文你将掌握baseline/compare/history三个核心命令的完整用法、17 条规则的三级严重度语义、SQLite 存储与 URL 规范化机制以及如何把 drift 结果委托给 schema、technical、content 等子技能做定向处置——可用于发布前后巡检、持续监控与流量下降归因三大场景。一、为什么 SEO 需要版本控制页面重构、CMS 升级、A/B 实验、CDN 配置变更、第三方脚本接入……线上页面的任何一次改动都可能悄悄破坏 SEO 关键要素structured data 被删除、canonical 被改错、meta robots 意外出现noindex、H1 被重构掉。这些问题往往要等 Search Console 数据滞后数周才暴露届时排名和流量损失已经发生。seo-drift的思路与 Git 完全同构先提交基线baseline再对比当前状态compare最后查看变更历史history。它捕获的字段覆盖了 on-page SEO 的核心要素详见 skills/seo-drift/SKILL.md元素存储字段数据来源Title 标签titleparse_html.pyMeta 描述meta_descriptionparse_html.pyCanonical URLcanonicalparse_html.pyRobots 指令meta_robotsparse_html.pyH1 / H2 / H3 标题h1/h2/h3数组parse_html.pyJSON-LD 结构化数据schema数组parse_html.pyOpen Graph 标签open_graph字典parse_html.pyCore Web Vitalscwv字典pagespeed_check.pyHTTP 状态码status_codefetch_page.pyHTML 内容哈希html_hashSHA-256计算得出Schema 内容哈希schema_hashSHA-256计算得出设计理念原封不动地体现在 scripts/drift_baseline.py 中fetch_page_data()先调用fetch_page.py抓取 HTML再调用parse_html.py解析结构化元素hash_content()对 HTML 正文与 JSON-LD 内容json.dumps(schema, sort_keysTrue)分别计算 SHA-256 哈希status_code则从fetch_page.py的 stderr 中正则提取Status:\s*(\d)。这意味着 drift 监控复用的是整个项目已验证的抓取与解析管线而不是另起炉灶。二、三个核心命令baseline / compare / history1. baseline捕获已知良好的快照python3 scripts/drift_baseline.py url python3 scripts/drift_baseline.py url --skip-cwv--skip-cwv用于跳过 PageSpeed 抓取更快且不消耗 PageSpeed Insights API 配额。执行步骤对应 skills/seo-drift/SKILL.md 的 Command 章节通过google_auth.validate_url()校验 URLSSRF 防护经scripts/fetch_page.py抓取页面经scripts/parse_html.py解析 HTML可选经scripts/pagespeed_check.py抓取 CWV--skip-cwv跳过计算 HTML 正文与 schema 内容的 SHA-256 哈希快照写入 SQLite。输出为 JSON包含baseline_id、时间戳、规范化后的 URL以及各元素的摘要title、meta 描述前 80 字符、h1、h2/h3/schema/OG 数量、cwv_captured布尔值等详见 scripts/drift_baseline.py。注意即使页面返回 4xx/5xx也应当照常捕获基线——因为状态码本身就是一个被追踪的字段见下文 Rule 8。若 CWV 抓取失败如未配置 API Key对应字段存null对比时相关规则自动跳过。2. compare对比当前状态与基线python3 scripts/drift_compare.py url python3 scripts/drift_compare.py url --baseline-id 5 python3 scripts/drift_compare.py url --skip-cwv默认对比最近一条基线--baseline-id可指定历史任意一条基线做定向比对运行全部 17 条对比规则按严重度分类结果写入comparisons表输出 JSON 包含triggered_findings已触发规则及其 old/new 值与untriggered_findings未触发规则summary汇总三类严重度计数见 scripts/drift_compare.py。命令行在 stderr 上还会输出人类可读的结论例如*** 2 CRITICAL finding(s) ***或No drift detected. Page matches baseline.scripts/drift_compare.py。对比完成后可以生成 HTML 报告分享给干系人python3 scripts/drift_report.py comparison_json_file --output drift-report.html # 或从 stdin 读取 echo {status:ok,...} | python3 scripts/drift_report.py --stdin --output drift-report.html报告采用 claude-seo 配色顶部有整体状态横幅DRIFT DETECTED / CHANGES DETECTED / MINOR CHANGES / NO DRIFT每张 finding 卡片按严重度着色并展示 Before/After 差异底部列出全部未触发的通过项scripts/drift_report.py。3. history查看变更时间线python3 scripts/drift_history.py url python3 scripts/drift_history.py url --limit 10--limit默认 20。输出 JSON 数组baselines最新在前含 id、timestamp、title、canonical、robots、h1、status_code、哈希摘要、是否含 CWV与 comparisons含每次对比的 critical/warning/info 计数见 scripts/drift_history.py。若数据库不存在会提示先运行drift baseline。三、17 条对比规则与三级严重度对比引擎的核心依据是 skills/seo-drift/references/comparison-rules.md完整实现了 scripts/drift_compare.py 中编号rule_01到rule_17的 17 个函数。CRITICAL立即处理通常数天内造成可测量的流量损失#规则判定阈值处置动作1Schema/JSON-LD 完全移除基线有 schema当前为空立即恢复结构化数据富结果数小时内丢失2Canonical 变更新旧 canonical 非空且不同规范化后核实新 canonical 是否有意错误 canonical 会把排名信号导向错误页面3Canonical 被移除基线有值当前为 null恢复 canonical否则 Google 会自行猜测带 query 参数的页面尤其危险4新增 noindex基线 robots 无noindex当前出现若属误加立即移除页面数天内会被移出索引5H1 被整体移除基线有 H1当前为空恢复 H1 标题6H1 大幅变更首个 H1 的SequenceMatcher相似度 0.5差异超 50%核实 H1 是否仍对齐目标关键词策略7Title 被整体移除基线有 title当前为空立即恢复否则 Google 自动生成的质量通常较差8状态码变为错误基线 2xx当前为 4xx/5xx排查服务端错误或页面丢失排名数天内下降WARNING一周内调查可能是故意为之#规则判定阈值处置动作9Title 文案变更两者存在且字符串不同去空白后核实新 title 是否包含目标关键词GSC 观察 CTR 两周10Meta 描述变更两者存在且字符串不同核实 CTA 与关键词监控 CTR11CWV 指标回退超 20%LCP / CLS / TBT 的 p75 值比基线差 20%排查近期代码改动或第三方脚本注意实现中用 lab 指标 LCP/CLS/TBT 做相对比较12性能得分下降 10 分Lighthouse performance 得分下降 ≥10 分如 85→74跑完整 PageSpeed 定位新瓶颈13OG 标签被移除基线有 OG当前为空恢复 OG 标签否则社交分享显示通用/缺失预览14Schema 内容被修改schema_hash变化且 schema 仍存在移除归 Rule 1校验类型变更、属性删除或新增校验错误INFO仅记录常为正向或中性变化#规则判定阈值处置动作15新增 Schema基线无 schema当前有正向变化仍建议/seo schema校验16H2 结构变更H2 数量或文本数组不同检查标题层级是否仍对齐目标话题17内容哈希变更html_hash不同兜底规则若其它规则均未触发用它判断正文到底改了什么四、存储与 URL 规范化所有数据存储在本地 SQLite~/.cache/claude-seo/drift/baselines.db初始化时启用 WAL 模式并建两张表scripts/drift_baseline.pybaselines快照含全部 SEO 元素字段按url_hash建索引comparisons对比结果含results_json与三类严重度计数外键关联baselines(id)同样按url_hash建索引。为了同一条 URL 稳定匹配normalize_url()执行如下规范化scripts/drift_baseline.pyscheme 与 host 转小写剥掉默认端口http:80、https:443查询参数排序移除 UTM 参数utm_source/utm_medium/utm_campaign/utm_term/utm_content去除尾部斜杠裸域名除外。url_hash()取规范化 URL 的 SHA-256 前 16 位十六进制字符作为关联键scripts/drift_baseline.py。因此https://example.com/?b2a1utm_sourcex与http://Example.com/a1b2/会被归一到同一条记录避免因参数顺序、大小写和跟踪参数导致的幽灵基线。五、Agent 工作流与跨技能委托作为分析 Agent见 agents/seo-drift.mdseo-drift只在该 URL 已存在基线时被唤起执行三步工作流Baseline捕获当前 SEO 状态并以 SHA-256 哈希存入 SQLiteCompare抓取当前状态运行 17 条规则 × 3 个严重级输出全部触发规则的 old/new 值History查询该 URL 的全部基线与对比记录呈现时间线。检测到 drift 后Agent 按规则类型推荐对应的子技能做定向处置发现推荐动作Schema 被移除或修改/seo schema url做完整校验CWV 回退/seo technical url做性能审计或/seo google psi urlTitle / Meta 变更/seo page url做内容分析Canonical 变更/移除/seo technical url做可索引性检查新增 noindex/seo technical url做可爬取性审计H1/标题层级变更/seo content url做 E-E-A-T 审查OG 标签移除/seo page url做社交分享分析状态码变为错误/seo technical url做完整诊断Agent 的最终输出包括摘要行CRITICAL / WARNING / INFO 各多少、所有触发规则的 severity old new action 表格、针对 CRITICAL/WARNING 的跨技能建议以及可选的 HTML 报告。若审计编排器提供了output_dir还会持久化output_dir/findings/drift.md与audit-data.json中的 SEO Drift 分类发现agents/seo-drift.md。六、错误处理与安全边界错误处理矩阵场景行为URL 不可达原样报告fetch_page.py的错误不猜测状态建议用户核实 URL该 URL 无基线告知用户建议先运行baselineSSRF 拦截私有 IP报告validate_url()拒绝绝不绕过SQLite 数据库缺失首次使用自动创建不报错CWV 抓取失败无 API KeyCWV 字段存null对比时跳过 CWV 相关规则页面返回 4xx/5xx仍照常捕获为基线状态码本身就是追踪字段存在多条基线默认用最近一条除非指定--baseline-id安全要点所有抓取均经scripts/fetch_page.py强制 SSRF 防护拦截私有 IP、loopback、保留地址段、GCP metadata 端点Agent 提示词明确禁止使用 curl、wget 或裸 HTTP 请求agents/seo-drift.md。validate_url是url_safety.validate_url的向后兼容包装共享模块还提供 DNS-rebinding 安全的validate_url_strict与safe_requests_get供fetch_page.py在建立 socket 前调用scripts/google_auth.py。所有 SQLite 查询使用参数化占位符?绝不做字符串拼接——这在load_baseline、历史查询、写入语句中处处可见。TLS 始终校验管线中不存在verifyFalse。七、典型实战工作流发布前后巡检Pre/Post Deployment Check/seo drift baseline https://example.com # 发布前 # ... 发布动作 ... /seo drift compare https://example.com # 发布后在发布窗口前捕获基线、发布后立即对比任何 CRITICAL如 schema 丢失、canonical 变更都能在影响被搜索引擎收录之前定位。持续监控Ongoing Monitoring/seo drift baseline https://example.com # 首次捕获 # ... 数周后 ... /seo drift compare https://example.com # 检查是否漂移 /seo drift history https://example.com # 回看全部变更适合对高价值页面首页、核心落地页、产品详情页做定期巡检WARNING 级别的 CWV 回退与性能得分下滑也能在两周观察窗口内被发现。流量下降归因Investigating a Traffic Drop/seo drift compare https://example.com # 什么变了 /seo drift history https://example.com # 什么时候变的先用 compare 看变化内容再用 history 看变化时间点与 GSC 数据中的流量拐点对齐即可快速判断流量下滑是否由 on-page 回归导致。八、源码级的可靠性保证从源码结构看seo-drift的可靠性设计贯穿三层复用已验证管线drift_baseline/drift_compare直接复用fetch_page.pyparse_html.pypagespeed_check.py保证与项目其它 SEO 工具行为一致避免两套解析逻辑、两套结果。可测试性tests/test_drift_portability.py专门验证fetch_page_data()的跨平台可移植性——断言子进程调用使用临时文件而非/dev/stdout、编码为 UTF-8、错误用replace策略、命令不包含input参数、临时文件用后即清。这类测试守护的是抓取握手协议不被无意破坏。容错设计CWV 缺失时规则跳过而非整体失败对比结果写库失败仅产生db_warning而不阻断输出数据库首次使用自动创建。这让 drift 监控在 API 配额耗尽、页面超时等现实干扰下依然能给出可用的比较结论。结合 skills/seo-drift/SKILL.md 提供的完整规则集skills/seo-drift/references/comparison-rules.md与 scripts/drift_report.py 的可分享 HTML 报告seo-drift可以无缝嵌入 claude-seo 的发布流程与周期性审计中——把线上页面悄悄变坏从不可见的事故变成可量化、可追溯、可立即处置的工程问题。赞分享【免费下载链接】claude-seoUniversal SEO skill for Claude Code. 26 sub-skills 19 sub-agents covering technical SEO, E-E-A-T, schema, GEO/AEO, agent readiness (Lighthouse Agentic Browsing, WebMCP, llms.txt), backlinks, local SEO, e-commerce, international SEO, Google APIs, and PDF/Excel reporting. 9 optional extensions for live SEO data.项目地址https://gitcode.com/GitHub_Trending/cl/claude-seo点击查看免费下载相关推荐claude-seo SEO Drift 对比规则全解析17 条规则、3 级严重度与 Git 式页面基线守护claude seo SEO Drift 对比规则全解析17 条规则、3 级严重度与 Git 式页面基线守护 本指南以 claude seo 项目中 seoClaude-SEO 的 SEO Drift 漂移监控技能实战baseline / compare / history 与 17 条对比规则全解析Claude SEO 的 SEO Drift 漂移监控技能实战baseline / compare / history 与 17 条对比规则全解析 SEO 漂用 claude-seo 的 seo-competitor-pages 技能打造高转化的竞品对比与替代方案页面用 claude seo 的 seo competitor pages 技能打造高转化的竞品对比与替代方案页面 本技术指南以 claude seo 仓库中 se上一篇Go ORM新纪元gorp库让数据库操作效率提升300%的终极指南 下一篇Gifify 项目推荐创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考