网站改版、栏目调整、域名切换的时候,重定向是常用手段。但如果只是把旧地址随手指到一个中间地址,再让它继续跳,时间一长就容易形成一串跳转。对访问者来说是多等几毫秒,对搜索引擎蜘蛛来说,则可能意味着一次抓取要消耗多次请求,甚至中途放弃。
重定向链是怎么形成的
多数重定向链不是一次写出来的,而是多次改动叠加的结果。常见的来源有:
- 栏目改名后,旧 URL 先 301 到新栏目,后来新栏目又改了一次路径,但没有回头合并旧链接。
- HTTP 跳 HTTPS、不带 www 跳带 www、带尾斜杠跳不带尾斜杠,几层规则各自独立,互不衔接。
- 服务器或 CDN 层面配了一套跳转,应用层又配了一套,请求被反复转手。
- 早年使用 302 临时跳转,后来没有改成 301,临时状态一直沿用。
先确认跳转了几次
自查不需要复杂工具,重点是抽查有代表性的 URL。
- 用命令行工具请求目标地址,观察响应头中的 location 字段,数一数连续跳了几次。请求时开启跟随跳转,最后看落到哪个地址。
- 在浏览器开发者工具的网络面板里查看请求记录,状态码为 301、302、307、308 的条目会按顺序排开。
- 从服务器访问日志里筛选状态码为 3xx 的请求,按 URL 排序,出现频次特别高的入口页往往就是链式跳转的重灾区。
- 把首页、主要栏目页、流量较高的内容页各抽几个,逐个走一遍。
判断标准可以简单一点:从旧地址到最终地址,一次跳转是正常,两次可以接受,三次以上就该处理了。
处理时的几个注意点
尽量一步到位
把中间环节去掉,让旧地址直接指向最终地址。如果旧地址数量多,可以在服务器配置或规则表里做批量替换,而不是逐个手工加跳转。
区分 301 与 302
已经不再使用的地址,用 301 表示永久转移;只是临时维护或活动页面临时改道,才用 302。长期挂着 302 的旧地址,容易让蜘蛛反复回来确认,拖慢整体节奏。
更新站内链接
重定向只能解决外部入口和旧书签的问题。站内导航、文章正文里的内链、站点地图里如果还写着旧地址,蜘蛛每次都要多跳一次。把这些链接改成最终地址,能减少无谓的跳转。
保留必要的旧地址
不必为了消灭重定向而把所有旧 URL 直接删掉。外部引用的链接、用户收藏的地址仍有价值,保留一条清晰的 301 比留下 404 更合适。
和日常巡检结合起来
重定向链不是一次性工作。栏目调整、服务器迁移、CDN 换供应商之后,都值得再抽查一遍。把“请求几个关键 URL,看看跳转次数”加入日常巡检清单,成本不高,也能避免问题积累到难以收拾。
如果同时在做站点地图维护和内链梳理,重定向检查可以一起做:站点地图里的地址、页面上的链接、服务器跳转规则,三者指向同一个最终地址,蜘蛛的抓取路径会清楚很多。