网站收录

重定向链与临时跳转:收录归属被拖慢时先检查哪几层

重定向常被当成简单的跳转,但它同时影响爬虫对 URL 的抓取路径和索引归属。本文从 301 与 302/307 的差异、重定向链长度、常见错误配置和自查顺序入手,说明如何减少无效跳转、合并重复入口,并核对最终被索引的 URL。

网站收录

重定向链与临时跳转:收录归属被拖慢时先检查哪几层

重定向几乎每个站点都会用到:换域名、改版、合并栏目、统一 https 和 www,都会产生跳转。多数人只关心“跳过去能不能打开”,却忽略了一个更关键的问题:爬虫跟着跳转走到最终 URL 时,会把哪一层当作索引候选,以及中间消耗了多少抓取资源。

重定向的本质是信号传递,不是删除

当服务器对一个 URL 返回 301 或 302,爬虫通常不会把原 URL 当作最终页面,而是继续请求 Location 指向的新地址。原 URL 过去积累的外链、点击和权重信号,会按跳转类型不同程度地传递到目标 URL。这里的差异不在于“能不能跳”,而在于“传多少、传多久”。

  • 301 永久重定向:表示原地址不再使用,信号传递相对明确,适合域名迁移、URL 永久改名。
  • 302 / 307 临时重定向:表示只是暂时跳转,原 URL 仍可能被保留在索引里,信号传递不如 301 稳定。307 与 302 的主要区别在于是否允许改变请求方法,对搜索引擎索引判断的影响与 302 类似。
  • meta refresh 或 JavaScript 跳转:对爬虫来说不如服务器端 3xx 直接,容易造成抓取和索引判断上的延迟,不应作为主要迁移手段。

重定向链过长:抓取预算和信号都会被消耗

比“用错 301”更常见的是链路过长。例如一个旧页面依次经过:http 版本 → https 版本 → 带 www → 去掉 index.php → 加尾斜杠 → 最终页面。每多一跳,爬虫就要多发起一次请求,抓取预算被分散,信号也可能在传递中衰减。

实践里可以这样判断:如果一个 URL 需要超过两次跳转才能到达最终内容,就值得记录并缩短。常见来源包括:

  • 协议、域名、路径规范没有一次性跳到位,而是逐层跳转。
  • 旧栏目结构迁移后,保留了大量中间层跳转页面。
  • 参数 URL、大小写变体、尾斜杠变体各自指向不同中间地址。
  • 登录、地区或语言判断用 302 临时跳转,导致爬虫看到的是跳转而非内容。

常见错误配置与对应现象

1. 永久迁移用了 302

换域名时如果只用 302,原 URL 可能长期留在索引里,和新 URL 同时出现。用户搜索时进入旧地址,再被跳转,体验和信号都会打折扣。域名级迁移应优先使用 301,并在服务器端一次性完成。

2. 重定向到无关页面

把已删除页面统一 301 到首页,是常见但效果有限的做法。少量无关页面可以接受,大批量这样做会让首页承担过多不相关信号,也可能被判断为软 404 的变体。更合适的做法是跳到最接近的上级栏目或替代内容页。

3. 跳转链里夹着 noindex 或 robots 屏蔽

如果中间某一跳被 robots.txt 屏蔽,爬虫可能无法继续跟随,最终 URL 就难以被发现。noindex 放在重定向链中间,也会让信号传递变得混乱。迁移期间应确保整条链路可抓取,最终页面再决定索引策略。

自查与处理顺序

遇到收录归属混乱、旧 URL 反复出现或新 URL 迟迟不替换时,可以按下面顺序核对:

  1. 用服务器日志或抓取工具,确认爬虫访问的入口 URL 和最终落地 URL。
  2. 检查从入口到最终页面的每一跳状态码,记录 301、302、307 以及是否有多余中间页。
  3. 把超过两跳的链路列为优先处理项,先在服务器或 CDN 层合并为一次跳转。
  4. 核对最终 URL 的 canonical、robots meta 和站点地图,确保三者指向一致。
  5. 观察一段时间内的抓取记录,确认旧 URL 请求减少、最终 URL 被抓取和索引。

把重定向当作长期维护项

重定向不是配置一次就结束的工作。栏目调整、活动页下线、参数规则变化,都会新增跳转。建议在改版或迁移时保留一份跳转映射表,定期抽查链路长度和状态码。比起反复提交 URL,先把跳转链路理顺,往往更能帮助爬虫找到并理解正确的页面。

重定向的目标不是“能打开”,而是让爬虫用最少请求到达最终页面,并清楚知道哪一个 URL 应该被索引。