网站改版、栏目调整、系统更换,都会带来一批 URL 的变化。迁移做得好,老地址平滑过渡到新地址;做得糙,老地址直接 404,之前积累的外链和用户书签全都落空。301 映射表是这件事的核心,但真正麻烦的不是写跳转规则,而是把所有需要跳的地址找全、对应关系定对、跳转本身不出岔子。
一、先把老地址清单拉全
只凭印象列几个主要栏目远远不够。老站点运行几年,往往沉淀了大量入口页、标签页、分页、参数页和历史上改过名的目录。建议从下面几个来源交叉整理:
- 服务器访问日志:改版前几周的日志里,被真实访问过、被抓取过的地址,优先级最高。
- 旧版 XML 站点地图:能反映当时对外提交过的地址范围。
- 站内链接与导航:页面里互相指向的旧地址,改版后如果没替换,会变成站内 404。
- 外部链接:能查到的主要外链来源页面,它们指向的老地址不能断。
- 搜索表现数据:有展现和点击的落地页,说明这些地址仍在被使用。
把这几份清单合并去重,形成一个待处理的老 URL 列表。数量可能比预想的多,但这正是后面映射表的基础。
二、定好新旧对应关系
不是每个老地址都能找到一一对应的新页面。常见情况有三类,处理方式不同:
一对一
内容基本对应,直接跳到新地址即可。注意跳转目标必须是最终可访问的页面,不要跳到另一个会再跳一次的地址。
多对一
多个老地址(比如带不同参数的同一篇文章)合并到同一个新地址。这种情况要确认跳转目标本身是规范地址,避免把权重分散到几个相似页面上。
一对多或已删除
原页面拆成了几个新页面,或者内容彻底下线。拆分的情况可以跳到最相关的新页面;确实没有替代内容的,返回 404 或 410 比硬跳到一个不相关的页面更合适。
三、301 落地时的几个细节
- 用 301 而不是 302:永久迁移用 301,临时调整才用 302,别混着用。
- 避免跳转链:A 跳 B、B 再跳 C,链条越长,用户和蜘蛛的等待越久,也更容易在中间环节丢掉。
- 保留必要参数:如果老地址的参数对内容有实际意义,跳转时应当带上;纯统计类参数可以丢掉。
- 统一尾斜杠和大小写:同一路径的 /a 与 /a/、大写与小写,最好在跳转规则里一并归一。
- 协议与域名统一:http 到 https、带 www 到不带 www,这些基础跳转要先确认没有冲突或循环。
四、迁移后要盯一段时间
规则上线不代表事情结束。改版后的几周里,建议持续做几件事:
- 查看服务器日志,确认老地址的请求返回的是 301 而不是 404 或 500。
- 检查站内链接,把还指向旧地址的导航、正文链接、按钮逐个换成新地址。
- 更新 XML 站点地图,只提交新地址,不要继续提交已经跳转的老地址。
- 观察搜索表现数据里落地页的变化,看新地址是否开始承接原来的访问。
- 把映射表存档,后续再有调整时可以直接对照,避免重复劳动。
迁移不会立刻反映到搜索结果上,也可能出现短期波动。重点是别让老地址断掉、别让跳转打成死结,剩下的交给时间和正常的运营节奏。
常见误区
- 只处理首页和几个栏目页,忽略分页、筛选页和历史文章。
- 一律跳转到新首页了事,用户找不到原来的内容。
- 跳转规则写错路径,导致整批地址互相跳或跳向 404。
- 改版后旧站点地图没下线,继续把过期地址提交出去。
改版迁移的本质是一次地址的重新分配。清单拉全、对应关系定准、跳转本身干净,这三步做到位,老地址就能平稳过渡到新结构上,用户的收藏和外部链接也不至于白费。