Schema Markup Guide: Rich Results & Structured Data
Structured data is a contract you write with search engines: a machine-readable summary of what a page is about, attached to the page itself. A human reads "Acme Wireless Headphones, $199, 4.7 stars, in stock." A crawler reads prose and guesses. Structured data hands it the same facts as labelled key-value pairs ("price": "199.00", "ratingValue": "4.7", "availability": "InStock"), so there's nothing to guess.
That's the whole idea. Everything else in this guide is detail: which vocabulary to use (schema.org), which syntax to write it in (JSON-LD), what Google actually does with it, and the one thing it does not do.
This is the overview post. For the catalogue of individual types and the rich result each can earn, jump to Schema Markup Types Explained. For the deep, code-level guides, see FAQ schema, HowTo schema, and Product schema.
The one myth to kill first
Structured data is not a ranking factor. Adding schema does not move a page up the results. Google's search liaisons have repeated this for years, and it stays true in 2026. What schema can do is make a page eligible for a richer-looking result: star ratings, a product price, a breadcrumb trail, a recipe card. A better-looking result earns more clicks at the same rank, and the extra traffic is the actual benefit. Rank stays the same; the listing gets more attractive.
So when a tool or a thread tells you "add schema to rank higher," it's collapsing two separate things. Rank is earned by content, links, and relevance. Schema earns appearance eligibility. Keep them separate in your head and you'll make better decisions about where to spend effort.
Three syntaxes, and why JSON-LD wins
Schema.org vocabulary can be expressed three ways. They encode the same facts; the difference is where the markup lives.
| Syntax | Where it lives | Reality in 2026 |
| --- | --- | --- |
| JSON-LD | A <script> block, separate from the visible HTML | Google's explicitly recommended format. Use this. |
| Microdata | itemprop attributes sprinkled through your HTML tags | Works, but couples markup to layout, so every redesign risks breaking it. |
| RDFa | property/typeof attributes on HTML tags | Same coupling problem, rarer, more verbose. |
The case for JSON-LD is maintenance. Microdata and RDFa weave structured-data attributes into the same <span>s and <div>s your designers move around. Change the template and you can silently break the markup. JSON-LD sits in one self-contained block you can generate, inject, and update without touching the layout, which is why every modern CMS and framework emits it.
A minimal JSON-LD block looks like this:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Schema Markup Guide",
"datePublished": "2026-06-17",
"author": { "@type": "Person", "name": "Jane Doe" }
}
</script>
@context points at the vocabulary, @type declares what the thing is, and the rest are properties of that type. That's the entire shape; every schema you ever write is a variation on it.
Where it goes on the page
Put the <script type="application/ld+json"> block in the <head> or anywhere in the <body>; Google reads both. Two rules matter more than placement:
- Render it server-side, or confirm Google sees it after JavaScript runs. If your schema is injected client-side and the crawler only reads the initial HTML, the markup is invisible. This is the single most common reason valid schema "doesn't work." Use the URL Inspection tool's rendered HTML view in Search Console to confirm the block is actually there.
- Match the visible page. Schema must describe what a user can see. Marking up a 4.7 rating that appears nowhere on the page, or FAQs that aren't on the page, is a structured-data policy violation that can earn a manual action. Show it, then mark it up, never the reverse.
How Google actually uses it
Three distinct things happen, and conflating them causes most of the confusion:
- Rich results. For eligible types, Google may render an enhanced listing: Product price and stars, Breadcrumb trail, Recipe card, Event date. "Eligible" is doing real work in that sentence, because Google has steadily pruned which types qualify. FAQ rich results were fully removed in May 2026, and HowTo rich results have been gone since 2023. Marking up FAQs or how-to steps no longer produces any visual treatment in Search; the FAQ and HowTo deep dives explain what those types are still good for.
- Entity understanding.
Organization,sameAs,WebSiteand friends help Google connect your site to a Knowledge Graph entity and tie together your social profiles and brand. - Other consumers. Schema is parsed well beyond Google Search: by other search engines, by Pinterest and email clients, and increasingly by AI answer engines that lift clean facts from your markup. A type with no rich result in Google can still be the cleanest way to feed those systems.
A sane rollout order
You don't need every type. A typical site needs about six:
OrganizationandWebSite: once, sitewide, in a global template.BreadcrumbList: on every non-home page (this one still earns a visible breadcrumb in results).- The single most-specific type per page:
Articleon posts,Producton product pages,LocalBusinesson a location page.
Generate the block with our Schema Generator instead of hand-writing brackets, paste it into Google's Rich Results Test to confirm eligibility, then ship. Re-validate whenever the underlying content changes; a price or availability that drifts out of sync with the page is worse than no markup at all.
Frequently Asked Questions
Does schema markup improve my Google rankings?
No. Structured data is not a ranking signal. Its job is to make a page eligible for a richer-looking result, which can raise click-through at the same position. The traffic gain is indirect; rank itself doesn't change because you added markup.
JSON-LD, Microdata, or RDFa: which should I use?
JSON-LD. Google recommends it, and it lives in a self-contained <script> block instead of being woven through your HTML, so a redesign can't silently break it. Don't mix formats on one page; that risks contradictory data.
Do FAQ and HowTo schema still produce rich results?
No. HowTo rich results were removed in 2023 and FAQ rich results were fully removed in May 2026. The markup is still valid and parsed by other consumers, but neither produces a visual enhancement in Google Search anymore.
Where should the JSON-LD go, head or body?
Either works. What matters more is that Google can see it in the rendered HTML. If you inject schema with client-side JavaScript, verify it appears via Search Console's URL Inspection rather than assuming it does.
Can incorrect schema hurt my site?
Yes. Marking up content that isn't visible on the page (fake ratings, invisible FAQs, prices that don't match) violates Google's structured-data policies and can trigger a manual action. Accurate, page-matching markup is the only safe kind.