这类问题我又碰上了一次。开发把 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 网址检查显示已识别规范网址。
提醒一点。注释和删除在蜘蛛眼里是一回事,改模板时别用注释当开关。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
