先给结论:不要强求每条旧地址都找到唯一新页。把旧地址按“是否还有等价内容”分成三类——有等价页、可合并到同一主题页、确实没有承接对象——再分别用301、410或保留过渡页处理。映射表的价值不在数量,而在每条规则都能说清“为什么这样跳”。
假设一个情境:某企业站从旧版栏目结构改版,旧地址形如 /product/a-1.html、/news/2019/x.html,新版改成按业务线聚合的路径。此时旧地址与新页不是一对一,而是多对一、甚至无对应。判断依据可以只看三条:旧页的核心信息是否仍存在于新站;旧页是否仍在被外部链接或用户收藏引用;旧页是否承担过转化入口。
三条都满足,才值得做精确301。只有部分满足,优先考虑合并到最接近的主题页。三条都不满足,才考虑让旧地址明确失效,而不是随便跳首页。把“能跳就行”当成默认策略,会让用户和抓取都收到错误信号:他们以为到达了原内容,实际看到的是无关页面。
精确301适用于:旧页有明确的新版对应页,且两页主题、意图基本一致。例如旧的产品详情页在新版仍有同款产品页,只是路径变了。
合并301适用于:多个旧页内容被整合进一个新页。例如旧版把同一产品的参数、案例、常见问题拆成三页,新版合并成一页。此时三条旧地址都指向这一页,但要在映射表里注明合并原因,避免后续维护者误以为漏配。
410或保留过渡页适用于:旧页对应的业务已下线,且没有可承接内容。410比301到首页更诚实,它告诉用户和抓取这个地址确实不再提供内容。如果该旧页仍有较多外部链接或用户习惯访问,可以先保留一个说明页,列出当前可用的替代入口,再决定何时改为410。
一张可执行的映射表至少包含:旧地址、目标地址、处理类型、判断依据、负责人、复核日期。判断依据这一列最容易被省略,但它决定了后续争议怎么解决。例如写“旧页是2019年活动页,活动已结束,无替代内容”,比只写“410”更有用。
动作上,可以先导出旧站所有可访问地址,再按目录聚类,而不是逐条手工判断。聚类后会发现,很多旧地址其实属于同一类,可以用同一条规则批量处理。批量规则处理完后,再单独检查那些被外部链接引用较多的旧地址,确认它们的目标页是否真的匹配。这个动作的结果会直接影响下一步:如果批量规则里混入了有等价内容的旧页,就需要把它们拆出来单独配精确301,而不是继续沿用批量跳转。
假设旧站有 /service/a.html、/service/b.html、/service/c.html 三个页面,分别介绍同一业务的三种套餐。新版把三种套餐合并成一个服务页 /services/。此时三条旧地址都应合并301到 /services/,而不是分别跳到首页或各自找一个不存在的对应页。
但如果 /service/b.html 介绍的是已停售的套餐,且新版没有任何页面承接它,那就应改为410,或在服务页里保留一段停售说明并让旧地址指向该说明锚点。两种做法都成立,区别在于:前者更干净,后者对仍从旧链接进入的用户更友好。选择哪一种,取决于该旧地址是否还有实际访问和外部引用。如果没有数据支撑,可以先保留过渡页观察一段时间,再决定是否改为410。
验证不是看“有没有跳”,而是看“跳得对不对”。可以抽查三类地址:精确301的旧地址,确认目标页主题一致;合并301的旧地址,确认多个旧地址都落到同一个新页且没有互相冲突;410的旧地址,确认返回状态正确且没有误跳首页。
如果发现某个旧地址被批量规则错误地跳到了无关页,应立刻把它从批量规则中拆出,单独配置。这个动作的结果是:映射表从“按目录粗分”变成“按目录加例外”的结构,后续新增旧地址时也能沿用同样的判断顺序。验证频率不需要固定,但在改版上线后、批量规则调整后、以及外部链接集中出现变化时,都应重新抽查。