事情本身不复杂,线索都在日志里。面包屑结构化数据的 item 写成了 /category/seo/ 这种相对路径,页面显示正常,测试工具也不报错,搜索结果里却一直只有纯文字链接,路径不展示。

第一反应是「测试工具只校验结构,不校验 URL 能否解析」,验证下来不成立。

原因不止一个,得分开看。结构化数据要求 item 是绝对 URL,相对路径被判无效。少数情况下是模板直接复用了页面内链的 href。

不容易想到的是,站点有多个域名,相对路径无法确定归属。

先看输出的 item 值

curl -s https://www.example.com/post/1 | grep -o '"item":"[^"]*"'

然后改成绝对地址输出

echo json_encode(['@type'=>'ListItem','position'=>1,'item'=>'https://www.example.com/category/seo/'])

接着统计有多少条还是相对路径

grep -c '"item":"/' breadcrumb.log

等前面都确认过,再重

新

改完先别撤,确认这几项。全部换成绝对地址后测试无报错,搜索结果里的面包屑路径两周后开始展示,层级和页面一致。

容易忽略的是,结构化数据里的 URL 一律用绝对地址,相对路径在 JSON-LD 里没有基准可以解析。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189