重定向链是慢性病。它不报错、不警告,只是每个请求多花一次往返,每个链接多掉一点权重。我们的标准是:超过两跳,当问题处理。
链是怎么一年年长出来的
我做诊断时见过最长的一条是六跳:http://example.com/product-a → https://example.com/product-a → https://www.example.com/product-a → /products/product-a → /products/product-a/ → 最后才到带版本的落地页。每一跳都对应一次基础设施变更——上 HTTPS 留一层,从裸域切到 www 留一层,改目录再留一层。没人做整体收敛,就这么挂了一年多。
六跳改直连的那次
2025 年 8 月,一个 B2B 软件站的核心产品页就是上面那条链。日志里 Googlebot 对这个页面每天请求 4 次,其中 3 次花在跳转上,真正读到内容只有 1 次。百度蜘蛛更明显,有几天直接停在第二跳就走了。
改法很简单:在 nginx 层写一条规则,任何旧形态一次 301 到最终 URL,把中间层全删掉。改完第一周,最终页被抓取频次从每天 1 次涨到 4 次,两周后回到前 5。
怎么查
- Screaming Frog 跑全站,看
Redirect Chains报表,按跳数排序。 curl -I -L手动盯一个链接,看 Location 头一路跳过几次。- 日志里按状态码 301、302 分组,看哪些路径请求量最大——请求量大的链,修复收益最高。
怎么改才不复发
重定向规则放在 nginx 或 CDN 层,不要写在应用代码里。应用层做重定向,业务一改版就丢规则,而且性能差一截。规则用正则收敛成一条主规则,再给少数特殊路径开白名单。
302 只给临时活动用,活动结束记得撤。长期挂 302 是最容易被忽略的一种,蜘蛛会一直去请求原地址。有个客户的活动页挂了 14 个月 302,活动早结束了,日志里蜘蛛还在天天抓旧地址,一个月白扔两千多次请求。
规则写法上,nginx 里优先用一条带正则的 server 级规则做兜底,再给确需保留的路径加 location 例外。CDN 层的回源规则也要同步检查,很多人只改了源站,边缘节点缓存着旧跳转,用户和蜘蛛看到的是两套结果。改完拿三种 UA 各测一次:桌面浏览器、手机浏览器、Googlebot,确认跳转次数一致。
多久复查一次
站点大改、换域名、上 CDN 之后各查一次。平时一个季度扫一遍。重定向链不会自己变好,只会越挂越多。
立场
改版时多花半天做重定向映射,比事后花三个月排查掉排名划算。我们给客户做迁移,301 映射表是必交付物,一张表列清楚旧 URL、新 URL、状态、上线日期,谁接手都能看懂。
元析智能
为软件公司做 SEO 和 GEO 优化