站点运营

站点运营:重定向链自查,别让地址一跳再跳

站点改版、换域名或调整目录之后,不少地址要经过多次跳转才能落到最终页面。单次跳转没问题,怕的是链条越接越长,蜘蛛和用户都要多走几程。本文说明重定向链的常见成因、对抓取和体验的影响,以及怎么查、怎么压到一跳,并给出日常维护的几条做法。

站点运营

站点运营:重定向链自查,别让地址一跳再跳

站点改版、换域名、调目录之后,很多地址会经过一次甚至多次跳转,才落到最终页面。单次跳转本身没有问题,怕的是链条越接越长,蜘蛛和用户都要多走几程才能到位。

重定向链是怎么长出来的

多数链条不是一次决定的结果,而是每次调整只改了自己这一层,没人回头清理上一层的规则。

  • 域名更换后,旧域名跳新域名,新域名又重新做了主域统一;
  • HTTP 到 HTTPS 迁移时,中间又叠加了 CDN 的回源跳转;
  • 栏目改名时,旧栏目先跳到过渡目录,过渡目录再跳到新栏目;
  • 批量工具生成的重定向规则没删,和新规则叠在一起;
  • 内容下架后统一指到首页,后来首页本身也换了地址。

这些操作单独看都合理,叠加在一起就变成了一条几段式的链条。

链条变长不只是多等一会

  • 每跳一次都要重新发起请求,抓取预算会消耗在中间环节上;
  • 落地时间被拉长,遇到回源慢的时候超时风险上升;
  • 链接权重和页面信号在每一跳里都会衰减,越往后越弱;
  • 日志里同一批地址会出现多条记录,排查时容易看错对象;
  • 用户在旧链接上等待更久,中途跳出的人也会更多。

怎么查一条地址跳了几次

  1. 用命令行工具带跟随参数请求一个地址,看返回的跳转序列,一眼能数出几段;
  2. 在浏览器开发者工具的 Network 面板里看文档请求,确认一条链接是否触发了多个 301 或 302;
  3. 从站内内链和 Sitemap 里各抽一批地址,直接请求,看最终落点是否就是想要的那个页面;
  4. 在蜘蛛日志里筛出 3xx 状态码,按地址分组,找出经常出现在中间环节的那些;
  5. 把现有重定向表导出,人工标出 A 到 B 到 C 这种多段结构,按优先级处理。

抽查的数量不用太多,几十条就能看出规则表整体的风格。如果抽查里多次出现三段以上,基本可以判断需要系统性清理。

处理时的几个判断

能压到一跳的尽量压

大部分链条可以压成一次直达。把旧地址直接指向最终地址,中间那一层不再接手。规则表里保留一行,比留着三行互相接力更好维护。

该保留的跳转可以保留

有些旧路径承载过外部链接,确实值得保留一次跳转。保留没问题,但让它直接落到最终页,不要再经过中转目录。

别用前端跳转代替服务端

meta refresh 和 JS 跳转,对抓取和用户来说都不如服务端 3xx 干净。能配服务端规则就别省这一步,尤其是批量地址。

顺手清理的几件事

  • Sitemap 和内链只写最终地址,不要把中间地址提交上去;
  • canonical 指向最终地址,避免和跳转结果打架;
  • 长期用 302 代替 301 的地方,确认是不是真的只是临时;
  • 重定向表定期复核,删除已经不再使用的规则;
  • 换域名、改目录之后留一条变更记录,方便后来人看懂。
一次干净的跳转到最终地址,比一串说不清来历的中转更容易维护,也更容易让蜘蛛和用户一次到位。

重定向是站点运营里的常备工具,不是一次性动作。每次改动之后顺手看一眼链条,比攒到几十条再集中排查要轻松得多。