这类问题我又碰上了一次。文章页的 Article 结构化数据在测试工具里报缺少 datePublished,代码里明明写了日期字段,工具就是读取不到。

把日志和配置对完,能解释这个现象的基本就这几处。日期写成了中文格式,解析器识别不了;字段被嵌套在 author 对象里,层级放错;模板输出时被 HTML 转义,引号变成了实体。

动手时先看页面输出的原始 JSON-LD

curl -s https://www.example.com/a/ | grep -A5 'datePublished'

接着改成标准的 ISO 8601 格式

"datePublished": "2026-11-09T08:00:00+08:00"

末了用解析器验证 JSON 是否合法

curl -s https://www.example.com/a/ | python -m json.tool

这次没动代码,只在配置和运行环境上找原因。

隔了一天再看,现象没变,说明不是偶发。

那几天正好在做别的变更,先把时间线对齐才敢动手。

恢复的判定其实很直接。测试工具不再报缺少字段,富媒体结果里能看到文章日期,搜索结果中出现时间标注。

容易忽略的是,日期要写在 Article 这一层,放进 author 对象里等于没写,测试工具报的错误信息通常不够具体,得自己比对层级。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189