先给结论:不要追求把每个旧地址都翻译成一个新地址。更稳妥的做法是把旧地址分成三类——能确定唯一新页的做单点映射,不能确定唯一新页的做归并映射,已经没有承接价值的做集中收口;三类都返回 301,但目标不同。判断依据不是旧地址数量,而是每个旧地址背后是否还有可延续的访问意图。
把旧站导出的地址列表和访问记录放在一起,逐个判断它原本服务什么需求。这里的关键不是旧地址长得像哪个新页,而是访问者点进来想解决什么问题。
假设有 200 条旧地址,其中 60 条能一一对应,120 条属于同类合并,20 条已无对应内容。这个比例只用于说明分类方法:真正决定映射结构的是后两类怎么处理,而不是那 60 条。
一对一映射最容易出错的地方,是只看了 URL 里的关键词就配对。旧地址里的词可能只是当年的栏目命名,新页虽然标题相近,实际内容范围已经变了。
可执行动作:打开旧页存档和新页正文,比较三件事——核心主题是否相同、覆盖范围是否明显变窄或变宽、页面上的下一步动作是否一致。如果旧页是产品选型说明,新页只剩一句产品简介,这就不算等价,应改指向更完整的产品分类页。
这个动作的结果会直接影响下一步:确认等价后才写入单点映射;发现范围不一致,就把它挪到归并映射里,避免把访问者送进信息不足的页面。
当一批旧地址各自只覆盖某个细分点时,新站往往用栏目页统一承接。此时目标页应当是这批旧地址共同主题的上层页,而不是访问量最高的那个页面。
假设旧站有十几个关于某类设备维护的短页,新站合并成一个维护知识栏目。把这十几个地址全部指向栏目首页,比分别指向栏目里某一篇文章更稳,因为后者会让访问者以为自己点错了。判断标准是:目标页能否让来自任意一条旧地址的访问者都找到与原主题相关的内容入口。
如果新站连对应的上层页都还没有,就先不要急着批量映射。可以先让这批地址指向最接近的现有栏目,等栏目内容补齐后再调整。映射不是一次定终身,但要避免在目标页明显不匹配时硬做。
映射上线后,需要看两样东西:一是旧地址返回的状态码是否符合预期,二是目标页是否真的接住了这些访问。这里要提醒一句:某条旧地址的访问量下降甚至归零,不能单独证明映射正确。它也可能来自链接自然失效、来源页面改版、统计口径变化,或者访问者本来就在减少。
更可靠的验证方式是抽样。从三类映射里各抽若干条,手动请求旧地址,确认返回 301 且 Location 指向预期目标;再打开目标页,确认内容主题能接住原意图。如果抽样中发现某类映射大量指向了不相关页面,就回到分类环节重新判断,而不是逐条打补丁。
如果旧站本身没有可用的访问记录,只有一份地址清单,那“意图是否唯一”就只能靠页面存档判断,准确度会下降,此时应把更多地址放进归并映射,减少单点误配。如果旧站和新站的业务范围已经发生明显变化,旧地址对应的服务不再提供,那么集中收口到新的业务入口比强行找对应页更合适。
还有一种边界:旧地址数量很少、且每条都能明确对应时,直接做单点映射即可,不必为了统一格式而制造归并层。分类方法的价值在于处理规模化和例外,而不是给简单情况增加步骤。
把这三类映射写成一份可维护的对照表,注明每条地址的分类依据和目标页,后续新增旧地址时按同一逻辑追加,就能在历史地址与新页无法一一对应时保持处理一致。