🧩 JSON-LD 生成器
实时生成 9 种 schema.org 结构化数据 (JSON-LD):Organization / WebSite / Article / Product / FAQPage / HowTo / Event / LocalBusiness / Recipe。表单输入,复制或下载 Google Rich Results 可用代码。
🔒 关于隐私
- ・所有输入仅在浏览器中处理
- ・无服务器传输、无存储、无日志
- ・无需注册、登录或付款
📋 生成的 JSON-LD
💡 在同一页面包含多个 schema 时,使用 @graph 数组合并以避免重复。粘贴到 Rich Results Test 进行验证。
📖 常见的坑
针对 Organization / WebSite / Article / Product / FAQPage / HowTo / Event / LocalBusiness / Recipe 九种类型,从表单输入生成 schema.org 的结构化数据(JSON-LD)。处理全部在浏览器内完成。但「语法上正确的 JSON-LD」与「能出富媒体结果」是两码事——前者可以用校验工具确认,后者则没有任何方法可以保证。而且结构化数据最常见的失败不在格式,而在内容:在标记里写上页面并未呈现的东西,那不是需要修正的疏漏,而是违反指南。
| 情形 | 会发生什么 | 怎么处理 |
|---|---|---|
| 标记与可见页面的内容对不上 | 搜索引擎要求结构化数据表示的必须是页面上确实存在的内容。把页面上任何地方都没有的评分、价格、库存、评论数只写进标记里,就属于违反指南,并且可能招致人工干预(该页的结构化数据被忽略,或整站评价被下调)。它并不需要恶意就会发生——最常见的原因是模板。把 JSON-LD 直接写死在所有页面共用的模板里,本应逐页不同的值就被固定住,逐渐与正文脱节。来龙去脉几乎都是「有人手写了一页、确认能跑,就照样铺开到全站」。而且这种脱节是悄悄发生的——只更新了正文却忘了改 JSON-LD,从那天起就不一致了。 | 请让标记与正文由同一份数据生成。把模板里诸如商品价格的同一个变量也传给 JSON-LD,这样一改正文,结构化数据就会自动跟上——凡是要求「两边都手改」的流程,必然会落下一边。本站自己就在 28 篇博客上踩过同样的坑,并用同样的办法解决了。若一定要手写,原则也只有一条:页面没有展示的值,就不要写。想加评分和评论,请先把评论显示在页面上——顺序反过来,必定构成违规。核查既有页面可以用 Search Console 的「增强功能」报告——不仅要看错误,也要读警告。 |
| FAQ 与 HowTo 的富媒体结果已基本不再出现 | 2023 年的变更把 FAQ 的富媒体结果限定给政府、医疗等「权威公共站点」,并在桌面端与移动端都终止了 HowTo 的展示。也就是说,普通的企业站点或博客即便加上这两种标记,搜索结果的外观也不会改变。标记本身并未失效,也仍会被正确解析——改变的只是「会不会被展示」。这里真正的问题是预期落差:为了「多占搜索结果版面」而往页面里塞 FAQ 板块,目的达不成,还在页面上留下了与正题关系不大的问答——对读者而言,那只会妨碍他们找到答案。 | 请把添加标记的目的从「展示」转向「理解」。FAQPage 与 HowTo 依然有助于搜索引擎和语言模型把握页面结构——但既然它并不承诺排名或展示,就请按投入产出来判断。现实中还能指望富媒体结果的类型是有限的:Article、Product、Recipe、Event、LocalBusiness、Breadcrumb 大致是可行的集合。而最稳定见效的是 Breadcrumb——实现简单,而且有「搜索结果里的 URL 行被替换成面包屑」这一目了然的变化。写 FAQ 这件事本身是好的——只是请因为「用户会读它」而写,而不是为了 SERP。 |
| 校验通过,却不满足富媒体结果的要求 | schema.org 几乎不把任何属性列为必填——只要类型对得上,就是「合法的 JSON-LD」。而搜索引擎针对富媒体结果,为每种类型另有一份必填字段清单。把这两者混为一谈,就会出现「校验工具零错误,却什么都不展示」的状态。常见的缺失有:Article 的 image 与 datePublished、Product 的 offers(价格、货币、库存状态)、Event 的 location 与 startDate、LocalBusiness 的 address。另一个容易被忽略的是实体重复——在每个页面都完整写一遍 Organization,等于让同一个组织存在几十份信息,究竟哪一份为准就变得含混不清。 |
请把两个校验工具用在不同的问题上。Schema Markup Validator 检查语法与类型,富媒体结果测试检查「是否有资格出现在搜索结果里」——只有后者会告诉你缺了哪个必填字段。推荐字段也请填上——它们不是必填,缺失只会给出警告,但最终展示什么,会受推荐字段完整度的影响。消除重复请使用 @id:在站内只用一个地方(比如首页)完整写出 Organization,其他页面只用 {"@id": "https://example.com/#organization"} 引用它,这样信息的正本唯一,更新也只需改一处。 |
结构化数据不是提升排名的因素。Google 已明确表示它不是排名因素——它起作用的是「点击率」一侧,无非是富媒体结果一旦展示更容易被注意到而已。因此,给一个内容单薄的页面加结构化数据不会有任何效果;顺序应当是先把内容做厚。实现上有两点提醒。用 JavaScript 后插入的 JSON-LD 也会被读取,但可靠的做法是由服务端包含进 HTML——凡是要等渲染的,识别就会滞后,有时干脆不被识别。另外,一个页面放多种类型是没有问题的——Article、Breadcrumb、Organization 共存是正常的,无论用 @graph 归并,还是拆成多个 <script> 都可以。最后,生效需要时间——在页面被重新抓取之前,Search Console 的报告不会变化,所以不要在改动的第二天就断定「没效果」。
📖 使用方法
-
1
选择类型从下拉菜单中选择 9 种类型之一。
-
2
填写必填字段带 * 字段为必填。输入时输出实时更新。
-
3
复制或下载勾选 wrap 以获取 <script> 标签格式。插入 <head>。
-
4
用 Rich Results 测试验证粘贴到 Google Rich Results Test 确认。
❓ 常见问题
什么是 JSON-LD?
应该使用哪种类型?
一个页面能包含多个 schema 吗?
<script> 标签或合并到一个 @graph 数组。推荐 @graph。获得 Rich Results 的条件?
AI 爬虫会读取 JSON-LD 吗?
🔗 相关工具
🐛 此工具出现问题了吗?
免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。
感谢您的反馈!
已送达运营者,将用于改进工具。