What Is JSON-LD? A 5-Minute Guide to Structured Data
What JSON-LD is, why it matters, how it relates to schema.org, and exactly where to drop it into your HTML. Includes real code and validation steps.
TL;DR
JSON-LD is a snippet of code that tells search engines and AI, in a machine-readable format, what your page is about. You drop it into your HTML inside a <script type="application/ld+json"> tag.
1. What JSON-LD actually is
JSON-LD stands for JSON for Linked Data. It's a standard format for describing your page's content using the schema.org vocabulary so search engines and AI can understand it. Google officially recommends it as the structured data format of choice, and Naver, Daum, and Bing all recognize it the same way.
Put simply — a human reading the page can tell "oh, this is a kimchi stew recipe," but a search engine has to guess. JSON-LD removes the guesswork with an explicit signal.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Kimchi Stew",
"recipeYield": "4 servings",
"totalTime": "PT45M"
}
</script>
With that snippet, the search engine receives a 100% confirmed fact: this page is a kimchi stew recipe that serves 4 and takes 45 minutes.
2. How it relates to schema.org
schema.org is a shared vocabulary standard maintained jointly by Google, Microsoft, Yahoo, and Yandex. It defines what types exist and which properties each type can have. The ones you'll see most often:
Article— news and blog postsProduct— items for saleOrganization— company or brand infoLocalBusiness— physical storefrontsFAQPage— frequently asked questionsBreadcrumbList— paths within a siteRecipe,Event,Course,HowTo,VideoObject, and many more
JSON-LD is the format; schema.org is the dictionary of words that go inside. The two work together.
3. Why it matters more now (AEO/GEO)
Historically, JSON-LD was about rich snippets in search results — stars, FAQs, images. Since 2023, with AI search like ChatGPT, Gemini, and Google AI Overview going mainstream, its role has grown.
AI search doesn't quote your page verbatim — it summarizes and reconstructs. Pages with JSON-LD get:
- Higher citation accuracy (author, publish date, price treated as fact, not guess)
- A better chance of being quoted directly (especially
FAQPageandHowToformats) - Brand entities recognized as single objects (when
Organizationis marked up)
In other words, JSON-LD is now the most important signal for "AI search visibility (AEO/GEO)" — not just SEO.
4. Where to put it and how
JSON-LD code goes either inside the HTML <head> or just before </body>, wrapped in a <script type="application/ld+json"> block. It works the same anywhere, but <head> is preferred.
<!DOCTYPE html>
<html lang="en">
<head>
<title>Kimchi Stew Recipe</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "Kimchi Stew",
"author": { "@type": "Person", "name": "Kyungchan Yang" },
"datePublished": "2026-05-03",
"recipeYield": "4 servings"
}
</script>
</head>
<body>
<h1>Kimchi Stew</h1>
<!-- ... -->
</body>
</html>
When you have multiple schemas on one page, there are two approaches:
- Multiple
<script>blocks placed side by side (simplest) - Wrap them in
@graph— one block with an array of schemas linked together
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Organization", "name": "..." },
{ "@type": "WebSite", "name": "..." },
{ "@type": "Article", "headline": "..." },
{ "@type": "BreadcrumbList", "itemListElement": [...] }
]
}
</script>
The @graph approach is preferred because it lets you explicitly express how the objects on the page relate (e.g. "the publisher of this Article is this Organization").
5. How to validate after you ship
Once you've added the code, validate it. Two free tools:
- Rich Results Test — Google's official tool. Paste a URL and it tells you whether it qualifies for rich results and what errors exist.
- Schema Markup Validator — schema.org's official tool. Stricter — it checks compliance with the schema.org spec itself.
Pass both before you call it done. In particular, you need a "page is eligible" verdict from Rich Results Test before rich snippets can show up in actual search results.
6. Five common mistakes
! Avoid these
- Marking up info that's not visible on the page — putting star ratings, prices, or FAQs in JSON-LD that don't appear in the body is treated as spam by Google. The info must also be in the visible content.
- Missing
@type— without@type, your data is meaningless. - Wrong ISO 8601 format —
datePublished,duration, etc. must follow ISO 8601 (2026-05-03,PT45M). - Duplicate
Organizationblocks — having two Organization objects for the same brand on one page makes it ambiguous which is the source of truth. Keep one. - Image/URL fields pointing to dead URLs — 404 image URLs are either ignored or penalized.
7. Build your own
If you've made it this far, it's time to actually write some JSON-LD. Two paths:
A. Auto-generate from a URL — we analyze the page and output Organization, WebSite, Article, and BreadcrumbList bundled with @graph in one shot. Fastest path.
If your site is already live, just paste the URL. We pull page metadata and generate the most appropriate schemas instantly.
→ Auto-generate from URLB. Build with a form — for FAQ, Recipe, Course, HowTo, and other types that are hard to infer, a form is more accurate. Supports 11 schema types.
For schemas that auto-generation can't catch (FAQ, Recipe, etc.), the form builder lets you create them precisely.
→ Build with a formC. Start with a diagnosis — if you don't know what schemas your site currently has or what's missing, start free.
Paste a URL and we score your meta, OG, structured data, and technical SEO out of 100, then tell you which schemas you're missing for AI search.
→ Run a free SEO diagnosticWrapping up
JSON-LD is no longer a "nice to have." It's core infrastructure for the AI search era. Click-through from search results, citation accuracy in AI answers, brand entity recognition — all three depend on the quality of your structured data.
Start with three: Organization, WebSite, and BreadcrumbList. Just getting those right lifts your site's overall recognition quality a lot. From there, add Article, Product, FAQPage, etc. depending on the page type.