面包屑最后一级用 span 加 title 属性输出,页面上靠 CSS 伪元素显示栏目名,用户看着正常。结构化数据里的 name 有值,页面可见文字是空的,必应提示面包屑链不完整。

真正麻烦的地方在于,几个原因的现象几乎一样。末级文字写在 title 属性里 不是可见文本;CSS 伪元素的 content 里放栏目名 蜘蛛不解析;BreadcrumbList 的 name 与页面文字不一致;末级缺少 item 地址 链路断在最后一段。

第一件事是看面包屑输出的 HTML 结构

curl -s https://www.example.com/p/1 | grep -o '<nav class="breadcrumb".*</nav>'

然后把栏目名改成可见文本

<span aria-current="page">nginx</span>

补末级的 item 地址

{"@type":"BreadcrumbList","itemListElement":[{"position":3,"name":"nginx","item":"https://www.example.com/cat/nginx/"}]}

等前面都确认过,再用富媒体测试复验链路

curl -s 'https://validator.schema.org/#url=https://www.example.com/p/1'

我习惯把每一步的执行时间和结果记在一边,后面复盘省事。

改完先别撤,确认这几项。页面可见文字与结构化数据的 name 一致,富媒体测试不再报面包屑缺项。

补一句。伪元素和 title 属性都不算可见内容,面包屑的每一级都要有真实文字。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189