核心判断是:不要因为旧地址没有完全等价的新页面,就把它一律重定向到首页或直接放开抓取。更稳妥的做法是按旧地址的“内容角色”分三类处理:能一对一对上的做精确重定向,只有部分相关但仍有独立价值的做内容合并或保留过渡页,确实没有对应内容的才让它返回 410 或 404,而不是用 robots.txt 去掩盖。下面用一个假设情境把决策过程走一遍。
假设某站点把 /guide/ 目录整体迁到 /handbook/,迁移后出现三种旧地址:
/guide/seo-basics 在新目录里有内容几乎一致的 /handbook/seo-basics。/guide/tools-list 在新目录里没有对应页,但它的内容被拆进了三个新页面。/guide/old-promo 是已下线的活动页,新站没有任何承接内容。直觉上最容易做的是:把整个 /guide/ 前缀 301 到 /handbook/,再在 robots.txt 里屏蔽旧目录。这个做法对 A 类基本可行,但对 B、C 两类会制造新问题——用户和抓取工具会被送到一个并不回答原问题的页面,而 robots.txt 的屏蔽又让旧地址的真实状态无法被正常观察。
robots.txt 限制的是抓取,不是索引状态。一个已被收录的旧地址,即使后来被 robots.txt 屏蔽,它仍可能因为外部链接、历史信号而留在索引里,只是抓取工具无法重新读取页面内容来判断它已经失效。这会让“移除”这件事变得更难核对,而不是更简单。
更关键的是,屏蔽会切断你判断问题来源的证据链。你原本可以通过旧地址返回的状态码、目标页内容、canonical 指向来区分“重定向配置错了”还是“目标页本身不相关”,一旦屏蔽,这些观察都做不了。所以处理旧地址时,robots.txt 应被视为抓取预算和敏感路径的管理工具,而不是迁移清理工具。
动作:对旧地址做 301 指向最接近的新页面,并确认新页面自身可访问、内容主题一致。结果:旧地址的信号能传递到新地址,用户点击旧链接也能落到相关内容上。下一步是抽查若干条重定向链,确认没有出现“旧地址→中间页→最终页”的多跳,也没有指向已失效页面。
这里有两个成立条件不同的选择:
动作:先判断旧地址的主题是否被某个新页面完整覆盖。结果:覆盖则重定向,不覆盖则保留过渡内容。这个判断会直接影响下一步——保留过渡页意味着你还要为它设置 canonical 和后续下线计划,否则它会长期占用抓取和索引位置。
动作:让旧地址返回 410(明确不再存在)或 404,而不是重定向到首页。结果:抓取工具能读到“该地址已失效”的明确信号,用户看到的是标准的未找到页面。下一步是检查这些失效地址是否还有大量外部链接——如果有,考虑是否值得为它新建一个真正相关的内容,而不是靠重定向硬撑。
当旧地址表现异常时,先收集这几类证据再下结论:
需要提醒的是:请求量下降或某个地址从抓取日志里消失,并不能单独证明处理正确。它也可能来自抓取频率调整、站点整体流量变化、或该地址本来访问就少。把这些现象当成唯一证据,容易把“没被抓”误判成“已正确处理”。
假设情境里的正确顺序是:先给 A、B、C 三类分别定处理方式,再统一检查重定向链和落地页,最后才考虑是否需要为某些路径调整 robots.txt。对绝大多数迁移清理场景,robots.txt 都不应出现在处理旧地址的第一步。把它留到确认某些路径确实不需要被抓取时再用,才能避免屏蔽掩盖真实状态、让后续核对失去依据。