改版或迁移时核对 robots.txt,核心是确认旧规则没有继续拦住新 URL、没有把整站或关键目录误封,同时确认新规则确实允许抓取。最容易出错的一步,是把旧站为屏蔽测试环境、旧目录或参数页写的 Disallow 原样带到新站,而新站恰好沿用了相同路径。判断方法不是看文件是否存在,而是用具体 URL 逐条比对规则,再结合抓取日志和抓取测试验证。
迁移开始前,先把旧站 robots.txt 完整保存下来,标注每一条规则的原始用途。然后整理一张路径对照表,至少包含三类:保持不变的上线路径、已经更换的路径、只存在于旧站的废弃路径。没有这张表,后面无法判断某条 Disallow 是保护还是误伤。
核对时重点关注这些写法:
Disallow: /:屏蔽整站,迁移期间若忘记删除,新站可能长期无法被抓取。Disallow: /search:会同时匹配 /search、/search/ 和以 /search 开头的路径,新站若有 /search-guide 也会被拦住。Disallow: /*.pdf$:只影响以 .pdf 结尾的地址,改版后文档路径变成 /docs/abc 时,这条规则不再起作用,需要重新评估。Allow 与 Disallow 同时命中同一路径时,匹配更具体、路径更长的规则优先。迁移后路径变短,优先级可能反转。新文件的写法要围绕新站真实存在的目录来写。假设旧站用 Disallow: /tmp/ 屏蔽临时页,新站已取消该目录,这条规则就该删除;如果新站仍有测试目录,则应保留并确认它不会被外链或站点地图暴露。用户代理分组要分开写,针对特定爬虫的规则不要和 User-agent: * 混在同一组里。
站点地图声明可以写,但站点地图不保证收录,它只是提交候选 URL 的渠道之一。robots.txt 中的抓取限制也不等于可靠的索引移除:被 Disallow 的 URL 仍可能因为外部链接出现在搜索结果中,只是摘要信息可能受限。若目标是让页面从搜索结果消失,robots.txt 不是合适手段,应使用页面级 noindex,并确保该页面本身允许被抓取,否则 noindex 无法被读到。
这是本题最关键的一步。把新站首页、栏目页、详情页、分页、参数页、静态资源各取一个真实 URL,逐条套用规则,判断结果是允许还是禁止。可以手工推导,也可以使用搜索引擎提供的抓取测试工具,但不同搜索引擎对 robots.txt 的支持细节需要分别核查,不能用一个工具的结果推断所有爬虫的行为。
验证时至少检查:
如果验证发现某个重要 URL 被禁止,先定位是哪一条规则命中的,再决定修改规则还是调整 URL 结构。不要为了通过测试而直接删除全部限制,这会把后台和参数页一并放开。
上线后一段时间内,定期查看抓取统计和服务器日志,确认允许抓取的目录请求量正常、被禁止目录没有异常增长。每次新增目录、修改 URL 规则或调整参数策略时,同步复查 robots.txt,避免新路径落进旧规则的匹配范围。把 robots.txt 纳入改版检查清单,和重定向、站点地图、canonical 一起核对,而不是上线后才补看。
下一步:打开新站 robots.txt,取首页和一个核心栏目 URL,逐条套用现有规则,确认两者都允许抓取;若发现禁止,记录命中的规则行再修改。