测试环境与线上环境的 robots.txt 写法对照,核心不是让两份文件长得一样,而是先确认它们各自的服务对象:测试环境通常要阻止抓取,线上环境要按真实放行规则写。对照时逐行比较 User-agent、Disallow、Allow、Sitemap 四类指令,再分别用抓取工具验证,才能判断差异是预期设计还是配置失误。
测试环境一般不希望被外部搜索引擎抓取,常见做法是整站禁止或限制到目录级;线上环境则要放开需要收录的路径,同时屏蔽后台、搜索结果页、参数组合等不应被抓取的位置。两者目标相反,所以直接复制同一份文件往往就是问题源头。对照前先写下一句话:这个环境希望哪些路径被抓、哪些不被抓。写不出来,后面的逐行比较就没有判断依据。
User-agent: * 加 Disallow: /,说明对所有爬虫整站禁止;线上若也出现同样的组合,就要确认是不是误把测试配置发布上去了。结果说明:出现整站 Disallow 的线上文件,需要立即核实是否为有意设置。Disallow: /;线上常见 Disallow: /admin/、Disallow: /search 这类具体目录。若线上多出一条覆盖全站的 Disallow,而其他规则又写得很细,说明文件可能被覆盖或拼接错误。/robots.txt,确认返回 200 且内容完整。返回 404 时,不同爬虫的处理方式不一致,需要按目标搜索引擎的文档分别核实,不能假设等同于全部放行。逐行读完文件后,还要验证爬虫实际看到的结果。可执行步骤:取一条线上允许抓取的 URL 和一条线上禁止抓取的 URL,分别用搜索引擎官方提供的 robots.txt 测试工具或抓取分析功能查询该 URL 是否被允许。测试环境同样取一条 URL 验证是否被阻止。
判断结果时注意:测试工具显示“允许”只代表 robots.txt 这一层不阻止,不代表页面一定能被抓取或收录,登录墙、服务器返回码、页面质量都会影响。反过来,显示“被阻止”说明该爬虫在抓取阶段就会跳过,此时不要指望靠 robots.txt 完成索引移除,已收录页面需要另行处理。
/robots.txt,确认返回内容已更新,再用测试工具复验关键 URL。下一步:打开两个环境的 /robots.txt 实际返回内容,按上面的清单逐条打勾,把不一致的行标出来,再判断每一处是设计差异还是需要修复的错误。