问答类内容必须用 https://schema.org/question,不能用 article 或 webpage;需用 itemscope 声明类型,name 为必填项,acceptedanswer 或 suggestedanswer 至少填一个,text 需为纯文本或简单 html。

itemtype 应该用哪个 Schema.org 类型
问答类内容必须用 https://schema.org/Question,不能用 Article 或 WebPage 代替。搜索引擎(尤其是 Google)只认这个类型来触发富媒体摘要中的“问答”展示。如果混用 FAQPage,要注意它只是容器,内部每个问题仍需独立用 Question 标记。
如何嵌套 itemtype 和 itemprop 实现结构化
一个常见错误是把 itemprop 直接挂在 <div> 上却不声明 <code>itemscope,导致解析失败。正确做法是:外层容器加 itemscope itemtype="https://schema.org/Question",再用 itemprop 标注子属性:
<div itemscope itemtype="https://schema.org/Question">
<h3 itemprop="name">如何重置 Git 本地分支到远程最新状态?</h3>
<div itemprop="acceptedAnswer" itemscope itemtype="https://schema.org/Answer">
<div itemprop="text">运行 <code>git reset --hard origin/main</code> 即可…</div>
</div>
</div>
-
name是必填项,对应问题标题;acceptedAnswer或suggestedAnswer至少填一个 -
text必须是纯文本或 HTML 片段(不含 script/style),不能是空标签或仅换行符 - 避免在
itemprop="text"内部再嵌套其他itemscope,容易被解析器忽略
Google 搜索结果中不显示问答卡片的常见原因
即使 HTML 标记语法正确,也可能因以下原因被跳过:
- 页面未通过 Google Search Console 的
Rich Results Test验证(注意:测试工具对Question支持较晚,需用新版测试页) - 问题数量少于 3 个 — Google 倾向聚合多个
Question在同一页面才展示问答轮播 -
acceptedAnswer中的text长度超过 500 字符,或含大量代码块、表格等复杂 HTML - 页面被识别为低质量来源(如大量重复问题、自动生成内容),即使标记正确也不会启用富媒体
要不要同时加 JSON-LD?
可以加,但不是替代 HTML 微数据。JSON-LD 更稳定、易维护,而 HTML itemtype 是冗余保障 —— 某些爬虫(如 Bing)仍更依赖 HTML 层级标记。两者共存时,务必保证关键字段(如 name、text)内容一致,否则可能被判定为标记冲突而降权。
真正容易被忽略的是时间字段:dateCreated 和 dateModified 虽非必填,但加上后能显著提升问答卡片的时效性权重,尤其对技术类问题影响明显。











