这类问题我又碰上了一次。schema 模板里用了文章缩略图变量,草稿状态下为空,输出成 image 为 null。整段 JSON 语法合法但字段无效,富媒体报空值错误,一开始完全看不出是哪一条。

第一反应是「只在草稿和无图文章上出现,抽样正好没抽到」,验证下来不成立。

把日志和配置对完,能解释这个现象的基本就这几处。模板变量没有判空,空值被直接序列化;字段必填但数据缺失,没有兜底值;页面缓存里存的还是空值版本。

上来先抓页面看有没有空值字段

curl -s https://www.example.com/post/1 | grep -c 'null'

定位是哪段脚本输出的

curl -s https://www.example.com/post/1 | grep -o 'application/ld+json'

模板加判空,为空时整个字段不输出

if (!empty($img)) { $schema['image'] = $img; }

等前面都确认过,再清

页

改完先别撤,确认这几项。清掉空值后富媒体测试通过,报错条目第二天消失,带图文章的配图也恢复正常展示。

补一句。可选字段为空时整个不输出,比输出空值更容易通过校验。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189