网站改版、换域名、调整目录结构,都是运营中难免会遇到的事。很多团队把精力放在新页面的设计和内容上,等到切换上线后才发现:老链接成片打不开,搜索蜘蛛抓到的还是一堆失效地址,本来积累的访问量直接掉一截。问题往往不在改版本身,而在迁移前的 URL 映射和重定向没有提前梳理。
为什么迁移阶段最容易出问题
平时的页面改动是零散的,改一个修一个,影响面小。迁移不一样,它是一次性把大量地址同时换掉,只要有一批没处理好,蜘蛛顺着旧链接爬过来就会连续吃到 404。抓取预算被浪费,新地址也因为缺少入口而迟迟没被发现。
更麻烦的是,迁移往往伴随栏目重组。原来一篇文章在 /a/123.html,新系统里可能变成 /news/2024/xxx/,如果只是把老目录删掉,等于亲手把过去的入口全部切断。
一、先盘清旧地址清单
动手之前,先把“旧地址有哪些”这件事整理清楚。来源可以有几个:
- 服务器访问日志,筛选状态码为 200 的请求路径,按访问量排序;
- 已有的站点地图文件,尤其是历史分片;
- 网站后台的内容导出,包含每篇内容的原链接;
- 外链工具或站长平台的收录数据,能看到哪些地址有外部引用。
清单不用追求绝对完整,但要覆盖流量最高、外链最多、被收录最多的那部分。把这份清单存成表格,后面每一步都基于它来做。
二、建立旧到新的映射表
映射表的每一行,至少包含三列:旧地址、新地址、处理方式。处理方式通常只有几种:
- 一一对应:内容还在,只是地址变了,做单条重定向;
- 合并:几篇旧内容被整合成一篇新内容,全部指向同一个新地址;
- 栏目级:整个目录规则统一,可以用一条通配规则覆盖,比如把 /old/(.*) 指向 /new/$1;
- 彻底下线:内容不再保留,指向最相关的上级栏目页,而不是首页。
这里有个细节值得注意:把大量无关旧地址统统重定向到首页,是最常见的偷懒做法。用户点进来发现内容和预期完全不符,蜘蛛也会判断这是一次软性的失效跳转,价值不大。宁可指向一个分类页,也不要一律丢给首页。
三、重定向要一步到位
重定向链条越长,损耗越大。A 跳到 B、B 又跳到 C,中间任何一环出问题,整条链就断了。迁移时最好直接写成“旧地址 → 最终地址”的一步跳转,不要依赖旧系统里遗留的规则层层转发。
另外,重定向的状态码要用对。永久性的地址变更用 301,临时的活动页、短期跳转用 302。如果拿不准,宁可先按临时处理,观察一段时间再定,也不要随手写成 301——一旦写错,纠正过来需要不短的时间。
四、切换之后要做的验证
上线不等于结束。切换后的头几天,建议固定做几件事:
- 抽查映射表里访问量最高的几十条旧地址,确认全部正常跳到目标页;
- 看服务器日志里 404 的数量,如果某个目录集中出现,说明映射有遗漏;
- 确认新站点地图已经更新,提交的是新地址而不是旧地址;
- 检查站内链接有没有还指向旧路径的,尤其是导航和正文里的老内链;
- 观察各栏目被抓取的频次变化,判断蜘蛛有没有顺利过渡到新结构。
五、几个容易踩的坑
迁移不是一次单纯的技术上线动作,而是一次入口的搬家。老地址是过去的入口,新地址是未来的入口,中间必须有一根明确的绳子连着。
- 只改了前端菜单,正文和侧栏里的内链还指向旧地址;
- 新旧站点同时在线,同一篇内容出现两个可访问地址,形成重复;
- robots.txt 或屏蔽规则忘记同步,新地址被自己挡在门外;
- 映射表只做了一次就不再维护,后续新增的旧地址无人处理。
说到底,URL 迁移的难点不在技术,而在是否有耐心把清单一条条过一遍。做之前多花半天整理表格,往往比上线后花几周收拾 404 要划算得多。