页面里的 canonical 写成 /a/ 这种相对路径,站点又有子目录和参数版本,GSC 报告的规范网址和预期完全不同。

排查方向其实有限,先把可能性排一排。相对路径按当前 URL 解析,带参数时结果会变。少数情况下是模板里直接输出了文章路径而不是完整地址。

不容易想到的是,同一页面有多种访问方式,解析结果不唯一。

第一件事是查看页面实际输出的 canonical

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

接着改成完整绝对地址

echo '<link rel="canonical" href="' . get_permalink() . '">';

等前面都确认过,再用不同入口访问验证是否一致

curl -s 'https://www.example.com/a/?utm=x' | grep -i canonical

这台环境是别人交接的,不少默认值被动过,只能一项项核。

别只看报错消失,验证要多做一步。无论从哪个入口访问,canonical 都指向同一个绝对地址,报告里的规范网址稳定。

容易忽略的是,规范标签建议一律用绝对地址,相对路径在带参数、子目录、多域名场景下解析结果很难预测。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189