事情本身不复杂,线索都在日志里。页面构建器把 JSON-LD 插到了 body 中间,工具能读到数据,但不确定是否会被正常处理。

真正麻烦的地方在于,几个原因的现象几乎一样。规范建议放在 head 或 body 顶部。还有一种是插入位置在大量内容之后,渲染时可能被截断。

还有一种情况,被包在异步加载的容器里,初始 HTML 里没有。

第一件事是确认初始 HTML 里是否包含标记

curl -s https://www.example.com/a/ | grep -c 'application/ld+json'

再往下把输出挂到 head 靠前的位置

add_action('wp_head', 'print_schema', 1);

末了确认没有被 JS 延迟插入

curl -s https://www.example.com/a/ | grep -n 'ld+json'

同一份数据我导出了两份,一份留底,一份拿来试。

恢复的判定其实很直接。标记出现在初始 HTML 中,工具和蜘蛛都能直接读到,不再依赖渲染。

位置本身不严格,关键是必须在初始 HTML 里,靠 JS 后插入的标记在渲染队列里可能被漏掉,抓取工具看到的也是空的,先确认源码里有没有。用了骨架屏的页面尤其容易中招。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189