搜索抓取

重定向链与 URL 发现:一次跳转到底消耗了什么

重定向不只是把访问者带到新地址,它还会改变 URL 被发现的位置、拉长抓取路径、消耗额外的抓取次数。本文梳理常见的跳转场景,给出判断跳转链是否过长的检查方法,以及把链接收敛到最终地址的常规做法。

搜索抓取

重定向链与 URL 发现:一次跳转到底消耗了什么

站点改版、换域名、调整栏目结构时,重定向几乎是标配动作。但从搜索抓取的角度看,每一次跳转都不只是“把用户带过去”这么简单:它改变了 URL 被发现的位置,消耗了额外的抓取次数,也让抓取路径多出一层不确定性。

重定向在抓取流程里扮演什么角色

搜索蜘蛛拿到一个 URL 后,会先请求它,看到 301 或 302 状态码,再对 Location 指向的新地址发起第二次请求。也就是说,一次跳转会带来一次额外的请求。如果这条链上有三层、四层跳转,蜘蛛就要连续访问多个地址,才能拿到最终内容。

结果是:原本访问一个 URL 的预算,被拆成了好几次请求。抓取次数有限时,跳转链越长,能覆盖到的 URL 数量就越少。

几种常见的跳转场景

  • 域名迁移:老域名整站 301 到新域名,通常是必要且一次性的。
  • HTTP 到 HTTPS:如果站内链接、Sitemap 里还残留 http 地址,每次访问都会多一跳。
  • 尾斜杠规范化:/page 与 /page/ 之间互相跳转,容易形成来回打转的循环。
  • 临时跳转被长期使用:302、307 本意是临时,但不少站点把它当永久方案,长期挂着。
  • 跳转目标又跳转:A 跳到 B,B 又跳到 C,链路被越拉越长。

跳转对 URL 发现的三个具体影响

1. 发现位置发生偏移

蜘蛛是从链接着手发现 URL 的。如果内链指向的是跳转前的地址,而实际抓到的内容属于跳转后的地址,两者在统计上会被拆开看。站内链接最好直接指向最终地址,让发现和抓取落在同一个 URL 上。

2. 抓取路径被拉长

一条内链本来一跳可达,加上跳转后变成两跳甚至三跳。层级越深、跳转越多,蜘蛛走到深层页面的概率就越低,尤其是只靠单一路径进入的页面。

3. 信号集中度被稀释

多个地址都能到达同一内容时,入口信号会被分散。长期看这不是致命问题,但会让“哪个地址该被收录”变得模糊,统计和排查也会变麻烦。

怎么判断自己的跳转链是否过长

  1. 用抓取日志看状态码分布,统计 301、302 请求占比。如果比例长期偏高,说明站内还有大量链接指向旧地址。
  2. 抽查重点栏目页,手动跟随跳转,看需要几次才到最终内容。超过两次就值得处理。
  3. 检查 Sitemap 里的地址,确认全部是最终地址,没有中间态。
  4. 检查导航、面包屑、列表模板等内链输出,确认吐出来的是最终地址。
判断标准很简单:蜘蛛用一次请求能拿到的内容,就不要让它请求两次。

收敛跳转链的常规做法

  • 链接直指终点:内链、Sitemap、RSS 里的地址统一改成最终地址,这是收益最直接的一步。
  • 缩短链路:A→B→C 改成 A→C、B→C,避免串成一条长链。
  • 临时换永久:确认不再回滚的跳转,换成 301。
  • 警惕循环:/a 跳 /a/ 又跳回 /a,这类问题通常出在服务器规则或 CDN 配置上,需要逐条核对。
  • 保留必要跳转:老域名、老栏目的 301 不要轻易删除,它们是老链接继续被发现的通道。

重定向本身不是问题,问题在于它被当成长期架构的一部分。把跳转当作过渡手段,把最终地址放回链接里,URL 发现和抓取路径都会干净很多。