结论先说:不要追求“每个旧地址都找到一个新页面”。更稳妥的做法是把旧地址按处理意图分成三组——能一一对应的做单点映射,语义相近但结构不同的做聚合映射,确实没有承接页的返回 410 或保留一个说明页。判断依据不是旧地址数量,而是旧地址背后的内容是否还存在、是否还有访问价值、以及新旧页面的主题是否真的同一件事。
拉萨网站开发项目上线后,常见一幕是:新站信息架构已经按业务重新划分,但服务器日志、站长后台或第三方统计里仍能看到大量旧地址被请求。此时团队里会出现两种完全不同的判断。
技术角色倾向于认为:既然旧地址已经不存在,直接让它们返回 404 就行,反正新站结构更合理。运营角色则倾向于认为:这些地址过去可能带来过访问,全部丢掉太可惜,应该尽量重定向到首页或某个栏目页。两种理解都抓住了一部分事实,但直接把结论落到配置上,往往会做出错误的映射。
如果旧地址对应的内容本身已经下线,比如过期的活动页、临时专题、已经停止提供的服务介绍,那么它没有可承接的新页面。此时返回 404 或 410 是诚实的信号,比强行跳到首页更清楚。强行跳首页会让访问者以为找到了内容,结果发现主题完全不符,反而增加跳出。
如果旧地址对应的内容只是换了栏目、改了标题或合并进了新页面,那么它仍有承接价值。比如原来按年份划分的新闻列表,新站改成按业务分类,旧列表页虽然不再存在,但其中的文章都还在。这种情况下,把旧列表地址指向新的文章聚合页或相关栏目,比让它 404 更合理。
不要靠感觉争论,用下面几类可核对的信息来区分:
注意,请求量下降或归零不能单独证明映射做对了,也可能是外部链接失效、抓取频率变化或统计口径调整。反过来,请求量高也不等于必须重定向,还要看请求者是否真的需要那个内容。
条件是新旧页面主题完全一致,只是 URL 结构变了。例如旧地址是文章详情页,新站仍保留同一篇文章,只是路径从 /news/2023/xxx 变成 /zixun/xxx。这种映射最安全,直接一条规则指向一条规则。
条件是旧地址是一个列表、专题或分类页,新站没有完全对应的页面,但有主题相近的栏目或聚合页。此时把旧地址指向该栏目,而不是首页。指向栏目至少让访问者落在相关主题范围内。
条件是内容已经不存在,也没有主题相近的承接页。返回 410 比 404 更明确地表示“已永久移除”,但两者都比跳首页诚实。如果旧地址仍有外部链接指向,可以在该地址保留一个简短说明页,告诉访问者内容已下线并给出相关入口,但这需要单独维护。
假设某次拉萨网站开发改版后,旧站有约 2000 个地址,新站只保留了约 800 个页面。团队先抽取 50 个旧地址,逐个打开旧内容快照,对照新站栏目,结果发现:约 20 个能一一对应,约 15 个能归入相近栏目,约 10 个内容已删除且无替代,剩下 5 个无法判断。此时先处理能判断的 45 个,把无法判断的 5 个单独列出,向内容负责人确认,而不是直接写一条“全部跳首页”的规则。
这个动作的结果是:映射规则覆盖了大部分可判断地址,同时没有把无替代内容的旧地址错误地导向首页。下一步就可以根据确认结果,把剩余地址补入规则或标记为淘汰。
映射设计的目标不是让所有旧地址都“有地方去”,而是让每个旧地址的去向与它原本承载的内容意图一致。做不到一一对应时,按意图分组比按数量平均分配更可靠。