这类问题我又碰上了一次。开发把 canonical 标签注释掉做测试,上线时忘了恢复,页面里只剩一段带注释的 link,三个月后这批页面全被判成重复网页。

第一反应是「缓存保留了注释版本的 HTML」,验证下来不成立。

把日志和配置对完,能解释这个现象的基本就这几处。HTML 注释里的标签不会被解析,等于没有 canonical;模板改版时整段被注释,测试环境上看不出差异;监控只查标签字符串,没有判断是否在注释里。

上来先确认标签是否被注释

curl -s https://www.example.com/post-1/ | Select-String canonical

接着把注释恢复成正常标签

add_action('wp_head', function(){ echo '<link rel="canonical" href="'.get_permalink().'">'; });

然后用标签匹配确认已生效

curl -s https://www.example.com/post-1/ | Select-String "<link rel=\"canonical\""

等前面都确认过,再清缓存并提交抓取

curl -X PURGE https://www.example.com/post-1/

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

怎么算真的好了,看的是同一批现象。页面源码里 canonical 不再位于注释内,GSC 网址检查显示已识别规范网址。

提醒一点。注释和删除在蜘蛛眼里是一回事,改模板时别用注释当开关。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189