检查 robots.txt 协议的前后依赖,核心是把它放回抓取链路里看:上游是 robots.txt 能否被正常获取和解析,下游是具体 URL 的抓取、索引与展示是否受它影响。不能只看文件里写了什么,而要分别验证“文件本身”“规则匹配”“抓取结果”三个环节,并确认问题出在哪一段。
robots.txt 协议要求文件放在站点根目录,通过 /robots.txt 访问。检查时先做最基础的一步:用浏览器无痕窗口或命令行请求该地址,观察返回状态码和内容类型。
200 且内容是纯文本,说明文件可获取,进入下一步。404,说明文件不存在。此时抓取工具通常按“无限制”处理,但这不等于可以随意抓取,仍需看服务器和其他规则。301 或 302,要确认跳转后的地址是否仍是同一站点的根目录文件,跨域跳转可能不被支持。403 或 5xx,说明服务器拒绝或出错。部分抓取工具在无法获取时会暂时放宽限制,但这会带来不确定性,应优先修复服务器响应。这一步的判断结果是:文件可获取才谈得上规则生效;不可获取时,先解决服务器和路径问题,不要急着改规则内容。
文件可获取后,依赖关系转移到“规则是否命中目标 URL”。robots.txt 的匹配按路径前缀进行,Disallow 和 Allow 的先后、长度和通配符都会影响结果。检查时不要凭感觉,逐条对照。
Allow 还是 Disallow。Allow 往往优先,但不同抓取工具的实现细节需要分别核查。* 和 $。例如 Disallow: /*.pdf$ 只匹配以 .pdf 结尾的路径,不能想当然认为它屏蔽了所有 PDF 链接。假设一个例子:文件里同时有 Disallow: /private/ 和 Allow: /private/public/,那么 /private/public/a.html 是否可抓取,取决于抓取工具对更长匹配的处理。这个例子只用于说明判断方法,不是真实站点结果。判断结果应记录为“可抓取”“被屏蔽”“不确定,需实测”。
这是最容易混淆的依赖环节。robots.txt 协议限制的是抓取工具能否访问 URL,不是命令搜索引擎把已收录页面从索引中删除。一个页面被 Disallow 后,抓取工具可能不再读取页面内容,但已经建立的索引记录不会因此自动消失。
Disallow 和 noindex,抓取工具可能因被禁止抓取而读不到 noindex,导致移除失败。这种情况下要重新安排依赖顺序。判断结果:robots.txt 只能作为抓取管理的一环,不能当作可靠的索引移除手段。需要移除索引时,先确认页面可被抓取,再让 noindex 生效。
规则改完后,必须回到实际抓取和索引数据复查,而不是只看文件。可执行的检查项包括:
如果日志显示抓取工具从未请求目标 URL,而 robots.txt 又明确允许,那么依赖断点可能在上游:内链、站点地图或服务器响应。如果日志显示请求被拒,再回到规则匹配环节。如果抓取正常但索引未更新,问题就不在 robots.txt,而在页面质量、重复内容或索引策略。
推荐按“可获取 → 规则匹配 → 抓取实测 → 索引复查”的顺序走。每一步都留下证据:状态码、规则行、抓取时间、日志记录。这样当多个环节同时异常时,能判断是 robots.txt 本身的问题,还是它上游的服务器、下游的索引环节出了问题。下一步,选一个具体 URL,按上述顺序完整跑一遍,把每个环节的实际返回结果记下来,再决定改文件还是改页面。