Structured data is a machine-readable description of what a page is about, embedded in the page itself. A human reading your product page knows it's a product, with a price, in stock, rated four stars. A search engine has to infer that from the visible text and hope it gets it right. Structured data removes the guesswork: it states, in a vocabulary the search engine already understands, "this is a Product, the price is 49.00 AUD, the AggregateRating is 4.2 from 213 reviews."
The payoff is not a ranking boost. Google has been consistent on this for years — structured data is not a ranking factor the way links or content quality are. The payoff is rich results: the enhanced search listings that occupy more space than a standard result. A recipe with a photo and a star rating, an article with a thumbnail, a product showing price and availability, a breadcrumb trail instead of a raw URL. Those listings tend to earn a higher click-through rate, and CTR is the lever structured data actually pulls.
The Three Formats
There are three syntaxes for marking up structured data. They express the same Schema.org vocabulary in different ways.
- JSON-LD — a block of JSON inside a
<script type="application/ld+json">tag. It can live in the<head>or the<body>. The data is kept entirely separate from the visible HTML. - Microdata — attributes (
itemscope,itemtype,itemprop) sprinkled through your existing HTML elements, wrapping the visible content. - RDFa — similar to Microdata, an HTML5 extension using attributes like
vocab,typeof, andpropertyon existing markup.
Google recommends JSON-LD, and you should use it. The reason is practical: because the markup is a self-contained block rather than attributes woven through your template, you can generate it server-side and edit it without touching presentation. Microdata and RDFa entangle the data with the layout, so every template change risks breaking the markup. JSON-LD keeps the two concerns apart. Google will read all three; pick the one that won't rot.
Schema.org Vocabulary Basics
Schema.org is the shared vocabulary that all the major search engines agreed on. It defines a hierarchy of types (Thing → CreativeWork → Article, or Thing → Product) and the properties each type can carry. A JSON-LD block has three moving parts:
@context— almost always"https://schema.org". It tells the parser which vocabulary the keys come from.@type— the kind of thing this is:Article,Product,FAQPage,Organization, and so on.- Properties — the key-value pairs describing the thing:
name,headline,price,author. Properties can nest other typed objects (an Article'sauthoris itself aPersonorOrganization).
A Concrete Example
Here is the JSON-LD this article uses (every post on this site carries Article markup, and several carry FAQPage markup too). Note how author and publisher are nested Organization objects, not bare strings:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Structured Data and Schema.org: How to Earn Rich Results",
"description": "A practical guide to structured data and Schema.org.",
"datePublished": "2026-05-22",
"dateModified": "2026-05-22",
"author": {
"@type": "Organization",
"name": "ModusOp",
"url": "https://modusop.app"
},
"publisher": {
"@type": "Organization",
"name": "ModusOp",
"url": "https://modusop.app"
},
"mainEntityOfPage": "https://meta-tag-checker.com/blog/structured-data-schema-seo/"
}
</script>
An FAQPage follows the same shape but lists questions and answers as nested objects:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Does structured data improve rankings?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Not directly. It makes a page eligible for rich results, which can lift click-through rate."
}
}]
}
</script>
That's the whole mental model: pick a @type, fill the properties that match what's on the page, nest typed objects where the vocabulary expects them.
High-Value Schema Types
You don't need to learn the entire Schema.org vocabulary — it runs to hundreds of types. A handful cover most of the useful cases:
- Organization — your business identity: name, logo, social profiles, contact points. Helps Google build the knowledge panel for your brand. Put it on the homepage.
- WebSite — site-level metadata. Add a
potentialActionof typeSearchActionand you become eligible for the sitelinks search box (a search field rendered directly inside your search listing). - BreadcrumbList — the navigation trail. Earns the breadcrumb display that replaces the raw URL in the result, which reads far better and signals site structure.
- Article (and
NewsArticle,BlogPosting) — for editorial content. Feeds headline, author, date, and thumbnail into article rich results and Top Stories eligibility. - Product — the workhorse for e-commerce. Combine it with a nested
Offer(price, currency, availability),AggregateRating(average score and review count), and individualReviewobjects to surface price, stock, and stars in the listing. - FAQPage — a list of questions and answers drawn from the page.
- HowTo — step-by-step instructions with optional images per step.
- Event — name, start and end dates, location, ticket offers. Drives the event listing and date display.
- LocalBusiness — a more specific Organization for physical businesses: address, opening hours, geo-coordinates, price range. Important for local search.
- Recipe — ingredients, cook time, nutrition, ratings. Among the richest result types Google renders, with photo, time, and stars.
The Rules That Keep You Out of Trouble
Structured data is a description of the page, not a wishlist. The single rule that underpins everything: the markup must reflect content that is actually visible on the page. A few consequences worth internalising:
- Don't mark up content that isn't there. If your FAQ schema lists ten questions, those ten questions and answers must appear on the rendered page. Marking up hidden, collapsed-but-absent, or fabricated content is a content guidelines violation.
- Don't invent ratings or reviews. An
AggregateRatingof 4.9 with no real reviews behind it is exactly the kind of thing that earns a manual action — a human reviewer at Google penalising the site. That removes your rich results and can dent rankings. - Mark up the main content, not navigation or ads. The structured data should describe the primary subject of the page.
- Keep it specific and accurate. Wrong prices, stale availability, mismatched dates — all undermine trust and can disqualify the page from enhancements.
Follow Google's published content guidelines for each rich result type. They're specific about what's required and what's prohibited, and they're the document that gets cited when a manual action lands.
Eligibility Is Not a Guarantee
Valid markup makes your page eligible for a rich result. It never guarantees one. Google decides at query time whether to render the enhancement, based on its own assessment of quality, relevance, and the searcher's intent. You can have flawless, fully validated Product markup and still see a plain listing. Valid markup is a necessary condition, not a sufficient one — treat rich results as something you qualify for, not something you switch on.
A Note on Deprecated Types
The set of rich result types Google renders is not fixed — it changes, and not always in your favour. In 2023 Google substantially restricted FAQ rich results, limiting them to a small set of authoritative government and health sites, and largely deprecated HowTo rich results around the same time. Sites that had built their listings around those enhancements watched them quietly disappear.
The markup is still valid Schema.org and worth including for general machine-readability, but don't assume any given type still produces a visible rich result. Before investing effort in a particular enhancement, check Google's current Search Central documentation for which structured data features are actively supported. What was a reliable win two years ago may render nothing today.
How to Test and Validate
Three tools, each answering a different question:
- Google Rich Results Test. Paste a URL or a code snippet and it tells you which rich result types the page is eligible for, plus any errors or warnings specific to Google's requirements. This is the one that answers "will this earn an enhancement?"
- Schema Markup Validator (
validator.schema.org). The vendor-neutral validator. It checks your markup against the Schema.org spec itself — broader than Google's view, useful for catching malformed JSON or invalid property names regardless of which search engine consumes it. - Search Console "Enhancements" reports. Once a page is live and crawled, Search Console reports per-type coverage — how many pages have valid Product, Breadcrumb, FAQ markup, and which ones have errors. This is your ongoing monitor; the two testers above are for pre-launch checks.
Run new markup through the Rich Results Test before you ship it, validate the syntax with the Schema Markup Validator if anything looks off, then watch the Enhancements reports for drift after launch.
Where Meta Tags Fit In
Structured data lives alongside the rest of your machine-readable signals — the document head and the JSON-LD blocks beside it. It works in concert with your title tag, meta description, and Open Graph tags: the title and description shape the text of your listing, structured data shapes the enhancements around it, and Open Graph shapes how the page looks when shared. Separate systems, one shared job — making the page legible to machines.
That's why Meta Tag Checker surfaces JSON-LD presence among the other head elements when you run a page. A quick check tells you whether a page is even shipping structured data before you go deeper with the Rich Results Test — and it flags the title, description, canonical, and Open Graph tags in the same pass. If Meta Tag Checker reports no JSON-LD on a page that should have it, that's your first clue something didn't render.
The Production Habit
For new pages:
- Pick the most specific
@typethat fits the page, and only include properties backed by visible content. - Use JSON-LD, generated server-side from the same data that renders the page — so the markup can't drift from what's on screen.
- Run every new template through the Rich Results Test before launch.
- Never fabricate ratings, reviews, or content to qualify for an enhancement.
- Confirm the markup actually shipped with Meta Tag Checker or View Source.
For existing sites:
- Audit which templates carry structured data and which don't — product, article, and category pages are the usual priorities.
- Check the Search Console Enhancements reports for errors and act on them.
- Re-verify against Google's current documentation after any algorithm or rich-result change, since supported types come and go.
- Re-audit after any template refactor — markup that lived through a redesign is markup worth re-testing.
Structured data is low-risk, moderate-effort, and occasionally high-reward. It won't lift your rankings, but a well-marked-up page that earns a richer listing quietly out-clicks the plain results sitting next to it — and that's a margin worth claiming.