JSON-LD(JSON for Linked Data)是一项用于在 JSON 中嵌入机器可读元数据的 W3C 标准。在 Web 上,它最常与 schema.org 词汇结合,放在 <script type="application/ld+json"> 中,帮助搜索引擎理解页面内容并可能展示富媒体搜索结果。
【用途】 提供结构化的页面元数据,供搜索引擎解析,以支持富结果展示(具体效果取决于搜索引擎与页面类型)。可用于组织信息、网页身份、文章、面包屑导航、产品、FAQ、本地商家、人物、视频、食谱等场景。
【主要能力与核心概念】
- 基本原则:首先保证 JSON 有效;@context 将术语映射到 IRI;@type 声明实体类型;@id 与链接优先使用绝对 URL;标记必须与页面可见内容一致。
- 最小文档包含 @context(schema.org 使用 "https://schema.org")以及通常的 @type。
- 核心关键字:@context(词汇与术语映射,文档或节点级必需)、@type(实体类型)、@id(实体的规范 IRI,用于交叉引用)、@graph(在单个文档中包含节点对象数组)、@language / @value(语言标记或类型化字面量,属于进阶用法)。
- 节点引用:通过 @graph 和 @id 链接实体以避免重复,站点级实体建议使用稳定的片段 ID(如 #website、#organization)。
【使用方式】
- 嵌入 HTML:将 JSON 放入 type="application/ld+json" 的 script 元素,可放在 <head> 或 <body>。同一页面上的多个 script 会合并为单一数据集。内容必须是有效 JSON(双引号、无尾随逗号、无注释);字符串中如出现 </script> 需要转义(例如拆分为 </script>)。
- Next.js(App Router):可创建专用 JsonLd 组件,在 layout.tsx 或 page.tsx 内联,例如返回 <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }} />;在 TypeScript 中构建对象,由 JSON.stringify 处理转义;动态页面的 name、url、datePublished 等可从路由参数与 CMS 数据派生;站点级 schema(Organization、WebSite)放入根 layout.tsx,页面级 schema 放入各 page.tsx。
- 常用 schema.org 类型示例:WebSite + Organization(根布局)、Article / BlogPosting、BreadcrumbList。资料提供完整示例代码。
【验证流程】
- 语法:确保 JSON 有效(无注释、无尾随逗号)。
- JSON-LD Playground:展开/压缩,调试 @context 与图结构。
- Google Rich Results Test:检查 Google 富结果资格(面向 SEO 时)。
- Search Console:部署后监控富结果状态。
- Node.js 程序化检查可使用 jsonld 包(jsonld.expand、jsonld.compact)。
【Google / SEO 指南摘要】
- 在可选择格式时,JSON-LD 是 Google 推荐的结构化数据格式。
- 标记必须描述页面上可见的内容,不得使用隐藏或误导性数据。
- 优先补全必填字段,而非用弱数据填充可选属性。
- 使用 Google 各类型专属文档确定必填属性,其要求可能比 schema.org 更严格。
- data-vocabulary.org 对 Google 富结果已弃用,应使用 schema.org。
【常见错误】 无效 JSON(注释、单引号、尾随逗号)、使用相对 URL(应为绝对 URL)、与 UI 不一致、重复冲突的图(同一 @id 定义不同数据)、@type 选错、缺少 @context、HTML 中的转义问题(原始的 </script> 会破坏 script 标签)。
【高级用法】 Framing(用 JSON-LD frame 重塑展开数据,W3C Framing 规范)、自定义词汇(为非 schema.org IRI 定义 @context 术语映射)、HTTP 头(对非 HTML 资源使用 Link 头,rel="alternate"; type="application/ld+json")、RDF 互操作(JSON-LD 序列化 RDF,与 RDF 工具集成时使用展开形式和 N-Quads)。
【相关技能】 sitemap(用于抓取发现的 XML 站点地图)、llms-txt(为 AI/智能体提供上下文,补充而非替代 JSON-LD)。
【限制与暂未提供】 资料未提供收费、价格、平台或效果保证等信息。
参考链接:W3C JSON-LD 1.1(https://www.w3.org/TR/json-ld11/)、JSON-LD Playground(https://json-ld.org/playground/)、schema.org(https://schema.org/)、Google 结构化数据入门(https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data)。