发布 robots.txt 前建立路径测试矩阵

把 robots.txt 改动拆成 product token、样例路径与预期命中行,并在上线后单独验证真实文件。

固定草稿与规则子集

可以用一组最小但有冲突的样例开始:星号组写 `Disallow: /staging/`;两个分开的 AuditBot 组分别写 `Disallow: /reports/` 与 `Allow: /reports/public/`。相同精确 token 的组需要合并后再判断,不能只看第一组。

同时记录工具边界:User-agent 精确比较不区分大小写;没有精确组才回退星号;识别 Allow、Disallow、星号和末尾美元符;最长匹配获胜,同长冲突 Allow 优先。注释、Sitemap、Crawl-delay 与爬虫私有语法不参与这次路径决策。

让测试表同时包含通过与失败

AuditBot 测 `/reports/private.csv`,预期由 `/reports/` 禁止;再测 `/reports/public/q2.pdf`,预期更长的 Allow 例外获胜。另用 NotAuditBot 测 `/staging/demo`:它不应误选 AuditBot,而应回退星号组并得到禁止。

如果规则与 query 有关,再输入 `https://example.com/docs?preview=1#notes`,确认输出路径是 `/docs?preview=1` 且不含 fragment。最后加一个无效完整 URL,以及一份没有可用 User-agent 组的文本,确认失败会明确报错而不是默认为通过。

Sitemap 地址和路径规则分开验

Sitemap 行不属于 Allow 或 Disallow。应单独核对它的协议、正式域名、路径与文件名;如果已有 XML 文本,可提取 loc 清单,再与计划公开的 canonical URL 对照。

工具判断允许只说明所选粘贴规则没有拦住这个样例。链接发现、HTTP 状态、页面 noindex、canonical、渲染、内容质量、抓取调度和最终索引仍是不同证据。

0

上线后用真实响应重跑

部署完成后,无登录请求 canonical `/robots.txt`。记录重定向后的最终 URL、HTTP 状态、content type、缓存表现与完整响应正文,并逐字对照批准草稿,避免把旧缓存或错误环境当成新版本。

真实抓取行为应再看服务器日志或目标爬虫官方工具。若线上证据与矩阵不同,先保存输入文本、product token、规范化路径、命中行、时间戳和线上响应,再修改下一条规则。

常见问题

关于本文主题

为什么测试 Googlebot 时还要加 NotGooglebot?

这个反例能发现子串误匹配。仅仅包含 Googlebot 字样的另一个 token 不应继承 Googlebot 命名组;没有精确组时应使用星号规则。

空的 Disallow 会禁止整个站点吗?

不会。本工具把空 Disallow 视为不匹配任何路径;要禁止全部路径,需要明确写出能匹配根路径的规则,并用矩阵确认命中。

失败用例需要保存哪些信息?

至少保存审核过的 robots.txt 正文、输入 token、输出中的规范化路径、预期判断、实际命中行和代码版本;上线后再补真实响应状态与抓取时间。

延伸阅读

继续探索