You've seen them in search results: recipe pages with star ratings and cook times, product listings showing price and availability, FAQ entries that expand right in the results without clicking through. Those extras — called rich results — don't happen by accident. They come from structured data that the site has embedded in its HTML.
This guide covers what structured data is, why JSON-LD is the format worth using, and how to write it with two real examples you can adapt immediately.
What Structured Data Actually Does
When a search engine crawls your page, it reads the text and makes its best guess about what the content is about. Most of the time, that's good enough for ranking. But for rich results — visual enhancements in the search listing itself — Google needs explicit, machine-readable signals.
Structured data provides those signals. It's a block of code in a standardized vocabulary that tells search engines: "This page is a recipe. The author is Jane Smith. It takes 30 minutes. Users rated it 4.7 out of 5." Google can then use that information to build a richer search result listing.
The vocabulary that defines all these types — Article, Product, Recipe, FAQ, Event, and dozens more — is maintained by Schema.org, a collaborative project run by Google, Bing, Yahoo, and Yandex.
Why JSON-LD Over Microdata or RDFa
There are three formats for adding structured data to a page:
| Format | How it works | Verdict |
|---|---|---|
| JSON-LD | A separate <script> tag with JSON inside | Google's recommended format — doesn't touch HTML |
| Microdata | Attributes added to existing HTML elements | Messy — tightly couples content and metadata |
| RDFa | Attributes added to existing HTML elements | Verbose and hard to maintain |
JSON-LD wins for one big reason: you don't have to touch your existing HTML. It lives in its own <script> tag, completely separate from the markup that renders your content. You can add it to a CMS template, a shared <head> include, or inject it dynamically — whatever fits your stack. Google explicitly recommends it, and it's by far the most widely used format today.
Two Practical JSON-LD Examples
Article Schema
Use this for blog posts, news articles, or editorial content. It helps Google understand authorship and publication dates, which can influence how the content is presented in search.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "What is JSON-LD Structured Data? Schema Markup for SEO Beginners",
"author": {
"@type": "Person",
"name": "Jane Smith",
"url": "https://example.com/authors/jane-smith"
},
"datePublished": "2026-03-01",
"dateModified": "2026-03-15",
"image": "https://example.com/images/json-ld-guide.jpg",
"publisher": {
"@type": "Organization",
"name": "Devryo",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
}
}
</script>
FAQ Schema
If your page has a question-and-answer section, FAQPage schema can surface those Q&As directly in the search result. Users can expand the answers without visiting your page — which sounds counterintuitive, but it typically increases click-through rate by establishing relevance before the click.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Does structured data guarantee rich results?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. Structured data makes your page eligible for rich results, but Google decides whether to show them based on quality signals and relevance."
}
},
{
"@type": "Question",
"name": "Where in the HTML does JSON-LD go?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Typically in the <head>, but it works in the <body> too. Google's crawler reads the full rendered page, so placement is flexible."
}
}
]
}
</script>
You can generate Article, FAQ, Product, and other schema types without writing JSON by hand using the JSON-LD generator. To validate or pretty-print the output, the JSON formatter will catch syntax errors instantly. While you're at it, the meta tag generator helps you cover the rest of your on-page SEO basics — title tags, Open Graph, and description.
FAQ
- Does structured data guarantee rich results in Google Search?
- No. Structured data makes your page eligible for rich results — it's a necessary but not sufficient condition. Google evaluates the overall quality of the page, the accuracy of the markup relative to the visible content, and whether the schema type you're using applies to the content. Pages with thin content or spammy markup won't get rich results even with perfect JSON-LD.
- Where in the HTML should JSON-LD go?
- Convention is to place it in the
<head>, but Google's documentation confirms it also works in the<body>. For single-page applications, as long as the markup is present in the rendered DOM (not just the initial HTML), Googlebot will find it — though rendering can delay indexing. Head placement is safer for static or server-rendered pages. - How do I test whether my structured data is valid?
- Google offers two tools: the Rich Results Test (search.google.com/test/rich-results) lets you paste a URL or code snippet and see which rich result types it's eligible for, along with any errors or warnings. Google Search Console also has an Enhancements section that shows structured data errors across your indexed pages over time — more useful for ongoing monitoring once the site is live.
- Can I add multiple JSON-LD blocks on one page?
- Yes. You can have several separate
<script type="application/ld+json">tags on a single page, or combine multiple schema types in one tag using a JSON array. Just make sure each schema type reflects content that's actually visible on the page — Google's guidelines prohibit adding structured data for content that isn't there, which can result in manual penalties.
Summary
- Structured data gives search engines explicit, machine-readable signals about your page's content
- JSON-LD is Google's recommended format — it lives in a separate
<script>tag and doesn't require touching your HTML - Schema.org defines the vocabulary; common types include Article, FAQPage, Product, and BreadcrumbList
- Rich results aren't guaranteed — structured data makes you eligible, but Google decides what to show
- Always test with the Rich Results Test tool and monitor for errors in Google Search Console
Tools to help you create and validate structured data:
- JSON-LD Generator — build Article, FAQ, Product, and other schema types with a form interface
- JSON Formatter — validate and format your structured data before publishing
- Meta Tag Generator — round out your on-page SEO with proper title, description, and Open Graph tags