测试环境和线上的robots文件设置应当分别维护,不能直接复制同一份文件。测试环境通常需要禁止抓取,避免测试内容被收录;线上环境则需要按实际业务决定哪些目录允许抓取。对照的核心方法是:把两个环境的robots.txt分别抓取下来,逐行比对Disallow和Allow规则,确认每条规则的路径、通配符和生效范围是否与各自环境匹配。
假设某项目有测试域名 test.example.com 和线上域名 www.example.com。开发同学在测试环境写了一份robots.txt,内容为禁止抓取全站,上线时运维直接把这份文件同步到了线上。结果线上全站被禁止抓取,搜索引擎无法访问任何页面。
这个假设例子说明的问题是:测试环境的设置目标和线上相反。测试环境要防收录,线上要保收录(或至少保核心目录可抓取)。两份文件必须分开管理,不能共用同一份源文件。
Disallow: /,线上通常不应出现这一行。Disallow: /admin 和 Disallow: /admin/ 匹配范围不同,两个环境要保持各自意图一致,而不是字符一致。错误一:把测试环境的 Disallow: / 带到线上。判断方法是直接访问线上 /robots.txt,看第一段 User-agent 下是否有全站禁止规则。
错误二:线上robots.txt屏蔽了CSS或JS目录。这会影响搜索引擎渲染页面。检查方法是在文件中搜索 .css 和 .js 相关路径。
错误三:两个环境都写了 Sitemap,但地址指向同一个域名。检查方法是看 Sitemap 行的完整URL,测试环境应指向测试域名,线上指向线上域名。
错误四:依赖robots.txt来移除已经收录的页面。robots.txt只限制抓取,不保证移除索引。如果线上有不该收录的页面,应使用noindex标签或返回410状态码,而不是只靠robots.txt。
下一步:把两个环境的robots.txt抓取下来,按上面的清单逐项打勾,确认线上没有全站禁止规则,测试环境没有暴露可抓取路径,然后再交付上线。