mcpField
S
seo-crawlability

seo-crawlability

github.com/hainrixz营销与增长79204 次安装3 天前更新
代码仓库

关于 seo-crawlability

面向 Claude 的技能,用于审查搜索引擎抓取权限、robots.txt 规则和站点地图指令。它根据页面快照检查 Googlebot 与 Bingbot 的访问情况,并提出有依据的修复建议。

主要功能

  1. 01检查 robots.txt 可访问性与语法
  2. 02解析 Googlebot 和 Bingbot 的访问权限
  3. 03发现被屏蔽的资源与内容
  4. 04检查抓取延迟和站点地图指令
  5. 05生成并验证修复建议

适用场景

  1. 01审查页面是否被禁止抓取
  2. 02查找屏蔽 CSS 或 JavaScript 的规则
  3. 03检查站点地图指令与抓取延迟

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hainrixz/claude-seo-ai --skill seo-crawlability

安装后在 Claude Code 中输入/seo-crawlability确认已加载。

详细介绍

seo-crawlability(M1)

可抓取性是所有其他搜索信号的前提:如果 Googlebot/Bingbot 无法获取页面及其资源,其他内容就无法获得排名。本模块仅涵盖通用抓取访问。AI 专用爬虫指令(GPTBot、Claude-SearchBot 等)位于 seo-ai-crawlers(M14),AI 发现文件(llms.txt、agents.md、UCP)位于 seo-ai-discovery(M21);关于此边界,请参阅 references/ai-crawlers.md。

输入

根据调度信封中指定的 PageSnapshot 开展工作:读取 <run_dir>/pages/<slug>.json 中的 parsed,以及 status_chain 和 headers;读取 <run_dir>/site/robots.json 中解析后的 robots 文件(语法、分组、针对受审计 URL 的 Googlebot/Bingbot 判定、Sitemap: 行);对 pages/<slug>.html 执行 Grep,查找原文证据。<run_dir>/findings.deterministic.json 中列出了 audit.mjs 已生成的确定性发现——不要重复输出这些 ID;仅添加由模型判断的发现。如果直接使用 URL/路径调用且不存在快照,请先运行 node "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <target> --out "${CLAUDE_PLUGIN_DATA}/runs",并使用输出的快照路径。

审计

根据 PageSnapshot(当 render.used 不为 none 时使用 parsed_rendered,否则使用 parsed)和 site/robots.json 开展工作:

  1. 可访问性:/robots.txt 返回 200(404 表示“允许全部”,但值得标记;5xx 可能会暂停抓取)。
  2. 语法:每一行都是有效指令(User-agent、Disallow、Allow、Sitemap、Crawl-delay);标记未知词项、缺少 User-agent 分组标头以及 BOM/编码问题。
  3. 资源屏蔽:检查任何会屏蔽 CSS/JS、字体或类似 /wp-includes/ 路径的 Disallow 规则——这会导致渲染异常,也是“页面在 Google 看起来坏掉”的主要原因;请与 M-render 交叉核对。
  4. 内容屏蔽:检查会向 Googlebot/Bingbot 隐藏重要可索引路径的 Disallow 规则。
  5. 抓取延迟合理性:较大的 Crawl-delay(或应用于全局分组的延迟)可能会耗尽抓取预算;请注意,Googlebot 会忽略 Crawl-delay,但 Bingbot 会遵守。
  6. Sitemap 指令:至少存在一个绝对地址的 Sitemap: URL。
  7. 总体访问权限:针对受审计 URL,解析 Googlebot 和 Bingbot 的有效规则集——最终是否允许访问?

修复

生成的编辑内容是用于 fix 的差异,并映射到架构的 fixable 字段:

  • AUTO:移除意外屏蔽 CSS/JS 或关键内容路径的 Disallow 规则(添加解除屏蔽规则,可验证);添加缺失的绝对地址 Sitemap: 行;修正格式错误的语法(例如 Dissallow 拼写错误、缺少冒号、分组缺少 User-agent 标头)。
  • PROPOSED:收紧 Crawl-delay 或重组 User-agent 分组——拟定修改内容,每项都需要接受,因为原意可能是有意如此。
  • ADVISORY:更改有意禁止访问的内容(私有/暂存路径)——工具绝不写入此类更改。 切勿捏造 sitemap URL 或路径:如果未知规范的 sitemap 位置,请输出清晰标注的 TODO 占位符供用户填写,或向用户询问。

