[{"data":1,"prerenderedAt":283},["ShallowReactive",2],{"json-ld-guide":3},{"id":4,"title":5,"body":6,"description":275,"extension":276,"meta":277,"navigation":278,"path":279,"seo":280,"stem":281,"__hash__":282},"guides\u002Fguides\u002Fen\u002Fjson-ld-structured-data-guide.md","JSON-LD Structured Data Guide from Generation to Validation",{"type":7,"value":8,"toc":254},"minimark",[9,14,18,21,29,34,37,40,44,67,70,74,77,81,84,88,94,97,101,104,108,115,118,122,125,129,140,216,219,223,226,230,233,237,240,244,247,250],[10,11,13],"h2",{"id":12},"what-is-json-ld","What Is JSON-LD?",[15,16,17],"p",{},"JSON-LD means JavaScript Object Notation for Linked Data. It is a structured data format that describes the entities on a web page in a way that search engines and other machines can read reliably. A normal page is written primarily for people. A visitor can usually tell which text is a title, which person is the author, which number is a price, and which link is a breadcrumb. Search engines can infer many of those meanings, but inference is never as precise as a clear machine-readable statement.",[15,19,20],{},"JSON-LD gives that statement. For an article page, it can say that the page is an Article, the headline is a specific string, the author is a Person, the publisher is an Organization, and the publish date is a real date. For an ecommerce page, it can say that the page describes a Product, that the Product has an Offer, and that the Offer has a price, currency, availability, and URL. These details help search systems connect visible page content with known schema.org vocabulary.",[15,22,23,24,28],{},"JSON-LD is usually placed inside a ",[25,26,27],"code",{},"\u003Cscript type=\"application\u002Fld+json\">"," tag. It does not change the visual design of the page. This separation is one of the reasons many modern websites prefer JSON-LD: the layout can stay focused on users, while the structured data block describes the page for parsers, crawlers, and knowledge graph systems.",[30,31,33],"h3",{"id":32},"where-json-ld-fits-best","Where JSON-LD Fits Best",[15,35,36],{},"JSON-LD is useful on pages where a clear entity exists. Common examples include articles, product detail pages, FAQ pages, breadcrumb navigation, local business pages, organization profiles, events, recipes, courses, and software application pages. The key rule is simple: only mark up information that is actually present or clearly represented on the page. Structured data should not invent ratings, prices, addresses, authors, or answers that users cannot see.",[15,38,39],{},"For content sites, Article, BlogPosting, FAQPage, and BreadcrumbList are often the most practical starting points. For ecommerce sites, Product and Offer are powerful but require careful maintenance because prices, stock, and review information must stay synchronized with what users see. For local service businesses, LocalBusiness and PostalAddress can clarify name, address, telephone, opening hours, and website identity.",[10,41,43],{"id":42},"json-ld-vs-microdata","JSON-LD vs Microdata",[15,45,46,47,50,51,54,55,58,59,62,63,66],{},"Microdata is another structured data syntax. It uses attributes such as ",[25,48,49],{},"itemscope",", ",[25,52,53],{},"itemtype",", and ",[25,56,57],{},"itemprop"," directly inside HTML elements. For example, a product title might be placed in an element with ",[25,60,61],{},"itemprop=\"name\"",", while the price might be placed in an element with ",[25,64,65],{},"itemprop=\"price\"",". Microdata keeps data close to visible elements, which can be useful, but it also makes templates harder to maintain.",[15,68,69],{},"JSON-LD centralizes the same meaning in one script block. This is easier to copy, review, generate, and test. It is also friendlier for WordPress themes, Shopify Liquid templates, Nuxt apps, and other component-based systems because developers can generate one object from page data instead of scattering attributes throughout the HTML tree.",[30,71,73],{"id":72},"maintenance-differences","Maintenance Differences",[15,75,76],{},"Microdata feels like tagging each visible element. JSON-LD feels like attaching a machine-readable summary to the page. If a page is assembled from many reusable components, Microdata may require edits in many places. JSON-LD can often be produced in one template, layout, or head component. That makes it easier for a small team to audit.",[30,78,80],{"id":79},"risk-differences","Risk Differences",[15,82,83],{},"Both formats require the same honesty. Structured data must match page content. JSON-LD is easier to manage, but because it is separate from visible markup, it can become stale when the page changes. A good publishing checklist should verify headline, description, image, author, product price, availability, FAQ answers, and breadcrumb URLs before release.",[10,85,87],{"id":86},"how-to-embed-generated-code-in-wordpress","How to Embed Generated Code in WordPress",[15,89,90,91,93],{},"WordPress gives several options. If you manage a small number of pages, you can use a custom code plugin that allows page-specific head or footer scripts. Paste the generated ",[25,92,27],{}," block into that page, publish it, and then view the final page source to confirm the script appears in the rendered HTML.",[15,95,96],{},"For a larger content site, a template-driven approach is safer. Developers can read the post title, excerpt, featured image, author, date, and publisher from WordPress fields and output Article JSON-LD automatically. This reduces manual copy errors and keeps structured data aligned when editors update the page.",[30,98,100],{"id":99},"wordpress-checklist","WordPress Checklist",[15,102,103],{},"First, confirm the page type. Use Article or BlogPosting for editorial pages, FAQPage only when questions and answers are visible, and Product only when a real product is shown. Second, check whether an SEO plugin or WooCommerce already outputs schema. Duplicate Product, Article, or FAQPage markup can make testing results confusing. Third, validate the final URL rather than only the admin editor content.",[10,105,107],{"id":106},"how-to-embed-generated-code-in-shopify","How to Embed Generated Code in Shopify",[15,109,110,111,114],{},"Shopify themes are usually built with Liquid. A Product JSON-LD block can be added to a product section or snippet, but static pasted values are not ideal for a real store. The product name should come from ",[25,112,113],{},"product.title",", the image from the featured image, the price from the selected variant, and availability from the actual inventory state.",[15,116,117],{},"Shopify stores also often use SEO, reviews, subscriptions, and page builder apps. Some of those apps output their own structured data. Before adding custom JSON-LD, inspect the page source and run a rich results test to avoid duplicate product or review entities.",[30,119,121],{"id":120},"shopify-checklist","Shopify Checklist",[15,123,124],{},"Use the generated code as a reference, then replace example values with Liquid variables. Confirm that the final output is valid JSON and not unresolved Liquid syntax. Re-test when prices, variants, review apps, or theme files change.",[10,126,128],{"id":127},"how-to-embed-code-in-a-custom-html-site","How to Embed Code in a Custom HTML Site",[15,130,131,132,135,136,139],{},"For a static HTML page, paste the generated script tag into the ",[25,133,134],{},"\u003Chead>"," or ",[25,137,138],{},"\u003Cbody>",". Search engines can read JSON-LD in either location, as long as it is present in the final rendered HTML.",[141,142,147],"pre",{"className":143,"code":144,"language":145,"meta":146,"style":146},"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,148,149,176,182,188,194,200,206],{"__ignoreMap":146},[150,151,154,158,162,166,169,173],"span",{"class":152,"line":153},"line",1,[150,155,157],{"class":156},"sVt8B","\u003C",[150,159,161],{"class":160},"s9eBZ","script",[150,163,165],{"class":164},"sScJk"," type",[150,167,168],{"class":156},"=",[150,170,172],{"class":171},"sZZnC","\"application\u002Fld+json\"",[150,174,175],{"class":156},">\n",[150,177,179],{"class":152,"line":178},2,[150,180,181],{"class":156},"{\n",[150,183,185],{"class":152,"line":184},3,[150,186,187],{"class":156},"  \"@context\": \"https:\u002F\u002Fschema.org\",\n",[150,189,191],{"class":152,"line":190},4,[150,192,193],{"class":156},"  \"@type\": \"Article\",\n",[150,195,197],{"class":152,"line":196},5,[150,198,199],{"class":156},"  \"headline\": \"Example Article\"\n",[150,201,203],{"class":152,"line":202},6,[150,204,205],{"class":156},"}\n",[150,207,209,212,214],{"class":152,"line":208},7,[150,210,211],{"class":156},"\u003C\u002F",[150,213,161],{"class":160},[150,215,175],{"class":156},[15,217,218],{},"For framework-based sites such as Nuxt, Next, Astro, Laravel, or Rails, generate JSON-LD from page data instead of hard-coding every page. Use safe serialization and avoid allowing user input to break the script block. If the site relies heavily on client rendering, make sure testing tools can still see the final structured data.",[10,220,222],{"id":221},"how-to-validate-with-google-rich-results-test","How to Validate with Google Rich Results Test",[15,224,225],{},"Google Rich Results Test is the most practical pre-launch validation tool. It can test a live URL or a code snippet. For unpublished pages, paste a snippet. For published pages, use URL mode because it better represents what Googlebot can fetch.",[30,227,229],{"id":228},"validation-steps","Validation Steps",[15,231,232],{},"Open the test tool, choose URL or code mode, run the test, and inspect detected items. Expand each Article, Product, FAQPage, BreadcrumbList, LocalBusiness, Organization, Event, or Recipe item. Fix errors first, then review warnings. Errors usually indicate invalid JSON, missing required fields, inaccessible URLs, or unsupported markup. Warnings may not block eligibility, but they often point to missing recommended fields.",[30,234,236],{"id":235},"after-validation","After Validation",[15,238,239],{},"Passing a test does not guarantee rich results or better rankings. Google still decides whether to index a page and whether to display enhanced results based on many signals, including page quality, relevance, crawlability, and policy compliance. After publishing, monitor Google Search Console enhancement reports and re-test important templates after redesigns, plugin changes, app changes, or schema updates.",[10,241,243],{"id":242},"recommended-workflow","Recommended Workflow",[15,245,246],{},"Choose the schema type that matches the visible page content. Fill in real values. Review the visual relationship graph to understand how the main entity connects to nested entities such as author, publisher, offer, address, or answer. Check the validation panel, copy the JSON-LD, embed it in the site, and run Google Rich Results Test.",[15,248,249],{},"JSON-LD is not about adding the most fields. It is about describing the page accurately and consistently. The best structured data is clear, truthful, easy to maintain, and synchronized with the content users can actually see.",[251,252,253],"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":146,"searchDepth":178,"depth":178,"links":255},[256,259,263,266,269,270,274],{"id":12,"depth":178,"text":13,"children":257},[258],{"id":32,"depth":184,"text":33},{"id":42,"depth":178,"text":43,"children":260},[261,262],{"id":72,"depth":184,"text":73},{"id":79,"depth":184,"text":80},{"id":86,"depth":178,"text":87,"children":264},[265],{"id":99,"depth":184,"text":100},{"id":106,"depth":178,"text":107,"children":267},[268],{"id":120,"depth":184,"text":121},{"id":127,"depth":178,"text":128},{"id":221,"depth":178,"text":222,"children":271},[272,273],{"id":228,"depth":184,"text":229},{"id":235,"depth":184,"text":236},{"id":242,"depth":178,"text":243},"A practical guide for creating, embedding, and validating JSON-LD structured data on WordPress, Shopify, and custom HTML sites.","md",{},true,"\u002Fguides\u002Fen\u002Fjson-ld-structured-data-guide",{"title":5,"description":275},"guides\u002Fen\u002Fjson-ld-structured-data-guide","c2TknW6Gz1GQarUGgjrsYq-rFKnuj69PWNs28xNJG9E",1779939009540]