报错是这么冒出来的。主题把面包屑写成前端组件,由路由参数拼出层级,页面源码里没有对应的 a 标签,GSC 的结构化数据报告显示面包屑只有一级。

把日志和配置对完,能解释这个现象的基本就这几处。面包屑节点在客户端渲染,服务端 HTML 里不存在。还有一种是结构化数据也由 JS 注入,抓取时读不到。

另外,移动端和桌面端用了两套组件,输出还不一致。

上来先确认源码里有没有面包屑链接

curl -s https://www.example.com/p/1024 | grep -c 'breadcrumb'

接着改成服务端输出静态链接

curl -s https://www.example.com/p/1024 | grep -o '<a href="[^"]*">[^<]*</a>' | head -5

同步输出 BreadcrumbList

curl -s https://www.example.com/p/1024 | grep -c 'BreadcrumbList'

剩下的就是用富媒体测试复检层级

curl -s https://www.example.com/p/1024 | grep -o '"position":[0-9]'

怎么算真的好了,看的是同一批现象。改成服务端渲染后,源码里能看到完整的四级链接,结构化数据报告里的层级同步补齐,内链抓取深度多了一层。

容易忽略的是,面包屑既是给用户看的也是给蜘蛛走的,能服务端输出就别放在前端组件里。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189