页面里有一段完整的 JSON-LD,字段也填得挺全,富媒体测试却说没有检测到可用的结构化数据项,报告里一条实体都列不出来,样例也拿不到。乍看像缓存或者权限的锅,追下去往往不是。
curl -s https://example.com/a/ | grep -o '@type[^,]*' # 顶层应为 Article 或 NewsArticle,别用 Blog
追下去是这么回事:外层 @type 用了 Blog、Posting 这类不在推荐列表里的值,解析器认不出这属于文章实体,字段再完整也进不了富媒体候选,只能当普通数据忽略掉。
「JSON-LD @type」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
具体做法是,先把顶层类型换成文章实体对应的 Article,不要再写 Blog 这个值;子属性按 Article 的定义逐项补齐,name 和 url 两个属性缺一不可;重新跑一次测试,确认最终识别出来的实体类型是对的。
验收就看一点,富媒体测试能列出 Article 实体,字段项全部通过,不再提示未检测到数据。
