换域名、把 http 切成 https、或者把原来的目录结构整体调整一遍,这些操作在后台可能几分钟就完成了,但在搜索索引里,地址的替换是一个分批次、持续数周甚至数月的过程。不少人改完之后第二天就去查收录,发现旧地址还在、新地址没进来,就开始怀疑是不是哪里做错了。多数情况下,这不是出错,而是还没走完。
为什么索引不会同步搬家
索引是以 URL 为单位组织的。一个页面被收录,记录的是这个具体地址,而不是背后的内容。当你换了域名,对索引来说,等于旧地址上的内容消失了,同时出现了一个内容相同、地址不同的新页面。这两件事要分别处理:旧地址需要被抓取、识别为永久跳转、逐步从索引里退场;新地址需要被发现、被抓取、被确认值得收录。
这个过程不是一次完成的。蜘蛛会多次回访旧地址确认跳转关系稳定,也会分批抓取新地址。站点规模越大,这个队列越长。所以迁移期出现新旧地址同时存在于索引里的情况,是正常的中间状态,不必因此判断迁移失败。
迁移前应该确认的几件事
- 301 逐条对应,不要全站跳首页。旧文章的地址应该跳到新域名下对应的那篇文章,而不是统一跳首页。全站跳首页会让搜索引擎认为原来的页面内容已经消失,新地址也得不到明确的对应关系。
- 用 301 而不是 302 或 JS 跳转。302 表示临时,不会推动地址替换;JS 跳转和不跳转差别不大,蜘蛛未必会执行。
- 新域名本身可以抓取。检查 robots.txt 有没有误挡、服务器有没有对新域名做访问限制、证书是否正常。新站被挡住,后面的步骤都无从谈起。
- canonical 指向新地址。如果页面里还留着旧域名或旧路径的 canonical,等于自己给了矛盾的信号。
- 站内链接改成新地址。导航、面包屑、正文内链如果还指向旧地址,蜘蛛每爬一次就多走一次跳转,新地址的发现速度也会慢。
- 站点地图更新为新域名。旧站点地图可以保留一段时间,帮助蜘蛛回头处理旧地址,但不要长期只提交旧的。
旧域名先别急着下线
常见的失误是:新站上线当天就把旧域名的解析停掉,或者把旧站目录删干净。这样 301 就失效了,蜘蛛回来时得到的是一片无法访问,原本可以平稳传递的对应关系直接断掉。
比较稳妥的做法是让旧域名继续解析、继续返回 301,持续至少几个月,直到索引里旧地址的数量明显下降、新地址基本接手之后再考虑停止。旧域名如果本身有较多外部链接指向,保留的时间应该更长。
迁移期盯什么
这段时间不需要天天改东西,但需要定期看几个信号:
- 服务器日志里新旧地址的抓取比例。健康的过程是旧地址抓取量逐步下降、新地址逐步上升。如果旧地址一直占绝大多数,说明新地址的发现路径不够通畅。
- 索引中旧地址数量的变化趋势。看趋势,不看单日数字。索引波动很常见,一周之内的上下浮动说明不了什么。
- 新地址第一批被收录的页面类型。通常是首页、栏目页和链接较多的页面先进入,深层的详情页靠后,这个顺序和平时收录节奏一致。
容易拖慢迁移的几种做法
一是新旧两套内容同时可访问。有人为了"保险",旧站继续保留完整内容、只做部分跳转,结果两个地址都能打开,搜索引擎需要自己去判断哪一个是当前版本,替换过程会被拉长。
二是迁移和改版一起做。换域名的同时把模板、栏目结构、正文内容全部重写,等于在多个变量同时变化的情况下判断问题,一旦出现异常,很难定位是哪一步导致的。比较合理的顺序是先完成地址迁移,稳定一段时间之后再做内容或结构上的调整。
三是频繁回头改动跳转规则。今天改一批 301,明天又换回来,蜘蛛每次抓到的结果都不一样,会降低对这批地址的判断效率。跳转规则在迁移前就应该梳理清楚,上线后尽量保持稳定。
什么时候算迁移完成
没有一个明确的完成时刻,可以按几个条件大致判断:索引里新地址的数量接近迁移前的水平,旧地址只零星残留,日志中新地址成为抓取主体,跳转仍然有效。到了这个阶段,旧域名的 301 也建议再保留一段时间,而不是立刻撤掉。
整个过程的核心其实很简单:让每一个旧地址都能明确指向对应的新地址,让新地址尽快被链接和站点地图暴露出来,然后给这个过程留出时间。急着验证结果、反复调整规则,往往会比按部就班更慢。