搜索抓取

重定向链与抓取损耗:跳转层数、中间地址与落点核对

站内一次跳转,对用户只是地址切换,对蜘蛛却意味着多一次请求。本文从日志特征入手,梳理协议升级、域名统一、短链等常见重定向来源,给出核对跳转层数与最终落点的顺序,帮助站点减少无效抓取。

搜索抓取

重定向链与抓取损耗:跳转层数、中间地址与落点核对

站内出现一次跳转,用户可能只是多等几百毫秒,对蜘蛛来说却是一次额外的请求。如果同一条地址要跳三四次才落到正文,抓取预算和服务器连接资源都会被摊薄。这一篇只谈重定向链本身:它怎么出现在日志里,常见的来源有哪些,以及核对落点时该按什么顺序检查。

蜘蛛眼里的一次跳转算一次抓取

当蜘蛛请求 A 地址拿到 301 或 302,它通常需要再发起一次请求去拿最终地址。跳转层数越多,拿到正文的时间越晚,中间还会占用连接和队列位置。对于抓取频率本身不高的站点,几层跳转叠加上去,容易让重要页面在队列里多等一轮。

需要注意,301 一般会被缓存并长期生效,302 常被当作临时跳转反复确认。日志里如果看到同一批地址反复出现 302,值得回头检查服务端配置是否写成了临时跳转。

日志里值得留意的几个特征

  • 同一 URL 在短时间内连续出现两条记录,状态码分别为 301、302 和 200,说明是一次跳转后的落点抓取。
  • 中间地址本身没有内链、也不在 Sitemap 里,却持续被访问,通常是外链或旧地址残留。
  • 跳转链末端返回 404 或 5xx,这种情况会浪费一次完整的抓取路径。
  • 不同 UA 拿到的跳转结果不一致,例如移动端与桌面端落到不同地址。

常见重定向来源

协议与域名统一

HTTP 到 HTTPS 的升级、带 www 与不带 www 的切换,是最常见的两类。如果内链里仍混着 HTTP 地址,蜘蛛每次进站都要多走一跳。建议把内链、Sitemap、canonical 三处统一到同一个版本。

末尾斜杠与大小写

目录页带不带末尾斜杠、路径大小写不一致,很多服务器会自动跳转。单看一次跳转影响有限,但当这些变体分布在大量内链里,累积起来的额外请求并不小。

短链与活动地址

营销短链、活动临时地址通常用 302,跳转目标还可能随活动结束而更换。蜘蛛抓到的落点会随配置变化,核对时应以最终稳定地址为准。

移动端与多语言跳转

按 UA 或按 IP 跳转到 m 站、语言版本,容易出现桌面蜘蛛与移动蜘蛛拿到不同 HTML 的情况。如果跳转是 JS 触发的,还要确认渲染后能否拿到目标链接。

核对顺序建议

  1. 先列出被大量内链引用的中间地址,判断是不是旧域名或旧路径。
  2. 检查 Sitemap 提交的是不是最终地址,确认没有把跳转地址写进去。
  3. 抽查几组跳转链,记录层数与落点状态码,确认末端返回 200 且内容是目标页面。
  4. 核对 canonical 与跳转目标是否一致,避免出现 A 跳 B、B 又声明 A 为规范地址的情况。
  5. 跳转链尽量不超过一跳,多余的中转在内链层面替换掉。

什么时候不必强求全部收敛

老域名、历史外链带来的跳转,短期无法清理干净,保留一跳作为兼容是合理的。重点是把站内可控的部分——内链、Sitemap、导航——稳定指到最终地址,让新产生的抓取从入口就落在目标页上。

跳转本身不是问题,问题是同一条路径被反复走。把站内入口收干净,通常比纠结外链上残留的旧地址更有效。