把测试环境和线上环境的 robots.txt 做对照,核心不是看两份文件“像不像”,而是确认三件事:HTTP 状态码是否一致、返回内容是否指向同一套规则、以及测试环境有没有意外继承线上的屏蔽指令。正确做法是分别抓取两个环境的 /robots.txt,逐行比对后再决定测试站是否要放行抓取。测试环境通常应当整体禁止抓取,线上环境则按真实需求开放,两者目的不同,不能简单复制同一份文件。
测试环境和线上环境的 robots.txt 承担的任务本来就不一样,对照前要先想清楚目标:
如果测试环境直接复制了线上文件,可能出现两种问题:一是测试内容被允许抓取并进入索引;二是测试环境屏蔽了某些路径,导致你在测试环境里无法验证线上同样的抓取行为。对照的目的就是发现这类偏差。
按下面顺序执行,每一步都能留下可核对的证据:
https://example.com/robots.txt,测试用其对应的测试域名。用浏览器直接打开或命令行工具都行,重点是拿到原始响应。User-agent、Disallow、Allow、Sitemap 这几类指令,确认测试环境是否缺少整体屏蔽、线上是否误写了 Disallow: /。Sitemap 应指向线上域名;如果测试环境里仍写着线上站点地图地址,说明是直接复制过来的,需要改掉或删除。一个简化的对照例子(假设场景):线上文件写 Disallow: /admin/,测试文件写 Disallow: /。这说明测试环境整体禁止抓取,线上只屏蔽后台目录,两者分工正确。反过来,如果测试文件也写 Disallow: /admin/,那就意味着测试站其他内容可被抓取,需要补上整体屏蔽。
判断依据是这次测试要验证什么:
Disallow: / 加对应 User-agent: *,避免测试内容被索引。需要记住:robots.txt 的抓取限制不等于可靠的索引移除。即使测试环境写了禁止抓取,已经抓取过的页面仍可能留在索引中,需要额外的移除手段。因此测试环境从一开始就做好屏蔽,比事后补救更省事。
对照完成后,用这些信号确认结果:
常见误判包括:把“测试环境禁止抓取”当成“测试内容一定不会出现在搜索结果里”;把“线上允许抓取”当成“页面一定被收录”。站点地图不保证收录,robots.txt 也不保证屏蔽一定生效,两者都只是抓取层面的信号,最终是否收录由搜索引擎自行判断。另外,不同搜索引擎对 robots.txt 的支持细节存在差异,涉及具体指令时应分别核查目标搜索引擎的官方说明。
下一步:把两个环境的 robots.txt 原始响应各保存一份,标注抓取时间和状态码,然后按上面的清单逐项打勾。发现测试环境缺少整体屏蔽的,先补上 Disallow: /,再确认线上文件没有被误改,最后用抓取测试工具复验一次。