记录一下那天晚上的排查过程。旧域名换了三次,部分外链要经过五跳 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 链每多一跳就多一次损耗,换域名时应该把历史规则统一收敛到最终地址。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
