站点把「专题」层目录整体下线,面包屑模板还输出 /topic/nginx/ 这一级,点进去 404,GSC 抓取异常里这条地址一周报了 400 多次。

一开始怀疑是「分类页返回 404 但面包屑仍输出链接,形成无效内链」,查了一圈,方向不对。

排查方向其实有限,先把可能性排一排。面包屑按分类树拼地址,分类删除后没有同步。也可能是模板里写死了层级顺序,不读实际分类关系。

不容易想到的是,旧分类没有做 301,直接删表。

上来先抓一个页面看面包屑地址

curl -s https://www.example.com/nginx-502/ | grep -o 'href="/topic/[^"]*"'

然后核对分类是否还存在

SELECT term_id,slug FROM wp_terms WHERE slug='topic';

给已删分类补跳转

rewrite ^/topic/(.*)$ /category/$1 permanent;

末了改面包屑只输出存在的层级

add_filter('breadcrumb_items', function($i){ return array_filter($i, function($x){ return get_term_by('slug',$x['slug'],'category'); }); });

别只看报错消失,验证要多做一步。面包屑里不再出现 404 地址,GSC 中该路径的 404 数一周内归零,面包屑结构化数据校验通过。

面包屑是用户可见的路径也是结构化数据的来源,删分类时必须一起处理,否则错误同时出现在两处。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189