先给结论:只有当旧地址与新地址在内容意图上基本等价时,才适合做永久重定向;一旦找不到等价目标,就不要为了消灭 404 而把旧地址批量指向首页、栏目页或最相近的页面。更稳妥的做法是让无等价目标的旧地址保留 404 或 410,同时把真正有替代关系的地址单独映射。下面用两种条件说明何时重定向、何时保留错误状态。
判断等价的依据不是 URL 长得像,而是搜索意图、主体内容和页面类型一致。例如旧地址是一篇介绍某型号设备维护周期的文章,新站也有同一型号、同一主题的文章,只是路径从 /old-equipment/a-100 变成 /support/a-100-maintenance,这属于可承接。
实施动作是逐条建立映射,而不是用规则把整个旧目录指向新目录。规则映射在样本阶段看起来省事,规模化后容易把不同主题的页面全部导向同一目标。做完映射后,下一步要检查三件事:目标页返回 200、目标页内容确实覆盖旧页主题、旧地址只跳一次而不是形成链条。任何一条不成立,就退回单页处理,不要继续扩大规则范围。
旧地址对应的是已下架产品、已终止的活动页、已合并的重复内容,新站没有同类页面,这时把用户和爬虫送到首页会造成误导。用户以为找到了相关内容,实际看到的是无关入口;搜索引擎也会把大量不相关地址视为同一目标的重复信号。此时保留 404 是合理状态,若确认内容永久移除,可以用 410 表达更明确的移除意图。
动作上,先把这类地址从重定向规则中剔除,再检查它们是否被站内链接、站点地图或导航引用。如果仍被引用,优先修改引用来源,而不是给旧地址加跳转。改完引用后,观察服务器日志中这些地址的请求来源是否减少;请求减少只能说明引用在收敛,不能单独证明处理正确,因为缓存、外链和爬虫重访都可能让请求继续出现一段时间。
样本阶段用一条规则把 /old/ 全部指向 /new/ 可能看起来正常,但规模化后会出现两类例外:一类是旧目录下混有不该跳转的页面,另一类是目标页并不覆盖旧页主题。处理顺序应是先按页面类型和主题分组,再对每组分别决定重定向、保留 404 或暂时不动。
假设一个站点迁移了 500 个旧地址,其中 300 个能找到同主题新页,150 个是已下架内容,50 个是参数页。若把 500 个全部指向新站首页,短期看 404 数量下降,但 200 个不相关地址会把用户带到无帮助页面。更合理的分配是:300 个逐条重定向,150 个保留 404 或 410,50 个参数页不做永久重定向。这个例子只说明分组方法,不代表任何真实站点的数据。
先抽查重定向组:目标页是否 200、内容是否等价、是否只有一次跳转。再抽查保留组:这些地址是否仍被站内引用、是否出现在站点地图中。若保留组仍被大量引用,下一步是清理引用;若重定向组出现目标页内容不符,下一步是撤回该条映射并重新寻找目标。不要用 robots.txt 的抓取限制来代替索引移除,也不要因为提交了站点地图就假定旧地址会被正确处理。不同搜索引擎对 404、410 和重定向的处理细节需要分别核查,不能把一家平台的表现直接套用到另一家。
最终选择可以压缩成一句话:有等价目标就单条永久重定向,没有等价目标就保留 404 或 410,并用引用清理和抽查结果决定是否调整下一批地址。