报错是这么冒出来的。面包屑第二层指向已下线的栏目地址,返回 404,测试工具提示该项无法访问,整条路径在结果里不显示。

真正麻烦的地方在于,几个原因的现象几乎一样。栏目改名后旧地址直接删除,没有做跳转。还有一种是面包屑按固定规则拼地址,没取真实链接。

另外,页面缓存里还留着旧路径。

动手时先逐个检查层级地址状态码

curl -s -o /dev/null -w '%{http_code}' https://www.example.com/category/old/

接着改用真实分类链接输出

echo get_category_link($cat_id);

给旧栏目补跳转

curl -sI https://www.example.com/category/old/ | head -2

剩下的就是重新抓取该页

curl -s https://www.example.com/post/ | grep -c 'BreadcrumbList'

我习惯把每一步的执行时间和结果记在一边,后面复盘省事。

改之前我把相关日志按时间截了一段存着,事后对时间线用得上。

怎么算真的好了,看的是同一批现象。每一层都返回 200,测试工具提示消失,搜索结果里的路径层级恢复显示。

容易忽略的是,面包屑的地址必须可访问,最后一项只写名称是唯一例外。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189