一句话回答
重定向链是请求的 URL 到最终目标之间连续两次或更多次 HTTP 重定向(A → B → C),会增加延迟、浪费抓取资源,还可能丢掉查询参数;指回前面 URL 的链就是重定向循环。
什么是重定向链?
重定向链(Redirect Chain)是指从请求的 URL 到最终页面之间,连续经过两次或更多次重定向:URL A 跳到 B,B 又跳到 C。重定向循环是永远到不了终点的链,因为它又指回了前面的 URL(A → B → A)。
重定向链通常是慢慢积累出来的:网站从 HTTP 迁到 HTTPS,后来加上或去掉 www,再后来调整 URL 结构,每次改动都加了一跳,而不是去更新旧规则。
重定向链长什么样
用 curl -sIL 检查一个旧的活动链接(示例输出,有删减):
HTTP/1.1 301 Moved Permanently
Location: https://example.com/spring-sale
HTTP/2 301
location: https://www.example.com/spring-sale
HTTP/2 302
location: https://www.example.com/sale/spring/
HTTP/2 200
页面加载前跳了三次:HTTP → HTTPS,不带 www → 带 www,旧路径 → 新路径(还是临时的 302)。
| 跳 | 从 | 到 | 状态码 | 耗时(示例) |
|---|---|---|---|---|
| 1 | http://example.com/spring-sale | https://example.com/spring-sale | 301 | 120 毫秒 |
| 2 | https://example.com/spring-sale | https://www.example.com/spring-sale | 301 | 95 毫秒 |
| 3 | https://www.example.com/spring-sale | https://www.example.com/sale/spring/ | 302 | 110 毫秒 |
| 最终 | https://www.example.com/sale/spring/ | — | 200 | — |
访客在真正的页面开始返回之前,等了大约 325 毫秒。在慢速移动网络上,每一跳的代价可能大得多,因为每一跳都可能要重新做 DNS 解析、建连接、TLS 握手。
重定向链的问题
- 页面变慢。 每一跳都要多一次往返,内容才开始加载,拖慢首字节时间和 LCP。
- 浪费抓取。 搜索引擎跟随的跳数有限;Google 文档说 Googlebot 最多跟随 10 次重定向,之后报错。每一跳也会消耗抓取预算。
- 信号变弱。 链太长,搜索引擎更难把信号合并到最终 URL 上,尤其是中间有临时的 302 时。
- 丢失追踪数据。 有些重定向会丢掉查询参数,UTM 参数和广告点击 ID 就没了,访问被算成直接访问;跨域跳转还可能丢掉来源(referrer)。
- 容易出故障。 每多一条规则,就多一个可能变成循环的地方。
怎么找到重定向链
- 用 SEO 抓取工具爬全站,导出重定向链,多数工具会列出每一跳和最终状态码。
- 手动检查重要 URL,用
curl -sIL <url>或能显示重定向路径的浏览器插件。 - 检查自己的链接: 导航、站点地图、canonical 和 hreflang 都应该直接指向最终 URL。
- 检查活动链接: 广告、邮件、二维码里的链接,往往是好几年前的。
- 看服务器日志里返回给爬虫的 3xx,见 SEO 日志分析。
怎么修
- 每条重定向都直接指向最终 URL。 把 A → B → C 改成 A → C,并保留 B → C 给还在链接 B 的地方。
- 把协议和域名规则合并,让
http://example.com一跳到https://www.example.com。 - 更新内链到最终 URL,站内流量就不会经过重定向。
- 长期迁移用 301 或 308,真正临时的才用 302 或 307。
- 重定向规则保留查询参数,让活动标记不丢。
- 每次改重定向规则后都测一下有没有循环。
在 TapCub 里
重定向发生在统计脚本加载之前,所以 TapCub 只记录最终页面。有两个现象说明重定向出了问题:广告平台里的点击远多于 TapCub 里的会话;或者 URL 迁移后直接访问突然上涨,通常是 UTM 参数或来源在跳转中丢了。检查重定向规则有没有透传查询参数,见UTM 参数怎么命名和直接流量。对爬虫的影响,导入服务器日志后,抓取健康报表会按搜索引擎显示 3xx、404 和 5xx。
参考资料
- Google Search Central. Redirects and Google Search.
- Google Search Central. How HTTP status codes affect Google Search: 3xx redirection.
- MDN Web Docs. Redirections in HTTP.
这个解释清楚吗?
我们会根据反馈修改和补充这篇内容。
提交没有成功,请稍后再试。
谢谢你的反馈,我们会据此改进这篇内容。你已经反馈过这篇了,谢谢。
