站点改版、栏目合并、域名切换,几乎都离不开 301 跳转。但跳转不是配完就完事:A 跳到 B、B 又跳到 C,用户和蜘蛛每访问一次都要多等几个来回。这类链条在新老结构交替期特别容易出现,短期看不出问题,时间一长就会拖慢抓取效率,也让 URL 发现变得混乱。
跳转链是怎么形成的
大多数跳转链不是一次设计出来的,而是多次改动叠加的结果。常见的来源包括:
- 改版时旧地址跳到新栏目,后来又调整了一次栏目结构,新地址又被重定向到更细的目录;
- 为修死链临时配了一条跳转,指向另一个同样失效的地址;
- HTTP 到 HTTPS、带 www 到不带 www、末尾斜杠三种跳转同时生效,一次访问连跳三次;
- 不同人维护不同配置(服务器、CDN、CMS 插件),彼此不知道对方也写了跳转。
这些配置单看都合理,合在一起就成了链条。链条越长,中间任意一环出错,用户看到的就是错误页。
自查:从日志和工具两头看
- 先导出站点日志,筛出返回 301、302 的请求,按被访问次数排序,重点看那些反复出现的地址。
- 对高频跳转地址逐个跟一遍,记录从入口到最终页面的跳数。超过一跳的,都值得处理。
- 检查跳转目标是否都是有效页面,避免跳到 404 或另一条跳转。
- 确认协议、域名、末尾斜杠三类规范化跳转是否合并成一步完成。
- 改版前的旧地址清单,和当前跳转配置做一次对照,删掉已经没必要的规则。
工具上,用命令行带 -L 参数跟一次跳转链,或者直接用浏览器开发者工具看 Network 里的重定向次数,都比凭印象判断可靠。
配置上的几条原则
- 一跳到位:旧地址直接指向最终地址,不要指向中间态。
- 用 301 而不是 302:永久性变更才配 301,临时活动页、A/B 测试用 302,别混用。
- 不要一律跳首页:找不到对应页面时,跳首页会把无关的抓取都引到首页,不如给一个真正的 404。
- 保持一对一:多个旧地址指向同一个新地址没问题,但一个旧地址不要指向多个目标。
- 记录在案:谁在什么时候加过哪条跳转,最好有份表,避免下一个人重复配置。
跳转链对 URL 发现的影响
蜘蛛发现新 URL 主要靠站内链接和内链结构。如果内链大量走跳转,实际到达的地址就会被延后识别,甚至有一部分长时间进不了抓取队列。对于依赖蜘蛛池或主动提交做 URL 发现的站点,跳转链相当于在入口处多加了一道收窄,效率自然打折扣。
另一个容易忽略的点是权重传递。虽然跳转本身可以传递信号,但每一跳都会衰减,也会消耗抓取资源。把链条压到一跳,等于把这部分损耗直接省下来。
改完之后要复查
调整跳转配置后,至少在一到两周内复查一次日志:看旧地址的 301 请求量是否在下降,最终页面的抓取是否在上升,有没有出现新的 404。改版期本身就不稳定,配置改完不看结果,等于没改。
跳转的作用是收敛地址,不是制造新的中转站。能一步到位,就别让蜘蛛多绕一圈。