先把当时的情况摆出来。商品页的 BreadcrumbList 一共四层,第三层的分类地址在改版时被删掉了,页面上看着是纯文字没法点击,JSON-LD 里却还带着 item 字段指向那个 404 地址。富媒体测试工具报 item 无法访问,搜索结果里的路径展示整组消失。

排查方向其实有限,先把可能性排一排。分类下线后只改了前端展示 结构化数据仍按旧目录渲染。少数情况下是面包屑数据来自缓存 缓存里还留着已删除分类的地址。

少数情况下是中间层的 URL 拼错一级目录 实际应该指向父分类。不容易想到的是,item 与 name 不一致 蜘蛛按地址去校验自然拿不到内容。

先看页面输出的 JSON-LD 原文

curl -s https://www.example.com/product/123 | grep -o '"itemListElement".*' | head -c 600

随后逐个校验层级地址的状态码

for u in / /digital/ /digital/phone/ /product/123; do curl -s -o /dev/null -w "$u %{http_code}\n" https://www.example.com$u; done

接着把失效层改成不带 item 的纯文本节点

"itemListElement": [{"@type": "ListItem", "position": 3, "name": "手机"}]

剩下的就是清一次对象缓存后重新抓取

wp cache flush --path=/var/www/html

怎么算真的好了,看的是同一批现象。修正后富媒体测试恢复通过,搜索结果里的面包屑路径重新出现,点击率比消失的那两周高出约一成。

这里还有个坑。面包屑的每一层都要能访问,中间一层失效和整组丢失没有区别,改目录时记得同步检查结构化数据。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189