先给结论:不要为每个旧地址硬找一个“最像”的新页面。先按旧地址承载的功能分类,能一一对应的做301,不能对应的做410或保留一个说明页,剩下无法判断的先留在观察清单里,不要急着批量跳转。判断依据只有一个:这个旧地址当初是给用户完成某个动作,还是仅仅作为一段内容的入口。
你手上通常已经有一份旧地址清单,可能来自域名信息查询的解析记录、站点地图、日志或历史备份。不要直接从上往下逐个配目标,先给每个地址打一个标签:
这个分类会直接改变处理方式。功能页一旦没有等价目标,强行跳到首页会让用户以为操作成功了;内容页可以接受跳到主题相近的页面;结构性地址通常不值得单独保留,但也不能一律跳首页。
判断标准不是“看起来相关”,而是用户到达新地址后,能不能继续完成原来那件事。假设旧地址是某个活动的报名页,新站已经取消该活动,但有一个当期活动的报名页,那么跳到当期活动页是合理的,因为用户的目标仍是报名。反过来,如果旧地址是某个已下线的查询工具,跳到产品介绍页就不合理,用户会找不到输入框。
一个可执行的动作:把每个准备做301的旧地址,用一句话写下“用户来这里要做什么”。如果这句话在新目标上仍然成立,才标记为可跳转。做完这一步,你会发现清单里真正能301的比例往往比预想的低。
410 表示资源已永久移除。它比 404 更明确,也比跳首页更诚实。适用条件是:这个旧地址对应的功能或内容确定不会再提供,站内也没有任何页面能承担同样作用。此时返回410,让用户和抓取端都得到“这里不再有东西”的明确信号,比让他们落到一个无关页面更有利于后续判断。
需要注意,robots.txt 的抓取限制不等于索引移除,返回410也不保证马上从结果里消失,这两件事要分开看。你能控制的是服务器响应,不能控制对方多久更新。
如果旧地址仍有外部链接或用户会直接访问,而站内确实没有等价目标,可以保留一个轻量说明页,写清楚这项内容已停止提供、现在可以去哪里找相近信息。这个页面要返回200,内容必须真实有用,不能只是“请访问首页”。
适用条件是:你能确认这个地址仍被外部引用,且用户到达后需要一个解释。如果只是站内自己产生的参数地址,不值得为它专门做页面。
把上面三类压缩成一条可以照着走的判断链:
每一步的结果都会影响下一步:如果第2步判断为“没有等价动作”,就不要再去内容页里硬找替代,直接进入410或说明页的决策,否则会把功能缺失掩盖成内容跳转。
假设旧站有一个按编号查询物流状态的页面,新站只保留了订单列表页,没有独立查询入口。这时:
在这个假设下,说明页是更稳的选择,因为旧地址仍有被直接访问的可能,而新站确实没有等价入口。如果确认该地址没有任何外部引用和直接访问,410 更干净。
上线处理后,至少复查三件事:旧地址返回的状态码是否符合预期;301 的目标是否真的能完成原动作;说明页是否返回200且内容可读。发现某个地址返回了301但目标页打不开,要退回重新判断,而不是继续批量套用同一规则。
如果一段时间后旧地址的访问量下降,不能直接认定处理正确。访问量归零还可能是因为外部链接被移除、用户习惯改变、统计口径变化,或者抓取端尚未更新。反过来,访问量没降也不代表处理错了,可能只是对方还没重新抓取。把这些现象和服务器响应分开看,才能决定下一步是继续观察还是调整策略。
站点地图不保证收录,HTTPS 也不保证页面一定安全或获得更好位置,这些都不能替代对每个旧地址的逐个判断。真正能帮你做决定的,是那个地址原本要让用户完成什么,以及新站现在能不能接住这件事。