改版、换域名、合并栏目,这些动作做完之后,站点里往往会留下一串接力的跳转:旧地址跳到中间地址,中间地址再跳到新地址。日常访问不一定察觉,但对蜘蛛和用户来说,每一次跳转都是一次等待。
跳转链是怎么攒出来的
很少有站点是刻意做成链条的,多数是几次改动叠加的结果:
- 换域名时,旧域名整体跳到新域名,但新域名下又有一批页面单独跳到了另一个路径。
- http 到 https、不带 www 到带 www 两条规则同时存在,先跳一次协议,再跳一次域名。
- 栏目合并后,A 跳到 B,后来 B 又并进 C,映射关系没有跟着重写。
- URL 末尾斜杠、大小写、参数顺序不同,服务器逐条做规范化跳转,一次访问连跳两三次。
为什么值得花时间理一遍
- 每次跳转都多一次请求和一次等待,蜘蛛在跳转链上耗掉的时间,会挤占抓取其他页面的额度。
- 链条太长时,部分抓取工具只跟随有限次数,可能停在中间页,最终地址反而没被看到。
- 用户端多了几百毫秒的空白,移动网络下感受更明显。
- 统计工具如果把跳转前的地址当成落地页,来源和转化数据会对不上。
自查可以怎么做
不需要全站翻一遍,先抽查入口级 URL,这类地址被访问和被链接的次数最多,影响也最大。
- 首页、主导航、面包屑、站点地图里列出的地址,逐个看跳转次数。
- 用命令行工具查看响应头,并让工具跟随跳转,观察最终落到哪个地址、中间经过几次。
- 浏览器开发者工具的 Network 面板勾选保留日志,看一次访问里出现了几个 301 或 302。
- 用爬虫工具跑一轮,把状态码为 3xx 的 URL 单独导出来,按跳转次数排序。
整理时注意几点
- 尽量让旧地址一次跳到最终地址,中间层能省则省。
- 永久性变更用 301,临时调整才考虑 302,不要把 302 长期挂着,否则地址归属会一直模糊。
- 改完跳转后,把站内链接、站点地图、外部合作链接逐步替换成最终地址,链条会自然变短。
- 协议、域名、斜杠的规范化规则只保留一条,避免多层叠加。
两个容易踩的坑
一是只改跳转不改内链,站内链接仍指向旧地址,用户每次点导航都要多等一跳;二是上线时跳转配对了,后面又删掉旧页面,跳转指向一个 404,等于用一次等待换来一个死胡同。后者在清理栏目时尤其常见,删页面前先确认有没有别的地址指过来。
跳转本身不是错误,错误是把跳转当成终点。该留下的映射写清楚,该清理的链条清掉,入口地址保持干净。
把检查放进固定动作
每次改版、换域名、合并栏目之后,列一张新旧地址映射表,上线后一周、一个月各抽查一次,重点看入口页和自然流量靠前的页面。跳转链很少会自己消失,定期看一眼,比出问题时再回头翻记录省事得多。