MarTechQuick
Intermediate

Schema Markup & Structured Data

12 min read

Learn
Quick Reading
Estimated 12 mins
Prereq
Intermediate
Basic ML concepts helpful
Interactive
Static Playbook
Static guide & reference tables

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.

article_schema.json
json
<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 typeTypical rich resultCurrent eligibility notes
ArticleTop Stories carousel, article cardRequires Google News/Discover eligibility for full effect
ProductPrice, availability, star rating in resultsWidely supported, high impact for ecommerce
FAQPageExpandable Q&A accordionRestricted mainly to government/health sites (2023+)
Review/AggregateRatingStar ratingsMust reflect genuine, verifiable reviews — misuse is penalized
BreadcrumbListBreadcrumb trail instead of URLBroadly supported, low risk, easy win
HowToStep-by-step rich resultDeprecated from most rich results (2023 update)

Structured data is a hint, not a guarantee

Adding valid schema markup makes a page *eligible* for a rich result — it never guarantees one. Google's algorithms independently decide whether to render the enhanced result, and eligibility criteria (content quality, E-E-A-T signals, whether the page matches the query) change frequently. Markup that misrepresents the visible page content (e.g. fake review stars) violates Google's structured data guidelines and can trigger a manual action, not just a missed rich result.

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.

Need custom AI or MarTech setup? Let's build together.