FAQ结构化数据生成器

把一组「问题 / 答案」粘进来,自动生成符合 schema.org 的 FAQPage JSON-LD 代码,自动转义双引号、换行与小于号,并校验 @context、@type、mainEntity、name、acceptedAnswer、text 六个必填字段,一键复制或导出。

提示:在文本框里按 Ctrl + Enter(macOS 用 Cmd + Enter)可立即重生成;单按 Enter 是换行。改动文本或勾选项会自动重跑。字段表列出六个必填字段及其状态,可复制 TSV 或导出 CSV。

使用方法

  1. 在文本框里按「问题一行、答案若干行」的格式写每一对问答;问题和答案之间不用分隔,答案可以是多行。
  2. 用单独一行的「---」把每一对问答分开;页面打开时已预置三对示例,直接点「生成 JSON-LD」即可看到效果。
  3. 需要可直接粘贴进网页的版本,勾选「输出包含 <script> 包裹」,生成结果会带上 <script type="application/ld+json"> 与 </script>。
  4. 点「生成 JSON-LD」,或在文本框按 Ctrl + Enter(Mac 上 Cmd + Enter);结果区显示格式化后的代码,深色框里即为可直接使用的 JSON-LD。
  5. 下方字段表列出六个必填字段及其状态,全部「通过」才说明结构完整;「复制字段表」复制其 TSV,「导出 CSV」存成带 BOM 的文件。
  6. 「复制代码」把结果区的内容直接复制到剪贴板,可整段粘进页面源码或 CMS 的结构化数据区块。

这个生成器能解决什么问题

搜索引擎看不懂页面上排布整齐的问答,它只能读结构化的标记。把一个普通 FAQ 区块变成机器可读的结构化数据,也就是常说的「FAQ结构化数据」,能让 Google 在搜索结果里直接展开你的问答,占据更大的展示面积。

第一类用途是富媒体结果。正确标注 FAQPage 后,Google 可能把问答以可展开的卡片形式展示在搜索结果中,提升点击率。

第二类用途是自动转义。答案里经常有双引号、换行、小于号,手写 JSON 很容易漏掉转义导致整段解析失败。本工具用标准 JSON 序列化并额外把小于号转成 \u003c,省去手工排错的麻烦。

第三类用途是必填字段校验。@context、@type、mainEntity、name、acceptedAnswer、text 六个字段缺一不可,本工具在生成时逐项确认,缺哪个直接报出来,避免上线后才发现标记无效。

除了搜索富媒体,结构化数据还能被语音助手、聚合卡片等下游系统复用:同样一段问答,机器读到你标记的 FAQPage 后,就能在回答用户时直接引用,而不必重新抓取正文去猜哪段是问题、哪段是答案。

本 FAQ结构化数据生成器不做这些事:不抓取你网页上已有的可见问答(需要你手动粘贴)、不保证 Google 一定会展示富媒体结果(只是给了资格)、也不生成 HowTo 或 QAPage 等其他 schema 类型,本页只做 FAQPage。

生成原理与字段说明

输出的核心结构是一个 JSON 对象:@context 固定为 https://schema.org,@type 固定为 FAQPage,mainEntity 是一个数组,数组里每个元素都是一条 Question,内含 name(问题)和 acceptedAnswer(答案对象),答案对象再含 @type: Answer 与 text(答案正文)。

JSON-LD 与普通 script 不同。它写在 <script type="application/ld+json"> 里,浏览器不会把它当脚本执行,只是交给搜索引擎解析;而本页面自身运行的 JavaScript 是普通的 <script>,两者职责不同,不要混淆。

字符转义规则。答案里的双引号会变成 \",换行会变成 \n,小于号会变成 \u003c——这三处是 JSON 与 HTML 双重语境下最容易出错的地方。本工具在序列化后额外把小于号替换成 \u003c,避免它和后面的内容凑出 </script> 误闭合标签。

内容必须一致。

校验之所以重要,是因为 Google 的结构化数据测试会逐项检查字段类型与必填项;漏掉 text 或把 name 写成空串,整段标记都会被判无效,页面反而拿不到富媒体资格。本工具的字段表先把这六项是否齐全过一遍,等于在提交前做一次本地预检。

