搜索抓取

站点改版与 URL 迁移:蜘蛛的发现路径会经历哪几个阶段

站点改版、换域名或调整目录时,蜘蛛原来的 URL 发现路径会被整体替换,旧地址的抓取、重定向的传递和新地址的入队往往并不同步。本文按迁移阶段梳理抓取路径的变化,说明旧 URL 保留、301 配置、Sitemap 与内链切换的顺序,以及抓取日志里值得关注的信号。

搜索抓取

站点改版与 URL 迁移:蜘蛛的发现路径会经历哪几个阶段

改版时,蜘蛛看到的是两套并存的地址

站点改版、换域名、调整目录层级,本质上都不是“页面换了皮”,而是蜘蛛原本熟悉的那套 URL 发现路径被打断了。旧地址还在被外部链接指向、还在 Sitemap 里、还在用户收藏夹里,新地址则需要重新被内链和 Sitemap 推出去。这两套地址会在一段时间里同时存在,蜘蛛的抓取分布也会随之变化。

所以迁移期的目标不是“越快换完越好”,而是让旧地址始终有新地址可去,让新地址尽快被链接到。

迁移期大致会经过四个阶段

  1. 旧路径仍在被抓:蜘蛛按历史记录回来,看到的是 301 还是 404,决定了它接下来能不能走到新地址。
  2. 重定向被跟随:如果 301 指向明确,蜘蛛会顺着跳到新 URL,并把它放进待抓队列。
  3. 新路径完成替换:内链、导航、Sitemap 逐步指向新地址,新 URL 的抓取量开始上升。
  4. 旧路径淡出:旧 URL 的抓取频次下降,最终只在外链和历史记录里出现。

这四个阶段并不是依次完成的,而是大量重叠。旧路径淡出的速度,往往取决于外部链接和用户访问的更新速度,而不是你改了多少模板。

旧 URL 必须仍然可访问,哪怕只是为了让蜘蛛看到 301

最常见的失误,是改版后用 robots.txt 屏蔽旧目录,或者直接把旧目录删掉返回 404。前者让蜘蛛连 301 都看不到,后者让已经积累的链接全部变成死路。两种做法都会拖慢新地址被发现的速度。

  • 保留旧路径至少一个完整的观察周期,能访问、能返回 301;
  • 不要用 noindex 代替 301,也不要给重定向的目标页加 noindex;
  • 旧 Sitemap 可以先保留一段时间,再逐步替换为新 Sitemap。

重定向链越长,蜘蛛走完这段路越慢

一条 301 是可以接受的,一条 A→B→C→D 的链就不是了。每多一跳,蜘蛛就多一次请求,也多一个可能失败的环节。改版时建议把映射关系整理成一张表,逐条直接跳到最终地址,避免中间层。

能用一次 301 解决的问题,不要用两次。能把映射提前写在配置里,就不要等到日志里出现 404 再补。

另外,302 和 JS 跳转在发现路径上的表现不如 301 直接,迁移场景尽量用 301。

内链和 Sitemap 的切换顺序

蜘蛛发现新 URL 的主要途径还是内链。改版后,导航、面包屑、正文里的相关链接、分页这些位置应该尽快指向新地址,而不是等它自己从 301 里慢慢爬过去。

  1. 先切导航和手写推荐位,这些位置抓取频次最高;
  2. 再切正文内链和列表页模板;
  3. Sitemap 同步更新,旧地址如果仍返回 301,可以暂时保留在其中;
  4. 最后清理站内指向旧地址的残留链接。

日志里值得盯的几个信号

  • 301 与 404 的比例:404 突然升高,多半是映射表漏了规则;
  • 新 URL 的首次抓取时间:长时间没有被抓,通常是内链还没切过来;
  • 旧 URL 的抓取频次曲线:缓慢下降是正常的,断崖式下跌往往意味着被屏蔽或整站不可访问;
  • 5xx 与超时:改版期间服务器压力偏大,抓取失败会同时拖慢新旧两边的发现。

迁移期尽量不要做的事

  • 一次性把全站 URL 全部换掉,让内链和 Sitemap 同时指向尚未验证的新路径;
  • 用 robots.txt 屏蔽旧目录,指望蜘蛛“自然切换”;
  • 把 301 全部指向首页,让所有旧地址都失去对应关系。

迁移期的节奏,本质上是让蜘蛛在“旧地址还能走、新地址已经通”的状态下完成替换。把映射做全、把 301 做直、把内链先切到高频位置,剩下的就交给时间。