问题出现得很突然,日志倒是留得挺全。面包屑组件是新写的 position 从 0 开始 首页 0 分类 1 文章 2 BreadcrumbList 校验报 position 必须从 1 开始 整条标记被判无效 搜索结果里的路径展示消失了
刚开始盯着「首页也被算进 itemListElement 但 URL 重复」,折腾了半个多小时,排掉了。
这类报错背后常见的原因有几处,逐个排除就行。前端数组下标直接当 position 输出。少数情况下是没有按规范从 1 开始编号。
还有一种情况,部分页面面包屑层级与实际路径不一致。
取一段 BreadcrumbList 看 position
curl -s https://www.example.com/p/123 | grep -o '"position":[0-9]*'
再往下输出时整体加一
itemListElement.forEach((it, i) => it.position = i + 1);
去掉重复的首页节点
php -r 'echo count(json_decode(file_get_contents("crumbs.json")));'
等前面都确认过,再用富媒体测试工具复验
https://search.google.com/test/rich-results
这类改动我都写进变更记录,过两周再出问题时能对上号。
别只看报错消失,验证要多做一步。position 从 1 连续递增 校验通过 搜索结果里重新出现路径层级。
position 是给人看的序号不是数组下标 差一个 1 整段标记就白写了。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
