改版、换域名、调整栏目,几乎是每个站点都会经历的事。改动本身没问题,麻烦的是留下的“尾巴”:一条链接 301 到另一条,再 301 一次才落到真正的页面。访客多等一会儿,蜘蛛多爬几趟,抓取预算就在这些中间环节被消耗掉了。下面这份清单适合在改版之后,或者例行巡检时过一遍。
重定向链通常从哪里长出来
- 换域名时同时叠加了 http 到 https、非 www 到 www、旧域名到新域名三段跳,一次请求走三趟;
- 栏目改名时先用 302 做临时过渡,后来忘了改成 301,内链也没同步替换;
- 文章地址去掉日期段,或者多包了一层目录,旧地址保留跳转,新地址又被二次调整;
- 结尾斜杠不统一,带斜杠的跳到不带斜杠,或者反过来,来回各留一条规则;
- 外部推广物料里的旧链接没人回收,常年挂在那里当作入口。
动手自查的几步
先数单条链接跳了几次
用命令行工具请求一次,把整个过程完整打印出来,重点看状态码序列和 Location 头。如果中间出现两次以上跳转,就值得收敛。也可以批量把站点地图里的 URL 跑一遍,统计每条链接的跳转层数。
区分 301 和 302
永久迁移用 301,临时活动用 302。如果一条 302 已经挂了大半年,基本可以判断是被遗忘的临时代码,需要评估是改成 301,还是直接把引用它的链接替换掉。
把站内链接指向终点地址
导航、面包屑、正文推荐位、侧栏热门文章,凡是写死旧地址的地方,都是跳转链的来源。更省事的做法是让站内链接直接指向最终 URL,把跳转留给从外部进来的旧链接。别忘了同步更新站点地图和订阅源里的地址。
检查协议与主机名的一致性
同一个页面出现多种写法,往往是服务器配置和页面内链接各说各话。先选定一种写法作为标准,其余的用 301 收敛到它,避免出现 A 跳 B、B 又跳回 A 的循环。
留意参数和锚点
跳转默认会丢掉锚点,如果旧链接是靠锚点定位到某个小节,访客会直接落到页面顶部。带查询参数的旧链接也要确认参数是否需要保留,否则原本精准的落地页会退化成泛化页面。
处理时的几条原则
- 优先改源头。模板和内链改一处,胜过事后加十条跳转规则。
- 链路尽量压到一跳。多层跳转统一改成中间层 301 直达最终地址。
- 不要一次性全量替换,分批改、分批看日志,出问题容易回滚。
- 保留有外链和流量的旧地址,别直接让它变成 404。
- 改完做验证,随机抽样加全量扫描各来一遍,确认没有循环和断点。
验证与记录
处理完一轮之后,隔几天再看服务器日志里 301、302 的请求量,观察是否下降。跳转量往下走,说明站内链接的替换生效了。同时把规则、改动时间、负责人记进改版文档,下次有人问“这条为什么还在跳”,能直接翻到答案。
重定向链不会自己消失,它只会安静地待在那里,每次请求都多花一点时间。定期清一遍,比事后追查省力得多。
如果站点正在做目录或域名调整,建议把这份清单排进上线前的检查项,而不是等流量出现波动才回头找原因。