01 What schema markup is
Schema markup (also called structured data) is a standardised vocabulary you embed in your HTML to tell search engines what your content actually is. Not just "this page contains text" but "this page is a recipe with these ingredients, this prep time, and a 4.7-star rating."
The vocabulary lives at schema.org โ a joint project from Google, Microsoft, Yahoo and Yandex. There are thousands of types, but only about a dozen actually matter for SEO.
02 Why bother with it
Two reasons:
- Rich results. Schema is how you become eligible for the visually-enhanced search snippets โ recipe cards with ratings, product listings with prices, FAQ accordions, breadcrumb trails. These take more SERP real estate and lift CTR meaningfully.
- Disambiguation for the entity graph. Even when no rich result appears, schema helps Google understand who you are, what you sell, where you're located, and how your pages relate to each other. This feeds into the knowledge graph and improves how Google handles ambiguous queries.
It's worth keeping expectations honest, though: schema doesn't directly improve rankings. It improves presentation and understanding. The ranking lift comes indirectly through CTR.
03 JSON-LD: the only format that matters
You'll see three formats mentioned in schema documentation: Microdata, RDFa and JSON-LD. In 2026, only one is worth your time: JSON-LD.
Reasons to use JSON-LD exclusively:
- Google explicitly recommends it.
- It lives in a single
<script>block, separate from your visible markup. No risk of breaking your HTML. - It's far easier to generate dynamically.
- It's easier to debug.
What it looks like in practice:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Title of the article",
"datePublished": "2026-04-15",
"author": {
"@type": "Person",
"name": "Jane Doe"
}
}
</script>
Place the script block in the <head> or anywhere in <body>. Google will find it either way.
04 The schemas that move the needle
Out of thousands of schema.org types, here are the ones that actually pay back the investment in 2026:
| Type | Use on | Result |
|---|---|---|
| Organization | Homepage | Knowledge panel eligibility, brand entity |
| WebSite | Homepage | Sitelinks search box |
| BreadcrumbList | Every non-homepage URL | Breadcrumb display in SERP |
| Article / BlogPosting | Editorial content | Top stories, news carousels |
| Product | Product pages | Price, rating, availability in SERP |
| Recipe | Recipe pages | Recipe cards with image, time, rating |
| Event | Event listings | Event date / location in SERP |
| VideoObject | Pages with embedded video | Video thumbnail in SERP |
| LocalBusiness | Local-business homepages | Maps integration, NAP signals |
| FAQPage | FAQ-heavy pages | Reduced rich-result eligibility (see Guide on FAQ schema) |
05 Organization & WebSite โ the foundation
Two schemas every site should have on the homepage. They tell Google "here's who we are" and feed directly into the knowledge graph.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#org",
"name": "Example Inc.",
"url": "https://example.com/",
"logo": "https://example.com/logo.png",
"sameAs": [
"https://twitter.com/example",
"https://www.linkedin.com/company/example"
]
}
The sameAs array is the underrated part โ it's how you connect your homepage to your social profiles in Google's entity graph, which strengthens your knowledge-panel signals.
Pair Organization with WebSite schema to enable a sitelinks search box for branded queries:
{
"@type": "WebSite",
"url": "https://example.com/",
"potentialAction": {
"@type": "SearchAction",
"target": "https://example.com/search?q={query}",
"query-input": "required name=query"
}
}
06 Article & BlogPosting
For editorial content (blog posts, news articles, guides), Article schema unlocks Top Stories carousels and other news-oriented rich results.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Article title here",
"image": "https://example.com/cover.jpg",
"datePublished": "2026-04-15T08:00:00+02:00",
"dateModified": "2026-04-20T10:30:00+02:00",
"author": {
"@type": "Person",
"name": "Jane Doe",
"url": "https://example.com/authors/jane-doe"
},
"publisher": {
"@type": "Organization",
"name": "Example",
"logo": "https://example.com/logo.png"
}
}
The fields Google actually uses: headline, image, datePublished, dateModified, author, publisher. Keep headline under 110 characters or it gets truncated in the rich result.
07 Product โ pricing and availability in SERP
For e-commerce pages, Product schema unlocks the price/rating/availability snippet โ one of the highest-CTR rich result types.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Blue Widget",
"image": "https://example.com/widget.jpg",
"description": "A premium-quality blue widgetโฆ",
"sku": "BW-001",
"brand": { "@type": "Brand", "name": "WidgetCo" },
"offers": {
"@type": "Offer",
"url": "https://example.com/products/blue-widget",
"priceCurrency": "CHF",
"price": "29.90",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "247"
}
}
One important rule: only mark up reviews that are actually visible on the page. If you're showing the AggregateRating in schema but no reviews appear in the visible HTML, Google treats that as policy violation.
08 BreadcrumbList โ every non-homepage page
BreadcrumbList replaces the URL string in the SERP with a clickable breadcrumb trail. It's a small visual upgrade with measurable CTR impact.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Guides",
"item": "https://example.com/guides/"
},
{
"@type": "ListItem",
"position": 3,
"name": "This Guide",
"item": "https://example.com/guides/this-guide"
}
]
}
Add this to every non-homepage URL. It's free real-estate.
09 Validating your schema
Two validators every developer should bookmark:
- Schema Markup Validator โ the schema.org official tool. Catches syntax and structural errors.
- Google Rich Results Test โ checks whether your markup is eligible for specific rich result types in Google.
You want both tools to pass. Schema Validator catches "is this valid schema.org?" Rich Results Test catches "would Google actually use this?"
Smart SEO Audit's structured-data check runs both validations on every audited URL and flags any errors or warnings.
10 Schemas that no longer pay back
A few schema types you'll find in old guides that aren't worth implementing today:
- HowTo schema โ Google removed HowTo rich results from desktop in 2023. Mobile rich results were de-emphasised in 2024.
- FAQPage schema โ restricted in 2023 to "well-known authoritative websites" (government, health). For most sites, FAQ rich results no longer trigger. See our dedicated guide.
- QAPage schema โ niche, mostly for Q&A platforms.
- itemReviewed on third-party content โ review schema was widely abused; Google now restricts it on third-party reviews of products you don't own.
The pattern is clear: Google has spent the last few years tightening which schemas actually trigger rich results. Implement the ones that do, validate them, and move on.
โ Related guides
Keep going โ these companion guides go deeper on related topics.