事情本身不复杂,线索都在日志里。站内跳转都走短链服务,canonical 里直接写了 short.example.com 的地址。蜘蛛跟过去拿到 302,解析出的地址每次都带不同的追踪参数,规范页一直定不下来。

第一反应是「短链是独立域名,被判成跨域规范」,验证下来不成立。

真正麻烦的地方在于,几个原因的现象几乎一样。canonical 指向 302 地址,规范信号在跳转中被丢掉。还有一种是短链每次生成带不同 utm,解析结果不唯一。

少数情况下是页面本身没有写自引用。

先看 canonical 的实际值

curl -s https://www.example.com/post/1 | grep -i canonical

跟随短链看落点和参数

curl -sIL https://short.example.com/abc | grep -i location

然后把 canonical 改成自引用或直链

echo '<link rel="canonical" href="https://www.example.com/post/1">'

批

量

隔了一天再看,现象没变,说明不是偶发。

改完先别撤,确认这几项。改成自引用后规范页稳定在本页,短链带来的多余抓取也消失,同一篇文章不再出现两条索引记录。

canonical 只接受最终地址,任何经过跳转的写法都会让信号打折。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189