检查 robots.txt 的前后环节依赖,关键是把它放回抓取链路中看:上游是 URL 是否可被抓取,下游是页面是否可被索引。做法是逐条列出 robots.txt 中的规则,对目标 URL 做一次路径匹配推演,再与 sitemap、内链、canonical、noindex 等相邻环节交叉核对。只看到 robots.txt 返回 200 就认为链路正常,是最常见的误判。
robots.txt 不是孤立文件,它处在一条单向依赖链上:
检查顺序应从上游到下游。若 robots.txt 本身返回 404 或 5xx,不同抓取程序的处理策略不一致,此时讨论规则匹配没有意义。先确认文件可访问,再谈规则。
不要凭记忆判断。准备两份清单:
如果站点使用子目录或多域名,确认 robots.txt 只对同源路径生效。跨域规则不会被读取,这一点常被忽略。
这一步是本题最关键的一步。以假设规则为例:
User-agent: *<br>Disallow: /search<br>Allow: /search/help<br>Disallow: /*?sort=
对 URL /search/help?sort=price 推演:它同时命中 Allow: /search/help 与 Disallow: /*?sort=。此时不能凭“Allow 优先”一概而论,应按具体抓取程序文档确认最长匹配与优先级规则。若无法确认,最稳妥的判断是:该 URL 存在被限制的风险,应改为不依赖该路径,或调整规则消除冲突。
检查项清单:
* 与结尾符 $ 是否扩大了匹配范围。验证要区分“可能原因”和“已经定位的原因”。同一现象可能有多种解释,例如某页面未出现在结果中,可能是 robots.txt 挡住、可能是 noindex、可能是 canonical 指向他页、也可能是尚未被抓取。逐项排除,不要只归因于 robots.txt。
可执行步骤:
/robots.txt,记录状态码与内容,确认与本地版本一致。适用条件:以上方法适用于自有站点、可读取服务器配置与日志的场景。若站点由第三方托管且无法修改 robots.txt,应先确认托管方是否提供覆盖机制,再决定调整路径还是调整规则。
robots.txt 的依赖关系会随改版、目录迁移、参数规则变化而失效。建议在以下时机重跑检查:新增栏目或子目录、更换 URL 参数策略、调整 sitemap 生成逻辑、迁移域名或协议。
维护时保留一份规则与 URL 的对应记录,标注每条 Disallow 的意图。当有人问“为什么这个页面不被收录”时,可以快速定位是抓取限制还是索引信号问题,而不是重新推演一遍。
下一步:从当前 sitemap 中抽取 10 个 URL,按上面的推演方法逐个标注“允许/限制/存疑”,把存疑项与规则原文放在一起复核。这一步能直接暴露前后环节不一致的位置。