改版或迁移时,robots协议最需要核对的是三件事:新环境里是否还存在一份可访问的robots.txt、其中的Disallow与Allow规则是否仍指向真实路径、以及旧规则有没有把新页面或新目录一并挡住。判断标准不是“文件存在”,而是“抓取规则与当前站点结构一致”。只要路径、子域、协议或目录层级发生变化,旧规则就可能从保护变成障碍。
迁移后不要只看本地文件或代码仓库。抓取工具读取的是服务器返回的内容,因此要以线上响应为准。可以执行以下检查:
/robots.txt,确认返回状态码是200而不是404或403。这里要区分“可能原因”和“已经定位的原因”。页面未被抓取,可能是robots.txt禁止、可能是服务器返回异常、也可能是内链或站点地图没有指向新地址。只有看到robots.txt中确实存在匹配的Disallow规则,才能把robots协议列为已定位原因。
以下变化最容易引发问题:
/blog/ 下,新站改到 /news/,而robots.txt仍写着 Disallow: /news/,新内容会被直接挡住。http 迁到 https,或从主域迁到子域后,robots.txt需要在新地址下单独确认,旧地址的规则不会自动跟随。判断某条规则是否误伤,可以把新站需要被抓取的目录逐条与Disallow规则做前缀比对。假设新站需要开放 /product/,而规则中有 Disallow: /prod,由于前缀匹配,/product/ 也会被挡住。这类问题在改版时很常见,必须逐条核对。
多人协作时,建议把robots.txt当作需要评审的配置文件,而不是随手改的文本。可执行步骤:
如果旧站仍需保留一段时间,可以在旧站robots.txt中保留必要的抓取限制,但不要用旧规则去管理新站。新旧两套环境的规则应分别维护、分别核查。
规则发布不等于问题解决。复查时至少确认:
复查结果只有两种:规则与当前站点结构一致,或存在需要继续修正的路径。若发现某目录仍被挡住,回到判断环节重新比对规则,不要直接删除整份robots.txt,以免把本该屏蔽的后台或临时目录暴露出来。
下一步:把新站需要抓取的目录和需要屏蔽的路径各列一份清单,与线上robots.txt逐条比对,确认无前缀误伤后再发布变更。