[{"data":1,"prerenderedAt":365},["ShallowReactive",2],{"json-ld-guide":3},{"id":4,"title":5,"body":6,"description":357,"extension":358,"meta":359,"navigation":360,"path":361,"seo":362,"stem":363,"__hash__":364},"guides\u002Fguides\u002Fjson-ld-structured-data-guide.md","JSON-LD 结构化数据从入门到上线验证",{"type":7,"value":8,"toc":334},"minimark",[9,14,18,21,29,55,60,63,66,70,96,99,102,105,108,111,115,121,124,128,142,145,149,159,178,182,185,188,192,195,270,281,284,290,293,297,300,303,306,309,312,315,318,321,324,327,330],[10,11,13],"h2",{"id":12},"什么是-json-ld","什么是 JSON-LD？",[15,16,17],"p",{},"JSON-LD 的全称是 JavaScript Object Notation for Linked Data，可以理解为“用 JSON 表达网页实体关系的一种结构化数据格式”。普通网页主要写给人看，搜索引擎虽然可以抓取文字、标题、图片和链接，但很难百分之百判断页面中的每一段信息分别代表什么。JSON-LD 的价值在于，它用机器更容易理解的方式说明页面里有哪些实体、实体之间有什么关系，以及这些信息应该如何被解释。",[15,19,20],{},"例如，一篇文章页面里会有标题、作者、发布时间、摘要、主图和发布机构。用户看到这些内容时能自然理解它们的含义，但搜索引擎需要额外线索。Article 类型的 JSON-LD 可以明确告诉搜索引擎：这个页面的主体是一篇文章，headline 是标题，author 是作者，datePublished 是发布时间，publisher 是发布机构。这样做不能强制搜索引擎展示富媒体结果，但它能降低理解成本，提高页面被正确解析的概率。",[15,22,23,24,28],{},"JSON-LD 通常放在 ",[25,26,27],"code",{},"\u003Cscript type=\"application\u002Fld+json\">"," 标签中。它不会直接改变页面视觉效果，也不需要把属性塞进每一个 HTML 元素里。对站长来说，这种方式更容易维护，因为结构化数据与页面布局相对分离：前端模板可以继续服务用户体验，JSON-LD 则专门服务搜索引擎、知识图谱和其他数据消费方。",[30,31,34,35,34,39],"figure",{"className":32},[33],"guide-diagram","\n  ",[36,37,38],"figcaption",{},"JSON-LD 在页面中的角色示意",[40,41,44,45,44,49,44,52,34],"div",{"className":42},[43],"diagram-row","\n    ",[46,47,48],"span",{},"网页内容",[46,50,51],{},"JSON-LD 描述",[46,53,54],{},"搜索引擎理解",[56,57,59],"h3",{"id":58},"json-ld-适合哪些页面","JSON-LD 适合哪些页面？",[15,61,62],{},"常见适用场景包括文章页、产品页、FAQ 页面、面包屑导航、本地商家页面、课程页面、活动页面和软件应用页面。并不是每个页面都需要复杂的结构化数据。最稳妥的做法是从页面真实内容出发：页面展示了什么，就生成什么；页面没有展示的信息，不要为了“看起来更丰富”而强行写入。",[15,64,65],{},"对于内容站，Article、BlogPosting、FAQPage、BreadcrumbList 往往最常见。对于电商站，Product、Offer、AggregateRating、Review 需要特别谨慎，因为价格、库存、评分和评论必须与页面展示内容一致。对于本地服务类网站，LocalBusiness、PostalAddress、OpeningHoursSpecification 可以帮助搜索引擎识别商家名称、地址、电话和营业时间。",[10,67,69],{"id":68},"json-ld-与-microdata-有何区别","JSON-LD 与 Microdata 有何区别？",[15,71,72,73,76,77,76,80,83,84,87,88,91,92,95],{},"Microdata 是另一种结构化数据写法，它把 ",[25,74,75],{},"itemscope","、",[25,78,79],{},"itemtype",[25,81,82],{},"itemprop"," 等属性直接写在 HTML 标签上。比如一个产品名所在的 ",[25,85,86],{},"\u003Ch1>"," 可以带上 ",[25,89,90],{},"itemprop=\"name\"","，价格所在的元素可以带上 ",[25,93,94],{},"itemprop=\"price\"","。这种写法的优点是数据与可见内容靠得很近，不容易完全脱离页面；缺点是维护成本较高，尤其当页面模板复杂、组件嵌套深、前后端多人协作时，结构化数据属性会散落在许多 HTML 节点中。",[15,97,98],{},"JSON-LD 的写法更集中。你可以在一个脚本块里描述完整实体，而不必修改每个展示元素。对于 WordPress 主题、Shopify Liquid 模板、Nuxt 或其他现代前端项目，JSON-LD 更适合做成可复用组件或由工具生成。它也更便于版本控制、代码审查和自动化测试，因为结构化数据通常是一个清晰的对象。",[56,100,101],{"id":101},"维护方式的差异",[15,103,104],{},"Microdata 更像“把标签贴在页面元素上”，JSON-LD 更像“给页面附上一份机器可读说明书”。如果你的页面由多个模块拼成，Microdata 往往需要进入每个模块修改属性。JSON-LD 则可以在页面顶部、底部或组件统一输出。对非技术团队来说，JSON-LD 也更容易复制、检查和发送给开发人员。",[56,106,107],{"id":107},"风险控制的差异",[15,109,110],{},"两者都必须遵守同一个原则：结构化数据要与用户可见内容一致。JSON-LD 因为和页面视觉代码分离，所以更容易出现“页面内容改了，JSON-LD 没改”的问题。上线前应建立检查清单：标题是否一致，价格是否一致，库存是否一致，FAQ 的问题与回答是否在页面可见，面包屑链接是否真实存在。这个工具提供的可视化预览可以帮助你先看清实体关系，但最终仍要以页面真实内容和官方测试结果为准。",[10,112,114],{"id":113},"如何把生成的代码嵌入-wordpress","如何把生成的代码嵌入 WordPress？",[15,116,117,118,120],{},"WordPress 的嵌入方式取决于你是否使用主题、区块编辑器、SEO 插件或自定义代码插件。最简单的方式是使用支持插入 head 或 footer 代码的插件，把生成器输出的 ",[25,119,27],{}," 代码粘贴到对应页面。适合单页落地页、少量文章页或临时验证场景。",[15,122,123],{},"如果你管理的是长期内容站，更推荐把 JSON-LD 写进主题模板或通过自定义字段动态生成。例如文章页可以从 WordPress 的标题、摘要、特色图片、作者和发布日期读取数据，再输出 Article JSON-LD。这样当编辑修改文章标题或发布日期时，结构化数据会跟着更新，减少人工复制错误。",[56,125,127],{"id":126},"wordpress-操作建议","WordPress 操作建议",[15,129,130,131,76,134,137,138,141],{},"第一步，确认页面类型。文章页使用 Article 或 BlogPosting，产品页如果由 WooCommerce 管理，优先检查 WooCommerce 或 SEO 插件是否已经输出 Product 结构化数据，避免重复。第二步，把工具生成的 JSON-LD 复制到页面专属代码区域，或交给开发者放入 ",[25,132,133],{},"single.php",[25,135,136],{},"page.php","、区块模板或主题组件中。第三步，发布前查看页面源码，搜索 ",[25,139,140],{},"application\u002Fld+json","，确认代码确实出现在最终 HTML 中，而不是只存在于后台编辑器里。",[15,143,144],{},"如果同一个页面已经由 SEO 插件输出了结构化数据，不要盲目添加第二份相同类型的数据。重复的 Article、Product 或 FAQPage 可能让测试结果变得混乱。更好的做法是选择一个权威来源：要么使用插件配置，要么关闭插件对应输出，改用自定义 JSON-LD。",[10,146,148],{"id":147},"如何把生成的代码嵌入-shopify","如何把生成的代码嵌入 Shopify？",[15,150,151,152,76,155,158],{},"Shopify 站点通常通过 Liquid 模板控制页面输出。产品页常见文件包括 ",[25,153,154],{},"main-product.liquid",[25,156,157],{},"product.json"," 对应的 section，或主题中的 product snippet。你可以把生成器输出的 Product JSON-LD 放到产品模板里，但实际项目中更推荐使用 Liquid 变量动态填充名称、图片、价格、货币、库存和品牌。",[15,160,161,162,165,166,169,170,173,174,177],{},"例如，产品名称应来自 ",[25,163,164],{},"product.title","，价格应来自当前变体，图片应来自 ",[25,167,168],{},"product.featured_image","，库存状态应根据可售状态输出 ",[25,171,172],{},"https:\u002F\u002Fschema.org\u002FInStock"," 或 ",[25,175,176],{},"https:\u002F\u002Fschema.org\u002FOutOfStock","。这样当商家在后台更新价格或库存时，JSON-LD 不会停留在旧值。",[56,179,181],{"id":180},"shopify-操作建议","Shopify 操作建议",[15,183,184],{},"先打开主题代码编辑器，定位产品页 section 或 snippet。把工具生成的代码作为结构参考，而不是永远手动粘贴固定值。然后用 Liquid 变量替换示例内容。保存后打开一个真实产品页，在浏览器中查看源码，确认最终输出的是标准 JSON，而不是残留了未解析的 Liquid 标记。",[15,186,187],{},"Shopify 商店还要特别注意多币种、变体价格和应用重复输出。有些 SEO 应用、评论应用、订阅应用会自动插入 Product、Review 或 AggregateRating 结构化数据。如果你同时手写一份，Google 的测试工具可能看到多个产品实体。上线前建议保留一份主数据源，并确保评分、评论数、价格和库存与页面可见内容一致。",[10,189,191],{"id":190},"如何嵌入自定义-html-网站","如何嵌入自定义 HTML 网站？",[15,193,194],{},"自定义 HTML、Nuxt、Next、Astro、Laravel、Rails 或其他项目都可以输出 JSON-LD。最通用的方法是在页面模板中加入脚本标签：",[196,197,202],"pre",{"className":198,"code":199,"language":200,"meta":201,"style":201},"language-html shiki shiki-themes github-light github-dark","\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"Example Article\"\n}\n\u003C\u002Fscript>\n","html","",[25,203,204,230,236,242,248,254,260],{"__ignoreMap":201},[46,205,208,212,216,220,223,227],{"class":206,"line":207},"line",1,[46,209,211],{"class":210},"sVt8B","\u003C",[46,213,215],{"class":214},"s9eBZ","script",[46,217,219],{"class":218},"sScJk"," type",[46,221,222],{"class":210},"=",[46,224,226],{"class":225},"sZZnC","\"application\u002Fld+json\"",[46,228,229],{"class":210},">\n",[46,231,233],{"class":206,"line":232},2,[46,234,235],{"class":210},"{\n",[46,237,239],{"class":206,"line":238},3,[46,240,241],{"class":210},"  \"@context\": \"https:\u002F\u002Fschema.org\",\n",[46,243,245],{"class":206,"line":244},4,[46,246,247],{"class":210},"  \"@type\": \"Article\",\n",[46,249,251],{"class":206,"line":250},5,[46,252,253],{"class":210},"  \"headline\": \"Example Article\"\n",[46,255,257],{"class":206,"line":256},6,[46,258,259],{"class":210},"}\n",[46,261,263,266,268],{"class":206,"line":262},7,[46,264,265],{"class":210},"\u003C\u002F",[46,267,215],{"class":214},[46,269,229],{"class":210},[15,271,272,273,276,277,280],{},"这段代码可以放在 ",[25,274,275],{},"\u003Chead>"," 中，也可以放在 ",[25,278,279],{},"\u003Cbody>"," 中。关键不是位置，而是搜索引擎抓取最终 HTML 时能够看到有效 JSON-LD。如果你的网站大量依赖客户端渲染，要确认搜索引擎和测试工具能看到注入后的脚本。对重要页面，服务端渲染或静态生成通常更稳妥。",[56,282,283],{"id":283},"自定义站点操作建议",[15,285,286,287,289],{},"在静态 HTML 中，你可以直接复制生成器输出的完整代码。对于模板型网站，应把字段绑定到数据库或 CMS 数据，避免每个页面手动维护。对于前端框架，要注意 JSON 序列化安全，避免用户输入破坏脚本结构。通常做法是使用框架提供的 head 管理能力或把 JSON 对象安全序列化后写入 ",[25,288,140],{},"。",[15,291,292],{},"嵌入后请检查三件事：页面源码里是否存在脚本标签；脚本内容是否是合法 JSON；结构化数据中的 URL、图片、价格、日期、作者等字段是否与页面可见内容一致。不要把测试页面、占位图、虚假库存或不存在的评价写进正式页面。",[10,294,296],{"id":295},"如何使用-google-rich-results-test-进行验证","如何使用 Google Rich Results Test 进行验证？",[15,298,299],{},"Google Rich Results Test，即 Google 富媒体结果测试工具，是上线前必做的检查。它可以读取一个在线 URL，也可以直接测试一段代码。对于还没有发布的页面，可以先使用代码测试，把生成器输出的脚本连同必要 HTML 片段粘贴进去。对于已经发布的页面，建议使用 URL 测试，因为它更接近 Googlebot 实际抓取页面时看到的结果。",[56,301,302],{"id":302},"验证步骤",[15,304,305],{},"第一步，打开 Google Rich Results Test。第二步，选择 URL 或代码模式。第三步，运行测试并等待结果。第四步，查看检测到的结构化数据类型，例如 Article、Product、FAQPage 或 BreadcrumbList。第五步，展开每个项目，检查错误、警告和字段详情。",[15,307,308],{},"错误通常代表必须修复的问题，例如缺少必填字段、JSON 格式无效、URL 不可访问。警告不一定阻止富媒体结果，但可能影响展示完整度，例如缺少推荐字段。修复后应再次测试，直到关键错误消失。对于产品和评论类数据，还要结合 Google 搜索中心文档确认当前政策，因为这些类型更容易因为页面内容不一致或滥用标记而失去资格。",[56,310,311],{"id":311},"验证后的上线清单",[15,313,314],{},"验证通过并不代表一定获得富媒体展示。Google 是否展示富媒体结果，还会受到页面质量、站点信任、抓取状态、内容相关性和搜索结果布局影响。因此上线后还应在 Google Search Console 中观察增强功能报告、索引状态和实际搜索表现。如果 Search Console 报告结构化数据错误，应以报告中的具体 URL 为单位排查，而不是只看模板代码。",[15,316,317],{},"建议每次改版、换主题、安装 SEO 插件、调整产品模板或修改 FAQ 内容后重新验证。结构化数据不是“一次生成永久有效”的资产，它和页面内容一样需要维护。把生成、嵌入、验证、监控放进发布流程，才能真正降低搜索引擎误解页面的风险。",[10,319,320],{"id":320},"使用本生成器的推荐流程",[15,322,323],{},"先选择最贴合页面内容的 Schema 类型，不确定时从最简单的类型开始。然后填写页面真实存在的字段，不要为了通过测试而添加用户看不到的信息。接着观察右侧关系图，确认实体之间的层级是否符合预期。最后复制 JSON-LD，嵌入 WordPress、Shopify 或自定义网站，并使用 Google Rich Results Test 验证。",[15,325,326],{},"如果验证结果出现错误，回到表单逐项修改。常见问题包括 URL 漏写协议、图片地址不可公开访问、日期格式不规范、价格缺少货币、FAQ 回答为空、面包屑 position 顺序不正确。修复这些基础问题后，再考虑更高级的 Schema 扩展。",[15,328,329],{},"JSON-LD 的目标不是“堆更多字段”，而是准确表达页面已经提供的内容。结构化数据越真实、越稳定、越容易维护，它对长期 SEO 和站点质量的帮助越可靠。",[331,332,333],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":201,"searchDepth":232,"depth":232,"links":335},[336,339,343,346,349,352,356],{"id":12,"depth":232,"text":13,"children":337},[338],{"id":58,"depth":238,"text":59},{"id":68,"depth":232,"text":69,"children":340},[341,342],{"id":101,"depth":238,"text":101},{"id":107,"depth":238,"text":107},{"id":113,"depth":232,"text":114,"children":344},[345],{"id":126,"depth":238,"text":127},{"id":147,"depth":232,"text":148,"children":347},[348],{"id":180,"depth":238,"text":181},{"id":190,"depth":232,"text":191,"children":350},[351],{"id":283,"depth":238,"text":283},{"id":295,"depth":232,"text":296,"children":353},[354,355],{"id":302,"depth":238,"text":302},{"id":311,"depth":238,"text":311},{"id":320,"depth":232,"text":320},"面向站长、编辑和电商运营的 JSON-LD 生成、嵌入与 Google 富媒体结果验证教程。","md",{},true,"\u002Fguides\u002Fjson-ld-structured-data-guide",{"title":5,"description":357},"guides\u002Fjson-ld-structured-data-guide","hrWbbTO0OS1MG1akxXRKjP87_Bo7CA9Cpa449D39sAA",1779873287363]