验证

  • node "${CLAUDE_PLUGIN_ROOT}/scripts/parse-robots-sitemap.mjs" --url <final_url> --path <audited path> — 获取并解析 /robots.txt,针对 Googlebot/Bingbot 在受审计路径上(而非根路径)解析有效的允许/拒绝规则,并检查是否存在 Sitemap: 指令(方法 robots_parse)。离线 robots 文件可使用 --robots <robots_url> 或 --file <path>。
  • 当无法获取 /robots.txt(网络/身份验证/边缘屏蔽)时,状态为 needs_api,绝不会错误地显示为 pass。

发现

按 schema/finding.schema.json 输出发现项;轴为 search。严重性策略:5 仅用于网站/模板级别、会导致灾难性后果并使资格失效的事实;4 为重大 · 3 为中等 · 2 为轻微 · 1 为表面问题 · 0 为信息提示——且只有处于活动类别中的 established 严重性 5 fail 才能封顶评分(references/scoring-model.md)。

  • M1.robots.blocks_googlebot — 有效规则集禁止 Googlebot 访问受审计的 URL(fail,严重性 5,fixable: proposed,置信度 established)。这是网站级别最具破坏性的 robots 缺陷,严重性保持为 5。
  • M1.robots.blocks_css_js — 某条 Disallow 规则匹配了渲染页面加载的 CSS/JS,导致 Google 渲染页面的效果变差(fail,严重性 4,fixable: auto,置信度 established)。
  • M1.robots.unreachable — /robots.txt 返回 5xx,在恢复之前会暂停抓取(fail,网站级别严重性为 5,fixable: advisory,置信度 established)。
  • M1.robots.syntax_error — 指令格式错误、缺少 User-agent 组标头或存在 BOM(warn,严重性 3,fixable: auto,置信度 established)。
  • M1.sitemap.missing_directive — robots.txt 中没有 Sitemap: 行(warn,严重性 2,fixable: auto,置信度 directional——也可以通过 Search Console 和 /sitemap.xml 发现站点地图,因此缺少指令只是便利性方面的不足,并非访问故障)。
  • M1.crawl_delay.excessive — 全局组中较大的 Crawl-delay 会使遵守该规则的爬虫难以抓取(warn,严重性 2,fixable: proposed,置信度 directional)。 依平台触发的 id。 仅当 profile.json 指定了平台(shopify、wordpress、nextjs)时,本模块才会另外触发 6 个 id。这些 id 已列在 references/routing.md § Platform-conditional finding ids 中,并在 references/platforms/<id>.md §10 中进行了说明。

每条发现项:evidence.observed 原样引用有问题的 robots.txt 行(或解析出的判定);verification.reproduce 是上文中可运行的命令;expected_impact 按等级划分并标注置信度(不得只给出百分比)。

诚实说明

  • robots.txt 控制的是抓取,而非编入索引:即使页面被 Disallow,也仍可能通过外部链接被编入索引(仅保留 URL)。如需将页面排除在索引之外,请使用 noindex 元标签,且不要同时设置 Disallow,否则爬虫将无法看到 noindex。
  • 缺少 robots.txt 或返回 404 不是缺陷——这表示“抓取所有内容”。不要将其报告为 fail;应标记为信息提示。5xx 则不同:在故障持续期间,它会被视为完全禁止抓取。
  • Googlebot 会忽略 Crawl-delay;建议将其作为控制 Google 抓取的手段纯属误区——相关建议应仅针对 Bingbot 和其他遵守该指令的 Agent。
  • 请针对受审计路径解析每项判定,而不是 /。网站允许访问根路径但禁止访问 /blog/ 是常见配置,只检查根路径会得出错误结论。
  • 在预览或预发布主机上,统一设置 Disallow: / 是预期配置;设置 --environment preview|staging|local 时,评分器会抑制 M1.robots.* 封顶规则(参见 references/scoring-model.md)。

评论

支持 Markdown