robots txt协议检查前需要准备哪些信息:一份可执行清单

📍 WDQWDWQD987AAAAA:216.73.216.246
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /1e7e35f27dcc.html
📄

robots txt协议检查前需要准备哪些信息:一份可执行清单

检查 robots txt协议前,最先要准备的不是工具,而是能定位“谁在什么条件下读到哪份文件”的基础信息。至少需要:站点可访问的协议与主机名、robots.txt 的完整 URL、当前文件内容、目标搜索引擎或爬虫名称、要检查的具体路径,以及这份文件是测试环境还是生产环境。缺了其中任何一项,检查结果都可能张冠李戴。

先确认要检查的是哪一份 robots.txt

robots.txt 的位置由协议和主机决定,而不是由页面路径决定。同一个域名下,https://example.com/robots.txt 和 http://example.com/robots.txt 在协议层面是两份资源;子域名如 https://blog.example.com/robots.txt 也各自独立。检查前要记录:

如果站点同时存在 www 和非 www、HTTP 和 HTTPS 多个版本,要分别准备这些 URL,不能只查一个就下结论。

准备当前文件原文和访问日志

拿到文件后,要保留一份原文快照,包括所有注释行。检查时常见的误判来自“以为规则生效,其实写错了字段名或写在了错误的分组下”。同时准备服务器访问日志中针对 /robots.txt 的请求记录,用来核对爬虫是否真的来读过。

明确目标爬虫和要检查的路径

robots.txt 是按 User-agent 分组的,不同爬虫读到的规则可能完全不同。检查前要确定两件事:一是针对哪个爬虫,二是针对哪条具体 URL。没有这两项,就无法判断某条规则是否真的拦住了目标页面。

  1. 要查什么:目标爬虫的 User-agent 字符串,以及待验证页面的完整 URL。
  2. 怎么查:在文件中找到匹配该 User-agent 的分组,若没有专门分组,再看通配分组 User-agent: *。
  3. 结果说明什么:把待验证 URL 的路径与分组内的 Disallow、Allow 逐条比对,判断该路径是被禁止还是被允许。路径匹配按前缀处理,Disallow: /private 会覆盖 /private 及其下级路径。

示例(假设场景):文件写有 User-agent: * 与 Disallow: /tmp/,要检查 https://example.com/tmp/a.html。该路径以 /tmp/ 开头,属于被禁止范围;而 https://example.com/tmp 是否被拦,取决于是否带结尾斜杠,这正是需要逐字比对的原因。

区分抓取限制与索引移除

这是检查前必须建立的前提:robots.txt 控制的是抓取,不是索引。被 Disallow 的 URL 仍可能因为外部链接出现在搜索结果中,只是搜索引擎无法读取页面内容来生成摘要。因此准备信息时,要额外记录该 URL 是否已被收录、是否设置了 noindex、是否有其他可访问的等价页面。

两种处理方案的比较条件

检查后常面对两种选择:直接修改 robots.txt 屏蔽路径,或保留抓取、改用页面级索引指令。判断依据如下。

下一步:把上述信息整理成一张对照表,列出每个主机、每个爬虫、每条待验证路径,再逐项运行检查,避免只凭一份文件就下结论。

图1 图2

nginx