结论先行:如果旧地址与新页面之间不存在稳定的一一对应关系,就不要强行给每个旧地址找一个“最像”的新页面,而应按旧地址的流量来源、内容归属和业务价值分成三档处理——有明确继承页的做单点跳转,内容被拆分或合并的做归集跳转,既无继承页又无业务价值的直接返回 410。这个结论成立的前提是:你能拿到旧地址的访问数据,并且新站的信息架构已经基本定型。如果旧站从未接入统计、或者新站栏目还在反复调整,那么先做映射表反而是浪费,应该先冻结新站结构。
一一对应之所以难,是因为改版时经常出现“一对多”和“多对一”。判断依据不是旧地址的标题,而是它实际承接的查询意图。可以按下面的顺序过一遍:
把无继承的旧地址全部 301 到首页,是这类改版里最常见的错误。它会让大量不相关的入口集中指向同一个页面,用户落地后找不到原内容,会立刻返回。这个动作的直接结果是:你以为保住了权重,实际上把一批无效入口变成了高跳出入口,后续再想区分“哪些旧地址真的还有价值”就更难了。
只写“旧地址 → 新地址”两列的表格,过两个月就没人敢改了。建议至少保留这几列:旧地址、旧页面主题、近三个月访问量级、跳转类型(301/410)、目标地址、判断理由。判断理由这一列最关键,它决定了以后能不能安全地推翻某个映射。
假设一个场景:某旧页面是几年前的培训报名通知,访问量已经很低,但偶尔还有外部链接指向它。如果直接 410,那些外部链接的访问者会看到失效页;如果 301 到新的培训栏目页,又会让用户以为还能报名。这时更稳妥的做法是 301 到一个说明该活动已结束、并指向当前培训入口的新页面。这个例子只是说明判断方法,不代表任何真实项目的数据。
反例很明确:当旧地址本身是带参数的动态地址,且参数决定了页面内容时,按路径做映射会大面积出错。比如旧站用 ?id= 区分不同产品,而新站改成了静态路径。这种情况下,路径层面的映射表无法覆盖参数组合,你需要从数据库或后台导出“参数—内容”的对应关系,再按内容主题而不是按 URL 形态去映射。如果拿不到这份对应关系,就只能对高频参数单独处理,其余统一返回 410,并接受一部分长尾地址失效。
另一个会让结论失效的条件是:新站还没有确定最终的信息架构。如果栏目还在合并、拆分,今天做的映射明天就要重做。这时应该先冻结结构,再动映射。
映射表做完后,不要一次性全量替换。先挑三类地址各若干条做抽样:访问量最高的、内容被合并的、准备返回 410 的。上线后观察这些地址的实际落地页是否符合预期,以及用户是否继续访问站内其他页面。如果抽样里出现明显不合理的落地,说明分档规则需要调整,此时改规则的成本远低于全量上线后再回滚。
验证通过后,再分批推进全量映射,并保留一份可回滚的旧规则。映射不是一次性的清理工作,而是一份需要随业务变化更新的对照关系。