面包屑 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 就整段作废。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
