搜索抓取

重定向链与抓取路径:多次跳转如何消耗抓取资源并改变落地 URL

重定向本身不是错误,但跳转链过长会持续消耗抓取资源,并让落地页只能被间接发现。本文梳理长链路的常见来源、跳转对 URL 发现路径的影响,以及用 curl、抓取日志和 Sitemap 核对并收敛跳转的具体步骤。

搜索抓取

重定向链与抓取路径:多次跳转如何消耗抓取资源并改变落地 URL

重定向是站点改版、换域名、调整目录时最常见的处理方式,本身并不算错误。但当一次跳转变成三跳、四跳,甚至形成循环时,蜘蛛每次都要按顺序请求链路上的每一个地址,抓取资源被分摊到多个不会产生内容的 URL 上,真正需要被抓取的页面反而被推后。

一次跳转里蜘蛛到底做了什么

蜘蛛请求 A 地址,收到 301 或 302 响应,读取 Location 头,再请求 B 地址。如果 B 又返回跳转,它会继续往下走。整个过程有几个结果:

  • 抓取预算按请求次数消耗,链路越长,消耗越多;
  • 跳转目标会被记录为发现路径的一部分,可能影响后续的归集判断;
  • 中间地址如果长期返回跳转,蜘蛛会持续回访,形成无效访问;
  • 链路中出现 404、5xx 或超时,整条路径的价值都会被削弱。

对多数搜索引擎来说,单条链路跳转次数越多,越容易在中途停止跟进。停止之后,落地页面就只能依赖其他入口被重新发现。

长链路通常是怎么堆出来的

协议与主机名的层层叠加

比如 http 跳 https、裸域跳 www、www 跳 m 或某个中间域名,一层层叠加后,一个入口地址可能要经过四次跳转才能到达真实页面。这类问题在上线 HTTPS 或切换主域时最容易出现,往往只配置了单段跳转规则,没有做收敛。

改版与目录迁移的遗留规则

旧目录跳新目录、旧参数地址跳静态地址、栏目页跳栏目默认页,这些规则如果分批上线且没有合并,就会把原本可以一步到位的跳转串成链条。

跳转对 URL 发现路径的影响

内链、Sitemap、外部链接都可能指向跳转地址。当这些入口长期指向中间地址时,蜘蛛每次都要先走一遍链路,再决定是否抓取落地页。更常见的情况是:

  • Sitemap 里提交的是旧地址,蜘蛛每次抓取都先遇到 301;
  • 内链仍指向带参数或旧目录的地址,落地页只被间接发现;
  • 跳转目标本身又有 canonical 指向第三个地址,抓取归集变得混乱。
跳转是给浏览器和蜘蛛用的过渡手段,不适合作为长期入口。凡是被内链和 Sitemap 反复引用的地址,最好直接指向最终落地页。

核对与收敛清单

  1. curl -IL 或类似方式,对核心入口逐个查看跳转序列,记录每一跳的状态码和目标地址;
  2. 从抓取日志中筛选出返回 3xx 的 URL,统计出现频率,高频项优先处理;
  3. 检查 Sitemap 中是否包含跳转地址,如果有,替换为最终落地页;
  4. 核对内链、导航、面包屑中的地址,确保指向最终 URL,而不是中间地址;
  5. 排查跳转循环,尤其是带 www 与不带 www 之间互相跳转的配置错误;
  6. 301 与 302 按语义使用:永久迁移用 301,临时活动页用 302,不要把临时跳转长期挂在稳定入口上;
  7. 确认跳转目标页能正常返回 200,并且与 canonical 标签指向一致。

落地时的几个注意点

收敛跳转不是一次性的工作,改版、换域名、调整栏目都可能重新引入链路。比较稳妥的做法是:把跳转规则集中维护,避免分散在多个配置里;上线后隔一段时间复查一次核心入口的跳转序列;新增内链时直接使用最终地址。

另外,跳转数量减少并不等于抓取一定变好。服务器响应时间、页面体积、内链结构同样影响抓取节奏。跳转收敛更像是把原本浪费在中间环节的请求收回来,让这些请求落到真正有内容的页面上。