robots.txt写法 - 测试环境与线上怎样对照

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

robots.txt写法 - 测试环境与线上怎样对照

测试环境与线上环境的 robots.txt 写法对照,核心不是让两份文件长得一样,而是先确认它们各自的服务对象:测试环境通常要阻止抓取,线上环境要按真实放行规则写。对照时逐行比较 User-agent、Disallow、Allow、Sitemap 四类指令,再分别用抓取工具验证,才能判断差异是预期设计还是配置失误。

先明确两个环境的抓取目标

测试环境一般不希望被外部搜索引擎抓取,常见做法是整站禁止或限制到目录级;线上环境则要放开需要收录的路径,同时屏蔽后台、搜索结果页、参数组合等不应被抓取的位置。两者目标相反,所以直接复制同一份文件往往就是问题源头。对照前先写下一句话:这个环境希望哪些路径被抓、哪些不被抓。写不出来,后面的逐行比较就没有判断依据。

逐项对照清单

用抓取测试验证实际生效结果

逐行读完文件后,还要验证爬虫实际看到的结果。可执行步骤:取一条线上允许抓取的 URL 和一条线上禁止抓取的 URL,分别用搜索引擎官方提供的 robots.txt 测试工具或抓取分析功能查询该 URL 是否被允许。测试环境同样取一条 URL 验证是否被阻止。

判断结果时注意:测试工具显示“允许”只代表 robots.txt 这一层不阻止,不代表页面一定能被抓取或收录,登录墙、服务器返回码、页面质量都会影响。反过来,显示“被阻止”说明该爬虫在抓取阶段就会跳过,此时不要指望靠 robots.txt 完成索引移除,已收录页面需要另行处理。

发现差异后的处理顺序

  1. 先判定差异属于预期还是失误。测试禁止、线上放行是预期;线上出现测试域名或整站禁止是失误。
  2. 失误类差异优先修线上,因为线上影响面更大。修改前记录当前文件内容,便于回退。
  3. 修改后重新请求两个环境的 /robots.txt,确认返回内容已更新,再用测试工具复验关键 URL。
  4. 把两份文件的差异点写进发布检查项,例如发布前搜索是否残留测试域名、是否存在整站 Disallow。

下一步:打开两个环境的 /robots.txt 实际返回内容,按上面的清单逐条打勾,把不一致的行标出来,再判断每一处是设计差异还是需要修复的错误。

图1 图2

nginx