robots.txt优化,改版或迁移时应核对什么

📍 WDQWDWQD987AAAAA:216.73.216.239
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /92e5830dc1e3.html
📄

robots.txt优化,改版或迁移时应核对什么

改版或迁移时核对robots.txt,核心是确认三件事:旧路径的抓取规则是否仍然指向正确位置、新路径是否被误拦截、以及规则本身是否还符合当前站点结构。最容易被忽略的是:robots.txt只控制抓取,不能可靠地移除已被索引的页面;如果迁移后旧URL返回404或跳转到新URL,而robots.txt又屏蔽了旧目录,爬虫可能无法读到跳转信号,导致旧索引长期滞留。

先观察:迁移后抓取规则与URL结构是否错位

迁移常见两种处理方案,适用条件不同:

观察阶段要逐条比对:robots.txt里的Disallow路径、Allow例外、Sitemap地址,是否分别对应迁移后的真实目录。常见错位是旧规则仍写着Disallow: /old-category/,而新站已把内容放在/new-category/,结果新内容被旧规则误伤,或者旧目录被放开导致大量404被反复抓取。

判断:哪些规则必须改,哪些可以留

判断依据是“这条规则想阻止什么,迁移后那个目标还在不在”。可以按下面清单核对:

  1. 列出robots.txt中所有Disallow和Allow条目,逐条标注它对应的目录或文件。
  2. 确认该目录在迁移后是否存在、是否还承担原来的功能。
  3. 如果目录已废弃且不需传递信号,保留屏蔽可以;如果目录需要跳转或需要被读取noindex,必须放开。
  4. 检查Sitemap行指向的地址是否为新站可访问的站点地图,注意robots.txt里的Sitemap只是提示,不保证收录。
  5. 检查是否误屏蔽了CSS、JS等渲染资源目录,这会影响爬虫理解页面。

一个常见误区是把robots.txt当成索引移除工具。如果目标页面已经收录,正确做法通常是让页面可抓取、在页面上返回noindex,或对旧URL做301;只有在确认不需要索引且不介意索引残留时,才用robots.txt屏蔽抓取。

处理:改版迁移时的具体操作步骤

假设一个站点从/blog/迁移到/articles/,且旧文章全部301到新地址。处理顺序如下:

  1. 先确认旧URL能正常返回301,且目标URL返回200。
  2. 在robots.txt中确保/blog/没有被Disallow,否则爬虫抓不到301。
  3. 把Sitemap更新为新站的站点地图地址,并确认该地址可访问、内容为迁移后的URL。
  4. 如果新站有需要屏蔽的后台或搜索参数目录,单独添加规则,避免与内容目录混淆。
  5. 迁移完成后,用搜索引擎提供的robots.txt测试工具或抓取工具核查规则是否按预期生效。

如果选择屏蔽旧目录,要明确这是“放弃旧URL信号”的方案,适用条件是旧内容确定不再需要、且能接受旧索引逐步自然衰减。此时不要同时指望301生效,因为抓取已被阻止。

复查:迁移后需要持续核对的项目

复查不是看一次就结束。迁移后应定期检查:

复查时区分“可能原因”和“已定位原因”:收录未减少可能是抓取被屏蔽、跳转未生效、页面返回错误状态,也可能是索引更新本身需要时间,不要只凭一个现象断定唯一原因。

下一步:打开当前robots.txt,把每一条Disallow和Allow与迁移后的目录逐一对照,标出需要放开、保留或新增的规则,再结合旧URL的跳转状态决定是否屏蔽旧目录。

图1 图2

nginx