Schema Markup & Structured Data
What structured data is for
Structured data is machine-readable markup added to a page that explicitly labels what its content *means*, not just how it displays. A page might visually show a recipe's ingredients, cook time, and star rating, but without structured data a search engine's crawler sees only unstructured HTML and has to guess at the meaning. Schema.org is the shared vocabulary (jointly maintained by Google, Bing, Yahoo, and Yandex) that defines standardized types — Article, Product, FAQPage, Organization, Review — and the properties each type can carry, so any search engine parsing the markup interprets it the same way.
JSON-LD is the format to use
Schema.org vocabulary can be implemented in three syntaxes — Microdata (inline HTML attributes), RDFa, or JSON-LD (a JSON script block) — but Google explicitly recommends JSON-LD, and it's the format the overwhelming majority of modern implementations use. JSON-LD's advantage is separation: it lives in a single <script type="application/ld+json"> block anywhere in the page (commonly the <head>), independent of the visible HTML structure, so you can add, edit, or generate it programmatically without touching your page's markup or risking broken Microdata attributes tangled through the DOM.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "A/B Testing & Statistical Significance for Marketers",
"author": {
"@type": "Person",
"name": "Sadullah Khan"
},
"datePublished": "2026-09-01",
"dateModified": "2026-09-15",
"image": "https://sadullah.online/og/ab-testing.jpg",
"publisher": {
"@type": "Organization",
"name": "sadullah.online",
"logo": {
"@type": "ImageObject",
"url": "https://sadullah.online/logo.png"
}
}
}
</script>Common schema types and what they unlock
Different schema types exist to describe fundamentally different kinds of content, and each is eligible for different rich result treatments in search:
- Article / BlogPosting / NewsArticle — blog and editorial content; can unlock the Top Stories carousel and rich article cards.
- Product — product pages; enables price, availability, and review-star rich snippets directly in search results.
- FAQPage — a list of question/answer pairs; can render an expandable FAQ accordion directly in search results (Google has restricted this eligibility to authoritative government/health sites in recent updates, so check current guidelines before relying on it).
- Review / AggregateRating — star ratings attached to a product, business, or article.
- Organization / LocalBusiness — entity information (name, logo, address, hours) that feeds Knowledge Panel data.
- BreadcrumbList — site hierarchy, rendering breadcrumb trails in search results instead of a raw URL.
- HowTo — step-by-step instructional content (also currently deprecated from rich results for most sites, per Google's 2023 update — a reminder that rich-result eligibility changes over time even when the schema type itself remains valid).
Schema types and their search result impact
| Schema type | Typical rich result | Current eligibility notes |
|---|---|---|
| Article | Top Stories carousel, article card | Requires Google News/Discover eligibility for full effect |
| Product | Price, availability, star rating in results | Widely supported, high impact for ecommerce |
| FAQPage | Expandable Q&A accordion | Restricted mainly to government/health sites (2023+) |
| Review/AggregateRating | Star ratings | Must reflect genuine, verifiable reviews — misuse is penalized |
| BreadcrumbList | Breadcrumb trail instead of URL | Broadly supported, low risk, easy win |
| HowTo | Step-by-step rich result | Deprecated from most rich results (2023 update) |
Structured data is a hint, not a guarantee
Validating and testing
Two tools matter here: Google's Rich Results Test (search.google.com/test/rich-results) checks specifically whether a page's markup is eligible for a rich result type Google currently supports, and Schema.org's own Validator (validator.schema.org) checks whether markup is technically valid against the full vocabulary spec, independent of what Google chooses to render. Running both matters because markup can be perfectly valid schema.org syntax while still being ineligible for any current Google rich result — the two questions are different.
Implementation at scale
On a template-driven site (an ecommerce catalog, a blog with hundreds of posts), schema shouldn't be hand-written per page — it should be generated programmatically from the same data source that renders the page content (a CMS field, a product database record), so the JSON-LD block stays in sync automatically as content changes. The most common structured-data bug at scale isn't malformed syntax; it's markup that silently drifts out of sync with the visible page (e.g. a price shown in JSON-LD that no longer matches the actual displayed price after a sale ends), which both violates guidelines and risks losing rich result eligibility.
What's next
Structured data feeds search engines a machine-readable layer of page metadata — a similar 'feed the platform structured signals' pattern shows up in how Meta's Conversions API sends server-side event data to improve ad targeting accuracy.
Next: Facebook Ads Pixel & Tracking →
I build these systems professionally.
Whether it's a RAG pipeline, analytics migration, or AI workflow — let's talk.