面包屑 JSON-LD 里每一级只写了 name,没有 item 字段,测试工具提示 item 缺失,整段 BreadcrumbList 被判无效,搜索结果里也没有路径展示。

一开始怀疑是「item 用了相对路径,解析器无法确定完整地址」,查了一圈,方向不对。

排查方向其实有限,先把可能性排一排。BreadcrumbList 的 item 是必填,缺了就等于没给层级地址。另一种情况是最后一级可以不写 item,但前面几级必须有。

还有一种情况,position 从 0 开始,与要求的 1 起始不一致。

先抓页面核对 BreadcrumbList 结构

curl -s https://www.example.com/post-1024/ | findstr /i itemListElement

接着确认每一级是否带 item

curl -s https://www.example.com/post-1024/ | findstr /c:"\"item\""

补齐前几级的绝对地址

echo home_url('/category/seo/');

复验 position 是否从 1 开始

curl -s https://www.example.com/post-1024/ | findstr /c:"\"position\""

隔了一天再看,现象没变,说明不是偶发。

那几天正好在做别的变更,先把时间线对齐才敢动手。

恢复的判定其实很直接。补齐 item 并把 position 改成从 1 开始后,测试工具通过,搜索结果里出现层级路径。

面包屑最后一级是当前页,可以不写 item,但前面的层级少了 item 就整段作废。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189