站点在改版、换域名、调整栏目路径之后,常常会留下一些重定向。单条重定向本身不是问题,问题是它们容易叠加成链:A 跳到 B,B 又跳到 C,用户和搜索蜘蛛都要跟着走完。跳数一多,响应时间变长,抓取预算被消耗,日志里也会多出一批看起来像“正常访问”的中间请求。
重定向链指的是从起始 URL 到最终落地页之间经过两次或更多跳转的情况。短链看似无害,但在站点规模变大后,影响会逐渐显现。
重定向链是怎么长出来的
常见来源并不复杂,多数是几次调整叠加的结果:
- HTTP 升级到 HTTPS 时,旧地址先跳 HTTPS,再跳新域名;
- 换域名后,旧域名跳新域名,新域名又跳 www 或非 www;
- 栏目合并,旧栏目页跳新栏目页,新栏目页又跳向更细的分类页;
- URL 命名规范调整,大小写、结尾斜杠、参数顺序各产生一次跳转;
- 服务器、CDN、应用层各自配置了跳转规则,规则叠加后形成多跳。
这些规则单独看都有理由,放在一起就可能让一个旧链接绕三四个弯才到终点。
自查:先看单条 URL 的完整跳转路径
排查重定向链不需要复杂工具,关键是完整记录每一跳,而不是只看最终能否打开。
- 选样本:首页、主要栏目页、详情页、已知旧 URL、带参数 URL 各取几个。
- 用 curl -IL 或浏览器开发者工具的网络面板,查看每次响应的状态码和 Location。
- 把跳转路径按顺序记下来,标出总跳数。超过一跳的地址单独列出。
- 确认最终落地页返回 200,并且内容与用户预期一致。
- 把这份清单和 sitemap、站内链接、外部链接中的旧地址做比对。
如果站点使用 CDN 或反向代理,最好绕过缓存再测一次,避免只看缓存层的跳转结果。
常见问题与处理
链式跳转:A → B → C
最直接的处理方式是让 A 一次性指向 C。B 可以保留,但不要让 A 继续经过 B。改完后复测,确认 A 只跳一次。
循环跳转:A → B → A
循环会让搜索蜘蛛在几个地址之间反复请求,最终可能放弃。检查服务器规则、CDN 规则和应用层跳转,找出互相指向的两条配置,保留一条即可。
最终跳转到 404 或错误页
旧链接跳到已经不存在的目标,等于把用户和蜘蛛送进死胡同。该恢复页面就恢复,该更新目标就更新目标,确实没有对应内容的,考虑 410 或合适的替代页面。
全部统一跳首页
把大量旧 URL 集中跳首页,省事但不够准确。用户找不到原内容,蜘蛛也难以判断新旧页面的关系。能对应到相近栏目或专题页的,尽量对应过去。
把跳转层级收敛下来
- 建立重定向清单,记录源地址、目标地址、状态码和生效时间,改版后定期复核。
- 站内链接直接指向最终地址,不要为了“兼容旧地址”让内链也走跳转。
- sitemap 只提交最终可访问地址,不要把跳转地址一起放进去。
- 检查服务器、CDN 和应用层的跳转规则,按优先级整理,避免多层规则重复处理同一批 URL。
- 长期使用的跳转优先用 301,临时活动或短期调整再用 302,并设置复核时间。
- 外链不可控,但可以通过 301 把常见旧地址一次性指到最终目标,减少中间跳。
日志里怎么看重定向
搜索蜘蛛日志中,301 和 302 同样会占用请求。如果某个旧地址每天被请求很多次,通常说明站内还有链接或 sitemap 没更新。把高频跳转地址按请求量排序,优先修正内链和导航,往往比继续加跳转规则更有效。
重定向不是越少越好,而是每一跳都要有明确目的。能一次到位,就不要分成两步。
小结
重定向链属于隐形成本:用户多等一点,抓取预算多花一点,日志多一批中间记录。把常规跳转控制在 1 跳以内,特殊情况不超过 2 跳,改版后做一次完整巡检,基本就能避免它变成长期问题。