迁移期,蜘蛛手里同时握着两套地址
站点改版或换域名时,抓取并不会在切换那一刻重置。蜘蛛仍会按旧地址来访问一段时间,这些访问不是噪音,而是把新地址介绍给它的机会。过渡期处理得好,抓取路径能比较平滑地迁移;处理得粗,旧地址会持续消耗抓取频次,新地址却迟迟走不顺。
旧地址要给明确去向,别让蜘蛛猜
最常见的问题不是跳转没做,而是做得不清楚。以下几种做法需要避开:
- 用 302 长期代替 301,临时跳转通常不会被当作地址变更信号;
- 用 JS 跳转或 meta refresh 代替服务端跳转,部分抓取场景不执行,等于旧地址是死路;
- 跳转链过长,A 跳到 B 再跳到 C,每次都是一次额外访问,路径被拉长;
- 在 robots.txt 里屏蔽旧路径,蜘蛛连 301 都看不到,自然也拿不到新地址。
另外,不要用一条通配规则把所有旧路径都指到首页。路径与页面一一对应的 301,才能把访问带到正确的新地址上。
内链是切换信号,不是迁移后的收尾
旧地址在蜘蛛那里还存在,很大程度是因为站内还在指它。导航、面包屑、相关推荐、列表页、RSS,只要有一处还输出旧链接,蜘蛛就会继续沿旧路径走,301 的访问量也就降不下来。
- 检查模板里硬编码的链接;
- 确认 XML Sitemap 的生成逻辑读的是新地址;
- 结构化数据、分享链接、站内搜索结果里的 URL 也顺手更新。
Sitemap、canonical 与 hreflang 的配合
新 Sitemap 只放新地址,旧 Sitemap 建议保留一到三个月,用来帮助蜘蛛发现旧地址上的 301。canonical 指向自身的新地址,不要新旧互相指向,那会把信号弄乱。多语言或多地区站点,hreflang 里的地址同样要跟着换。
迁移节奏与观察指标
不必一口气全站切换,但也不宜拖得太久。可以按页面价值分批:先切换主要入口和内容页,再处理低价值页面。切换后从日志里看几件事:
- 旧地址的抓取量是否逐步下降;
- 新地址的抓取量是否同步上升;
- 301 的命中次数与来源路径,判断还有哪些入口没改;
- 新地址被抓取后的状态码与响应时间是否稳定。
几个容易被忽略的坑
- 旧地址直接返回 404,蜘蛛拿不到去向,迁移信号中断;
- 新旧页面内容同时在线,又没有 canonical,形成重复地址;
- 内链只改了一半,蜘蛛在两套结构之间来回走;
- 新旧路径同时响应,服务器压力上升,抓取频次被动下调。
迁移的本质是把一条清晰的路径交给蜘蛛:旧地址有明确去向,新地址有稳定入口。做到这两点,剩下的就是按日志里的反馈逐步收口。