Schema Markup

No Comments
Schema markup

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.
Diagram showing a json-ld product markup block on the left feeding a rich result on the right with star rating, review count, price, and availability shown in the search listing.
A JSON-LD Product block tells the engine what the page is, which can surface stars, price, and availability in the listing.

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 typeRich result eligibilityWorth implementing?
ProductPrice, availability, rating stars, shipping info in the listingYes, highest-impact type in e-commerce, full stop
RecipeImage, rating, cook time; recipe carousel eligibilityYes, essential for food sites
Article / NewsArticleHeadline and image treatment in Top Stories and DiscoverYes for publishers; low effort in most CMSs
LocalBusinessFeeds knowledge panel data (hours, address)Yes for any business with a physical location
EventEvent details in search and the events experienceYes if you run dated events
JobPostingInclusion in the Google jobs experienceYes for career pages, practically mandatory
VideoObjectVideo thumbnails, key momentsYes where video is core content
BreadcrumbListBreadcrumb trail replaces raw URL in the snippetYes, cheap and near-universal
FAQPageRestricted since August 2023 to well-known government and health sitesOnly for entity clarity and AI parsing, not for SERP features
HowToDeprecated, Google retired HowTo rich results in 2023No SERP payoff; skip unless you have another consumer for it
Organization / PersonNo rich result; feeds the knowledge graph and brand panelsYes, once, site-wide, it's your entity anchor

How to check it on your own site

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Subscribe to our newsletter!

More from our blog