这类问题我又碰上了一次。面包屑最后一级写成了 a 标签,href 和当前页地址一模一样,爬虫工具报出上万条自引用链接,页面权重在圈里打转。
第一反应是「面包屑组件被复用在列表页和详情页,判断条件写死」,验证下来不成立。
真正麻烦的地方在于,几个原因的现象几乎一样。模板统一给每一级都套了 a 标签,没有判断当前页;当前页地址带参数,自链地址与 canonical 不一致;结构化数据里最后一级也带了 item,和页面自链互相印证。
先抽查末级是不是 a 标签
curl -s https://www.example.com/post-1/ | grep -o '<a[^>]*>[^<]*</a>' | tail -3
随后统计自引用链接数量
curl -s https://www.example.com/sitemap.xml | grep -c '<loc>'
末级改成 span 并去掉 href
add_filter('wp_nav_menu_args', 'breadcrumb_last_span');
同步修改 Breadcrumb 结构化数据
add_filter('rank_math/json_ld', 'fix_breadcrumb_last');
改完先别撤,确认这几项。爬虫报告里的自引用条目降到零,面包屑结构化数据校验通过,末级页面不再出现在链接图里。
补一句。自引用链接不会被罚,但它消耗抓取也稀释链接图,末级用纯文本是通行做法。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
