问题出现得很突然,日志倒是留得挺全。帮助中心页面同时标了 FAQPage 和 Question 两种类型,首页那几个问答块还能过测试,内页的 FAQ 富媒体报告直接报类型冲突,搜索结果里的折叠问答全部消失。
刚开始盯着「两个实体的 @id 相同,被当成重复定义」,折腾了半个多小时,排掉了。
把日志和配置对完,能解释这个现象的基本就这几处。同一页面出现两个顶层问答实体,解析器无法合并。另一种情况是Question 是 FAQPage 的子项,被单独提到顶层输出。
还有一种情况,问答内容与页面可见内容不一致,被判无效。
先看页面里输出的类型和层级
curl -s https://www.example.com/help/1 | grep -o '"@type":"[A-Za-z]*"' | sort | uniq -c
接着把 Question 收进 FAQPage 的 mainEntity
grep -rn 'FAQPage' templates/help.html
然后确认实体 @id 唯一
curl -s https://www.example.com/help/1 | grep -o '"@id":"[^"]*"'
复查富媒体报告
curl -s 'https://search.google.com/test/rich-results?url=https://www.example.com/help/1' | grep -c 'FAQ'
怎么算真的好了,看的是同一批现象。页面只剩一个 FAQPage 顶层实体,Question 全部挂在 mainEntity 下,富媒体错误消失并恢复展示。
提醒一点。问答类标记只能有一个顶层容器,Question 单独输出会被判成孤立实体,这个错在模板复用的时候最常见。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
