先确认一个前提:你手里没有完整的历史访问日志,也没有服务器重写权限,只有一份旧地址清单和一批新页面。这种情况下,映射的目标不是“全部还原”,而是让仍然可能被外部引用的旧地址落到最接近的新页,其余旧地址明确返回 404 或 410,而不是全部跳首页。保留、改写、退出三种取舍要分开判断。
保留映射的前提是旧地址仍有独立价值:它对应一个明确主题,且新站存在内容相近但路径不同的页面。典型如旧栏目页 /news/2019/ 对应新站的资讯列表。此时用 301 指向最接近的列表页,属于合理的保留。
但如果旧地址是一个早已停止更新的专题聚合页,而新站没有同类聚合,只把它跳到首页,会让访问者预期落空。更稳妥的做法是改写——把旧地址指向一篇仍然相关的单篇内容,并在该页顶部用一句话说明来源变化;或者直接退出,返回 410。
判断依据可以看两点:旧地址在外部链接或收藏中的出现频率,以及新站是否存在语义相近的落地页。两者都成立才保留;只有其一,倾向改写;都不成立,退出。
缺少访问日志和后台权限,仍然可以做一件事:把旧地址清单按路径层级分组,人工判断每组是否有新页承接。例如旧地址 /product/a.html 和 /product/b.html 同属产品目录,新站产品页统一为 /products/a 和 /products/b,就可以按规则批量改写,而不是逐条猜测。
这个动作的结果会直接影响下一步:如果分组后超过一半的旧地址找不到对应新页,说明新站信息架构与旧站差异过大,此时继续做逐条映射的收益很低,应把精力转向退出策略和站内导航修复;如果大部分能对应,才值得为剩余少数地址单独处理。
需要说明的是,即使旧地址清单完整,也不能推出“所有旧地址都曾被外部引用”。清单只代表曾经存在,不代表仍有流量。把清单等同于有效引用,是常见的误判。
改写适合旧地址主题仍在、但新页路径或层级发生变化的情况。做法是让旧地址 301 到语义最接近的新页,而不是机械地按目录名替换。例如旧站 /service/web/ 在新站被拆成 /services/design 和 /services/development,就不存在唯一对应,此时应选择访问者最可能需要的那个,或退回到服务总览页。
改写的边界在于:不能为了让旧地址“有去处”而把不相关页面强行配对。把旧的产品页跳到新站的新闻页,虽然返回了 200,但访问者会立刻离开,这种映射在体验层面等同于失效。改写的前提是主题一致,路径差异只是次要因素。
退出指对旧地址返回 404 或 410,不做跳转。它适合以下情况:旧地址对应的是已下线的活动页、临时专题、重复内容,且新站没有等价页面。继续保留一个空壳或跳到首页,只会让访问者反复回到起点。
退出的代价是失去旧地址可能携带的引用价值,但如果旧地址本身已经不再被引用,这个代价接近于零。你可以先对一小批旧地址执行退出,观察一段时间内是否出现来自旧地址的访问或反馈;如果没有,再扩大范围。这个动作的结果是:确认无访问后,退出策略可以覆盖更多同类地址,而不必为每条都设计跳转。
这套顺序不依赖完整日志,也不依赖服务器权限之外的工具。它的核心是:先分组再决定,而不是逐条猜测。分组结果决定了你该把时间花在保留、改写还是退出上。