移动版页面用 rel=alternate 指向桌面版,桌面版的 canonical 又指回移动版,本意是配对。上线后两边的收录同时下降,网址检查里规范网址一栏在两者之间来回变化,排名掉出前两页。

把日志和配置对完,能解释这个现象的基本就这几处。两个页面互相声明为对方的规范版本 蜘蛛无法确定主版本;移动版的 canonical 写成了桌面版地址 与 alternate 的方向相反;页面内容差异超过一半 配对关系被判不成立;两边的 hreflang 与 canonical 交叉指向 信号互相矛盾。

先分别取两种页面的三组标签

for u in /p/123 /m/123; do curl -s https://www.example.com$u | grep -Eo '<link rel="(canonical|alternate)"[^>]*>'; done

移动版 canonical 指向自己 桌面版用 alternate 指向移动版

<link rel="canonical" href="https://m.example.com/p/123">

接着确认两版正文主体一致

curl -s https://www.example.com/m/123 | wc -c

末了用网址检查确认规范网址稳定

curl -s -o /dev/null -w '%{http_code}\n' https://www.example.com/p/123

别只看报错消失,验证要多做一步。理清方向后规范网址固定下来,两周内移动版重新获得独立收录,桌面版的排名也回到原来的位置。

这里还有个坑。alternate 表示另一个版本,canonical 表示唯一主版本,两条标签方向相反时蜘蛛只会挑一个,另一个等于被放弃。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189