Someone asked me last week why their recipe page had a nice photo, clear steps, and still didn't show as a rich result in search. The problem wasn't the recipe. It was invisible to Google. No structured data, no rich result. And that's what schema markup fixes.
If you run a website and you've heard the term "schema markup" thrown around without a clear explanation, this is for you. I'll walk through what it is, why it still matters, and how to add it without breaking your site.
Key Takeaways
- Schema markup is a standardized vocabulary of tags you add to your HTML so search engines and AI tools can read your content correctly.
- JSON-LD is the format you should use — it's the one Google recommends and the easiest to maintain.
- A handful of types cover most beginner needs: Article, Product, FAQ, LocalBusiness, and Breadcrumb.
- Validation is not optional. A single typo can silently kill your rich result.
- Schema is still relevant in 2026. AI Overviews and generative search tools lean on structured data to pull clean answers.
What is schema markup, explained simply
Think of it this way. Your HTML tells a browser how to display a page. Schema tells a machine what the page means. A recipe page and a news article can look identical structurally. Schema is what separates them.
Formally, schema markup is a shared vocabulary of tags — defined on schema.org — that you add to your HTML so search engines, and increasingly AI systems like ChatGPT, can understand and classify your content. It's not a ranking trick. It's a translation layer.
Why this matters more than you think
Here's the thing: search engines don't read your page like a human does. They parse it. Without schema, a search engine has to guess whether "1 hour" on your page is a cooking time, a delivery estimate, or a duration for a video. With schema, you tell it directly. That distinction decides whether you show up as a rich result — a star rating, a recipe card, an FAQ accordion — or as a plain blue link.
Schema was originally a collaboration between Google, Bing, Yahoo, and Yandex to create one shared vocabulary instead of competing formats. That agreement is why schema.org still works across every major engine today.
Types of schema markup worth knowing
There are hundreds of types on schema.org. You don't need most of them. For a beginner site, five cover the vast majority of cases:
- Article — for blog posts and news content.
- Product — price, availability, reviews.
- FAQ — question-and-answer pairs, often shown as an accordion in results.
- LocalBusiness — address, hours, and contact details for a physical location.
- Breadcrumb — the trail of links showing where a page sits in your site structure. Small thing, but it changes how your URL looks in search results.
Picking the right one is less about ambition and more about honesty. If your page isn't a product page, marking it up as one won't help — Google will ignore it at best, and it can be treated as misleading at worst. Match the schema to what the page actually contains.
Can you give me an example of schema markup?
Yes — and this is where most tutorials get vague, so let's be concrete. Here's a minimal JSON-LD block for a blog article:
{"@context":"https://schema.org","@type":"Article","headline":"Your headline here","author":{"@type":"Person","name":"Your name"},"datePublished":"2026-01-15"}
And here's an FAQ example, since that's often the first one people try:
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is schema markup?","acceptedAnswer":{"@type":"Answer","text":"A vocabulary of tags that helps search engines understand your content."}}]}
Notice the pattern: @context always points to schema.org, @type declares what kind of thing you're describing, and the rest are properties specific to that type. Once you see that structure, most examples start looking familiar.
How to create schema markup
You don't need to write it from scratch. You have three realistic options:
- Use a generator. Tools like Google's Structured Data Markup Helper or the free generators built on top of schema.org let you fill in a form and get the code back. Fast, but you still need to understand the output.
- Install a plugin. If you're on WordPress, SEO plugins like Yoast or Rank Math generate schema automatically for posts, pages, and products.
- Write it by hand. The most control, and honestly the cleanest once you've done it a few times. JSON-LD is small and readable.
Where to put the code
JSON-LD goes inside a <script type="application/ld+json"> tag, and the standard place to put it is in your page's <head>. Some people place it in the body — Google accepts both — but head placement keeps it tidy and out of the way of your content.
I'll be honest: the first time I added schema to a client site, I pasted the block in the wrong template file and it applied to every page on the site simultaneously. Google flagged the mismatch within a week. Lesson learned — check which template controls the page before you paste anything.
Validate before you ship
This step is where beginners skip ahead and regret it. Run your page through Google's Rich Results Test to see if the markup is valid and eligible for rich results. Then cross-check with the Schema Markup Validator, which catches errors the Rich Results Test ignores — technically valid code that doesn't map to a recognized type. Two tools, five minutes, saves you a week of wondering why nothing happened.
JSON-LD vs Microdata vs RDFa
Three formats exist for adding schema. The differences matter less than you'd think, because one has clearly won.
| Format | Where it lives | Best for |
|---|---|---|
| JSON-LD | Separate <script> block | Nearly everyone; Google's recommended format |
| Microdata | Inline in your HTML | Legacy sites; harder to maintain |
| RDFa | Inline attributes | Rare; mostly older implementations |
My take: use JSON-LD and don't look back. It keeps your markup separate from your content, so updating one doesn't risk breaking the other. Microdata and RDFa tangle the two together — every site I've migrated away from Microdata got simpler to maintain afterward.
Is schema still relevant?
Short answer: more than it was five years ago, and the reason has shifted.
The classic case for schema was rich results in traditional search. That still holds. But the newer case is AI. Tools like ChatGPT and Google's AI Overviews draw on structured data to produce clean, factual answers. When an AI system scans your page, structured data is the difference between it guessing what you mean and it knowing.
Does that guarantee you'll be cited? No. Nothing guarantees that. But a page without schema is a page working against its own clarity — and clarity is the one thing generative search rewards.
Sites I've worked on that added FAQ and Article schema consistently saw better visibility in these AI-assisted surfaces, even when their traditional rankings barely moved. The schema didn't change their authority. It just made them easier to read.
How to add schema markup in WordPress
The easiest path for most WordPress users is a plugin. Rank Math and Yoast both ship with automatic schema for the standard types, and both give you a field to add custom JSON-LD when you need something they don't cover.
What I'd avoid: layering multiple schema plugins at once. Two plugins generating FAQ schema on the same page will conflict, and Google will pick one — usually not the one you wanted. Pick a single plugin, disable schema output from the others, and check the rendered page source to confirm only one block is present.
The bottom line
Schema markup isn't glamorous. It won't rescue a bad page. What it does is make a good page legible to the machines that decide who sees it — and after years of watching sites get it right and get it wrong, I'd argue that's the whole game. Start with one type. Validate it. Watch what changes.
The search results you're trying to win were never designed for humans alone.