CMS 迁移属于少数几类项目:技术活可以做得毫无差错,结果却仍然是一场灾难。站点按期上线,样子更好看,加载也更快,流量却掉了一半,原因是几百条网址换了形状,而没有人去做那张对照表。技术验收一项项全过,商业结果却是负的。

丢掉的流量并不是新平台造成的,而是断裂造成的:以前能响应的地址现在不再响应,以前能被认出来的页面现在看起来像全新的,多年积累在旧网址上的历史也失去了去处。而且排名往往不是上线当天就掉下去,而是在随后的几周里慢慢往下沉,所以上线当天看着一切正常,并不能说明任何问题。

决定结果的只有一个判断:你要保留 URL 结构吗? 如果保留,迁移基本上就是一件内容和模板的活儿,风险有限。如果不保留,每一条变动过的地址都需要一条指向其具体对应页面的重定向,而这张对照表做得有多完整,决定了这次迁移是悄无声息地过去,还是变成一笔昂贵的账。不存在第三种情况:网址全换了,结果还能碰巧没事。


CMS 迁移到底会弄坏什么

网址,这是最大的一项。不同平台在路径、分页、分类和日期上的约定各不相同,一旦照单全收新平台的默认设置,站点上的每一条地址都会被悄悄改写。有时只是分隔方式变了一点,或者日期多了一段少了一段,整站就换到了另一套地址体系上。

元数据。 多年里一句句写出来的标题和描述,常常撑不过一次导出,新平台会改用模板自动生成它们。这一点特别容易漏掉,因为页面本身看起来完全正常。

结构化数据。 旧平台上由插件添加的标记会随着插件一起消失,新平台的对应功能很少能输出一模一样的结果。我们关于 AI 搜索引擎如何读取 Schema 标记 的指南写清楚了哪些东西必须活下来。

内部链接。 正文里那些指向旧路径的绝对链接,迁移之后仍然指着旧路径。网址一变,这些链接最好的结果也是要多走一次重定向,最差的结果是在你自己的站内撞上一个不存在的页面。

图片和媒体文件。 存储路径不一样,文件名不一样,还有那些只存在于旧数据库、根本没进导出文件的替代文字。

插件替你做过的所有事。 多年间陆续配置的重定向、规范网址规则、订阅源格式,以及那些因为只是一个复选框而从来没人写进文档的功能。

这些都要在迁移之前清点,而不是之后。旧平台默默替你做掉的那份清单,永远比你预想的长。

重定向映射决定一切

如果网址会变,这就是唯一真正要交付的东西,而且必须是完整,不是接近完整。

来源清单要从不止一个地方拼出来。抓取线上站点,能找出被链接到的页面。分析工具和 Search Console 能找出有流量、却可能已经没人链接的孤儿页面。服务器日志能找出真正被请求的东西,包括从别的站点链过来的那一部分。任何单一来源都会漏,而且漏掉的,往往正是那些年头久、身上挂着外链的老页面,而它们恰恰是最值得保住的一批。

给每一条旧网址指定它具体对应的新网址。不是首页,也不是分类页,因为一条指向答非所问位置的重定向会被当成软错误处理,几乎传不过去什么价值。Google 关于网站迁移的文档写明了它期望的对应关系。如果确实没有任何东西与它对应,那么返回一个未找到的响应才是诚实的答案,比一条误导性的重定向更好。

使用永久重定向,把旧地址直接指向最终目的地,让跳转链保持在一跳之内。同时记住重定向规则是按顺序求值的,一条宽泛的规则放在具体规则上面,就会把后者整个吞掉。

然后在上线之前测试这张表,针对全量清单,而不是抽样。把每条地址最终落到哪里、返回什么状态码都记录下来,上线之后的比对会轻松得多。

切换之前

抓取并归档旧站。 一份完整的记录,包含每一条网址的标题、描述、规范网址、状态码和字数。这是你的比对基准线,事后再也补不出来。

导出内容并逐项核对。 要数数量,而不是只确认导出跑完了。分类丢失、自定义字段掉落、文章被截断,这些都很常见,而且都不出声:导出脚本会安安静静地跑完,然后报告成功。

放在被屏蔽的环境里预演。 一个会被收录的预发布站点,等于把整站复制了一份放出去,这个问题比你原本要解决的那个更严重。

检查新模板输出的东西和旧模板一致。 标题、描述、规范网址、结构化数据,如果你在跑多语言,还要包括 hreflang,我们的多语言 SEO 指南里讲过这一段。

安排好时间点。 不要放在最忙的季节之前,也不要放在周五。切换之后你需要连着几个工作日的完整注意力,而且要有能当场发布和修改的人,不是只在旁边盯着的人。

切换之后

头四十八小时比接下来的一个月更重要,因为在这段时间里,还能修的错误依然便宜。

盯住服务器日志里的未找到响应。这是找出对照表遗漏了哪些网址的最快办法,而且它是从真实请求里找出来的,不是从你的假设里推出来的。提交新的站点地图,然后确认抓取真的在发生,而不是默认它在发生。

和基准线抓取结果做比对。之前可以被收录的每一条网址,现在要么能响应,要么会重定向到一个具体的地方。两样都做不到的,就是一个窟窿,值得在它变成永久性的排名损失之前补上。

要预期到一段下滑。即便迁移做得漂亮,几周之内的波动也是正常的,因为新地址需要被重新抓取、重新评估,而这个过程要按周算,不是按天算。不正常的是持续下跌而且不回升,而这几乎总能追回到两件事上:漏掉的重定向,或者指向某个笼统页面的重定向。

重定向要永久保留。它们不是过渡措施,而是把多年积累的链接和你现在的页面连起来的唯一东西。一年之后把它们撤掉,等于把当初那次损失原样再做一遍。

Mecanik 把这类迁移作为网站开发工作的一部分来承接。模式一直是同一个:换平台本身是例行公事,好结果和坏结果之间的全部差别,都落在那张对照表做得有多完整上。



常见问题

为什么换了 CMS 之后流量会下降? 几乎总是因为网址变了,而重定向映射不完整。旧地址不再响应,多年积累的链接和抓取历史就失去了去处。造成损失的很少是平台本身,而是新旧地址之间的那道断裂。

换 CMS 的时候应该保留 URL 结构吗? 只要能保留就保留。保留结构会把迁移压缩成一件内容和模板的活儿,风险有限。改动结构则意味着每一条变过的地址都需要一条指向其具体对应页面的重定向,而这套映射做得有多完整,决定了迁移是悄无声息地过去,还是变成一笔昂贵的账。

需要重定向的网址清单从哪里来? 从多个来源来,因为任何一个来源都会漏。抓取线上站点能找出被链接到的页面,分析工具和 Search Console 能找出有流量但可能已成孤儿的页面,服务器日志能找出真正被请求的东西,包括来自外部链接的请求。单一来源漏掉的,往往是那些身上挂着外链的老页面。

可以把旧页面重定向到首页吗? 不可以。一条指向答非所问位置的重定向会被当成软错误处理,几乎传不过去什么价值。给每一条旧网址指定它具体对应的页面;确实没有对应内容的地方,返回未找到的响应比一条误导性的重定向更诚实,也更有用。

迁移用的重定向要保留多久? 永久保留。它们不是过渡措施,而是多年积累的外部链接和你现在页面之间唯一的连接,所以一年之后把它们撤掉,等于原样重现这次迁移本来要避免的那场流量损失。