Google 要求 FAQ 标记的内容与页面可见内容逐字一致,否则会被判作弊降权;且每页 FAQ 不超过 25 组(官方建议),答案不能是「点击查看」这类空话。请务必让标记里的问答就是用户真正看到的问答。

完整示例(默认输入实测)

默认文本框里写了三对问答,第一对问题是「如何提取结构化数据?」,答案是「使用 JSON-LD 格式,把 FAQPage 的 @context、@type、mainEntity 写好即可。」;第二对解释什么是 FAQPage;第三对提到 JSON-LD 要放在 <script type="application/ld+json"> 标签里——这句话含小于号与双引号,正好演示转义。

生成后,mainEntity 数组长度为 3,每个元素形如:

字段本例取值
@typeQuestion
name如何提取结构化数据?
acceptedAnswer.@typeAnswer
acceptedAnswer.text使用 JSON-LD 格式…写好即可。

第三对答案里的 <script 在输出中会变成 \u003cscript,即使原文本带有尖括号也不会破坏外层包裹标签。如果你输入了 26 对以上,结果区会提示「超过 25 对,建议拆分」,但代码仍会生成,由你自行决定。

需要留意,FAQ 标记只描述「已有问答」,并不会替你生成问答内容;本工具的输入就是你页面上要展示的问答文本,请确保两者逐字一致,否则富媒体资格会被取消。

必填字段对照表

下表是 FAQPage 必须包含的六个字段,生成时逐项校验,缺任何一项都无法通过 Google 的结构化数据测试。

字段含义取值
@context词汇表地址固定 https://schema.org
@type标记类型固定 FAQPage
mainEntity问答主体Question 对象数组
name问题标题每条问题的文本
acceptedAnswer答案对象含 @type 与 text
text答案正文每条答案的文本

结果边界与适用说明

常见问题

生成的代码要放在网页哪里?

放在 HTML 的 <script type="application/ld+json"> 标签里,可以置于 head 或 body,通常放在对应 FAQ 内容附近。勾选本工具的「输出包含 script 包裹」即可直接得到完整片段。

为什么答案里的小于号要变成 \u003c?

因为 JSON-LD 本身处在 script 标签内,若答案文字里出现 < 且后面凑成 </script>,会提前闭合标签导致解析中断。把小于号写成 \u003c 既能通过 JSON 解析,也杜绝了这种误闭合,是结构化数据里公认的安全写法。

FAQ 标记为什么要求与页面内容一致?

Google 明确规定富媒体标记的内容必须与用户看到的可见内容逐字一致,否则会被判为作弊并可能受到处理。所以本工具只负责把你粘贴的问答转成结构,问答本身请确保和页面上展示的一字不差。

每页最多能放多少对问答?

官方建议每页 FAQ 不超过 25 组。超过时本工具仍会生成代码,但会在结果区提醒你拆分,因为过多问答既不利于展示,也可能触发审核更严格的判定。

FAQPage、HowTo、QAPage 有什么区别?

FAQPage 用于「常见问题 + 固定答案」;HowTo 用于分步骤教程(含步骤顺序与材料);QAPage 用于社区问答(一个问题多个用户回答、有最佳答案)。三者结构不同,本工具只生成 FAQPage,选错类型会让标记无效。

复制出来的代码为什么有反斜杠?

那些反斜杠是 JSON 的转义字符,不是多余符号。双引号前的 \"、换行前的 \n、小于号前的 \u003c 都是合法 JSON,粘贴进页面后会被正确还原,请勿手动删除。

怎么验证生成结果有效?

把代码粘贴进 Google 的富媒体结果测试工具或结构化数据测试工具,它会逐项检查六个必填字段并给出错误位置。本工具的字段表已先做一轮本地校验,能拦住大部分明显缺失。

这个工具免费吗?数据安全吗?

免费,无需注册。所有序列化与校验都在当前浏览器本地完成,问答内容不会上传服务器,刷新后输入框内容也不会被保存。

相关工具