报错是这么冒出来的。一篇文章同时挂一个分类和一个标签,两个归档页输出的文章列表几乎一样,标题只差一个词。运营两边都在更新简介,必应里两个地址都收了,同一个词下两个页面互相抢排名。

中间走过弯路,把「两个页面 canonical 各自自指 没有主次」当成主因,改完现象没变。

排查方向其实有限,先把可能性排一排。分类和标签的语义边界没定 编辑随手两边都勾。另一种情况是两套归档模板共用同一个文件 输出结构一致。

还有一种情况,内链在分类入口和标签入口都指了一遍。

上来先对比两个归档页的正文摘要

curl -s https://www.example.com/cat/nginx | md5sum

保留分类作为主归档 标签页改为聚合

update_term_meta($tag_id, 'archive_mode', 'aggregate');

标签页 canonical 指向对应分类页

add_filter('get_term_link', 'tag_canonical_to_category');

等前面都确认过,再把标签入口从主导航里撤下

UPDATE wp_postmeta SET meta_value='' WHERE meta_key='_nav_tag';

怎么算真的好了,看的是同一批现象。标签页在索引里逐步消失,分类页的排名和点击回到合并前的水平。

这里还有个坑。合并前先确认哪一侧有外链和流量,砍错方向会把已有权重一起丢掉。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189