
AI Summary
Schema markup is code added to a page that labels its content using the Schema.org vocabulary, so a search engine is told what each element is rather than left to guess. It is the entry ticket for rich results, which can lift your click through rate without your ranking moving at all.
- Schema.org is the shared vocabulary; schema markup applies it to a real page; JSON-LD is the format Google recommends.
- High value types include Product, Recipe, Article, LocalBusiness, Event, JobPosting, and BreadcrumbList.
- Every marked up value must match content the user can actually see, or you risk a structured data manual action.
- Validate with the Rich Results Test and the Schema Markup Validator, and confirm JavaScript injected markup survives rendering.

Schema markup is code added to a page that labels its content using the Schema.org vocabulary, so a search engine knows this number is a price, this string is a recipe's cook time, this block is a job posting. It's the difference between Google guessing what your page is about and Google being told, and it's the entry ticket for rich results, which can lift your click-through rate without your ranking moving an inch.
Vocabulary first, format second
People conflate two separate things. Schema.org is the vocabulary: a shared dictionary of types (Product, Article, Recipe, LocalBusiness, Event, over 800 of them) and the properties each type accepts, maintained jointly by Google, Microsoft, Yahoo and Yandex since 2011. Schema markup is the act of applying that vocabulary to a real page. The vocabulary tells you a Product can have an offers property; the markup is you actually declaring that your trail shoe costs $120.
The format you write it in is a third thing entirely. Google accepts Microdata and RDFa, but the format that won is JSON-LD, a self-contained script block that never touches your visible HTML. This page covers what to say; the JSON-LD entry covers how to say it.
A real example
Here's a Product markup block the way it should actually look on a live e-commerce page, nested Offer, real currency, a rating backed by genuine reviews:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Ridgeline Trail Running Shoe",
"image": "https://example.com/img/ridgeline-blue.jpg",
"description": "Lightweight trail shoe with 6mm lugs and a rock plate.",
"brand": { "@type": "Brand", "name": "Ridgeline" },
"offers": {
"@type": "Offer",
"price": "120.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://example.com/shoes/ridgeline-trail"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "212"
}
}
</script>Every value in that block must describe content a user can actually see on the page. Mark up a 4.6 rating that appears nowhere on the page and you're violating Google's structured data guidelines, that's manual action territory, not a growth hack.
Which types are worth your time
Not all schema types pay off equally. Some unlock a visible rich result, some feed entity understanding quietly, and a few used to pay off but Google has since pulled the plug. Here's the honest map as of 2026:
| Schema type | Rich result eligibility | Worth implementing? |
|---|---|---|
| Product | Price, availability, rating stars, shipping info in the listing | Yes, highest-impact type in e-commerce, full stop |
| Recipe | Image, rating, cook time; recipe carousel eligibility | Yes, essential for food sites |
| Article / NewsArticle | Headline and image treatment in Top Stories and Discover | Yes for publishers; low effort in most CMSs |
| LocalBusiness | Feeds knowledge panel data (hours, address) | Yes for any business with a physical location |
| Event | Event details in search and the events experience | Yes if you run dated events |
| JobPosting | Inclusion in the Google jobs experience | Yes for career pages, practically mandatory |
| VideoObject | Video thumbnails, key moments | Yes where video is core content |
| BreadcrumbList | Breadcrumb trail replaces raw URL in the snippet | Yes, cheap and near-universal |
| FAQPage | Restricted since August 2023 to well-known government and health sites | Only for entity clarity and AI parsing, not for SERP features |
| HowTo | Deprecated, Google retired HowTo rich results in 2023 | No SERP payoff; skip unless you have another consumer for it |
| Organization / Person | No rich result; feeds the knowledge graph and brand panels | Yes, once, site-wide, it's your entity anchor |
How to check it on your own site
- Run your key templates (one product page, one article, homepage) through the Rich Results Test at search.google.com/test/rich-results. This checks Google eligibility specifically, it only reports on types Google actually uses.
- Run the same URLs through the Schema Markup Validator at validator.schema.org. This checks vocabulary correctness for everything, including types Google ignores. A page can pass one and fail the other.
- Open Search Console → Enhancements (and the Shopping tab for Product). These reports show what Google found at scale across your site, with item counts, errors, and warnings, errors kill eligibility, warnings just cap it.
- Spot-check that the values in the markup match what's rendered on the page. Validators verify syntax, not honesty. A price that went stale in the markup while the page shows a sale price is a mismatch only a human catches.
- If your markup is injected by JavaScript, confirm it survives rendering: URL Inspection in Search Console → View crawled page → search the rendered HTML for
ld+json.
Common mistakes
- Marking up content that isn't on the page. The single most common guideline violation found in audits: aggregate ratings with no visible reviews, FAQ markup for questions that appear nowhere. Fix: markup mirrors the page, always.
- Site-wide markup pasted on every URL. LocalBusiness or aggregateRating stamped into the global footer means every blog post claims to be a rated business. Fix: Organization on the homepage or about page; page-level types only where they apply.
- Wrong type selection. A category page marked up as Product (it's a list, use ItemList), a service page marked up as Product to chase stars. Fix: pick the type that describes what the page is, not the rich result you want.
- Required properties missing, nobody notices. Structured data fails silently, no error page, no ranking drop, just no rich result. Fix: check the type's required-property list in Google's documentation, then confirm in the Enhancements report.
- Set-and-forget rot. Templates change, markup doesn't. Prices drift, author names change, and the markup quietly lies. Fix: generate markup from the same data source that renders the page, and re-validate after every template release. When rich results stop showing, work through a structured debugging process instead of re-guessing.
FAQ
Does schema markup improve rankings?
Not directly, and Google has said so repeatedly. It improves eligibility for rich results, which can improve click-through rate, and it helps search engines and AI systems disambiguate your content. Treat it as a presentation and comprehension layer, not a ranking lever.
Which format should I use?
JSON-LD, in almost every case. It's Google's stated recommendation, it doesn't tangle with your visible HTML, and it's the easiest to template and maintain. Microdata still validates fine, but there's no reason to start a new implementation with it.
How much markup is too much?
Mark up what the page genuinely is and stop. Stacking six loosely-applicable types on one URL doesn't multiply anything, it muddies the entity signal and increases the odds one of them violates a guideline. One primary type per page, plus structural helpers like BreadcrumbList, covers nearly every site.
Do AI systems actually use schema markup?
Increasingly, yes. LLM-based crawlers and answer engines lean on structured data to extract facts with confidence, an explicit price beats a scraped one. That's a reason to keep FAQPage and other "no rich result" types around even after Google stopped rewarding them visually.
Do I have to write it by hand?
No. A schema markup generator gets you a valid starting block; your job is wiring it to real page data so it never drifts out of date.
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.







