做网站迁移、改版或调整栏目时,重定向是常用手段。但很多人只关注“有没有跳转”,忽略了“跳了几次”。对用户来说,多一次跳转就多一次等待;对搜索引擎来说,多一层跳转就多一次请求。如果链条太长,抓取资源会被消耗在中间地址上,落地页反而可能被延后处理。重定向链自查的目标不是把所有跳转都删掉,而是让必要的跳转尽量短、类型正确、终点明确。
先分清:单次跳转与重定向链
单次跳转是 A 直接到 B,用户和爬虫一次请求就能到终点。重定向链是 A 到 B,B 再到 C,C 才到最终页面。常见的情况是旧域名跳新域名、HTTP 跳 HTTPS、带 www 跳不带 www、旧栏目跳新栏目,这些规则如果叠加,就会产生两跳甚至三跳。比如一个 HTTP 的旧地址先跳到 HTTPS 旧地址,再跳到新域名,最后才到目标页。
重定向链通常从哪里来
- 多次改版或换域名,历史规则一层层保留,没有合并。
- 服务器、CDN、应用层各自配置了跳转,互不知情。
- URL 结尾斜杠、大小写、参数清理分别触发跳转。
- 栏目调整后只改了入口链接,旧地址仍指向中间页面。
- 使用了临时跳转做长期迁移,状态码与意图不一致。
自查步骤:从入口到终点走一遍
- 整理重点入口:首页、栏目页、高流量内容页、旧域名与旧目录。
- 用抓取工具或命令行批量请求,记录状态码、Location 头和跳转次数。curl 加 -I 或 -L 可以观察完整链条。
- 标记超过两跳的地址,优先处理三跳及以上。不是所有两跳都必须改,但三跳以上通常有合并空间。
- 核对跳转类型:永久迁移用 301 或 308,临时调整用 302 或 307。长期混用会让判断变得模糊。
- 检查是否存在循环:A 跳 B,B 又跳回 A,或者同一组地址反复跳转。循环会直接导致访问失败。
- 检查终点页是否正常返回 200,内容是否与旧地址主题相关。跳到 404 或无关页面,等于把旧地址的价值截断。
重点看 HTTPS、尾斜杠与大小写叠加
这三类规则最容易悄悄叠加。一个地址可能先因大小写被跳一次,再因结尾斜杠跳一次,最后因 HTTP 到 HTTPS 再跳一次。自查时可以把这些规则合并到同一次跳转里,让服务器在一次响应中直接给出最终 HTTPS 规范地址,而不是让浏览器和爬虫逐层试探。
检查临时跳转是否长期驻留
302 适合短期活动、A/B 测试或临时维护。如果半年后还在用 302 做域名迁移,建议改成 301。状态码不会直接决定排名,但它影响地址归并和后续维护判断,长期看容易造成混乱。
处理规则:能合并就合并,能直达就直达
- 把多条旧规则合并成一条,直接指向最终地址。
- 应用层能处理的跳转,尽量在服务器或 CDN 层一次完成,减少往返。
- 如果旧地址仍有搜索流量或外链,保留跳转;如果没有任何价值,可评估直接返回 410 或 404。
- 不要为了“好看”把跳转链保留在中间页,中间页没有实际内容时更应去掉。
- 跳转目标尽量使用绝对地址,并保持协议、域名、路径规范一致。
一个实用判断:如果一条重定向链需要两次以上才能到终点,就把它列入待处理清单;如果中间地址没有任何独立价值,就合并成一次直达。
上线后的验证与记录
改完规则后,别只看一条地址。抽样检查旧域名首页、旧栏目、带参数地址、大小写变体和移动端入口。观察服务器访问日志中 301/302 的命中情况,确认没有新的循环或断链。把跳转规则、修改日期和负责人记在维护文档里,下次改版时先看这份记录,避免又叠一层。
重定向链自查不需要高频做,但在换域名、改 URL 结构、调整 HTTPS 或迁移栏目后应该做一次。链条短一点,用户少等一点,抓取也少绕一点。