记录一下那天晚上的排查过程。旧域名换了三次,部分外链要经过五跳 301 才能到新页面,蜘蛛在第三跳停止跟随,权重基本没传过来。

刚开始盯着「301 链中夹着 302,蜘蛛不再继续」,折腾了半个多小时,排掉了。

这类报错背后常见的原因有几处,逐个排除就行。每次换域名都只加一跳,没有合并旧规则。也可能是中间某一跳指向临时地址,链条断开。

另外,跳转目标末尾带参数,和最终地址不一致。

数一下跳转次数

curl -sIL http://old1.example.com/post/1024 | grep -c 'HTTP/'

接着把多跳合并成一跳

rewrite ^/post/(\d+)$ https://www.example.com/article/$1 permanent;

然后确认中间没有 302

curl -sI http://old2.example.com/post/1024

复验最终落地页

curl -sIL http://old1.example.com/post/1024 | grep -E 'HTTP/|location'

同一份数据我导出了两份,一份留底,一份拿来试。

怎么算真的好了,看的是同一批现象。同一批外链的跳转从五跳降到一跳,落地页抓取量一个月内上升。

这里还有个坑。301 链每多一跳就多一次损耗,换域名时应该把历史规则统一收敛到最终地址。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189