Schema markup: a practical guide to structured data

Learn what schema markup does, why only Google-supported types earn rich results, JSON-LD vs microdata, and how to add and validate structured data.

A
Aarti Deshpande
Founder-operator who has run SEO for D2C and SaaS brands; writes about rank tracking and agency growth.
Published 2 Jun 2026·7 min read

Schema markup changes how your result looks, not where it ranks

Schema markup is structured data you add to a page so search engines can read its meaning, not just its words. A recipe page can declare its cook time, calorie count, and star rating in a machine-readable format; a product page can declare price, availability, and reviews. The result is not a ranking boost. Schema markup makes a page eligible for rich results: the star ratings, price snippets, and breadcrumb trails you see in Google's listings. Confusing "eligible for a better-looking result" with "ranks higher" is the most common mistake here, and Google states plainly that structured data is not a ranking factor on its own.

That distinction tells you where to spend effort. Only a specific set of types earn visible rich results, and Google controls which ones. Marking up everything on your site is wasted work. The return concentrates in a handful of types; everything else is either invisible to users or feeds machines quietly in the background.

This is one of the more actionable parts of a technical SEO program, because the wins are concrete. You can watch your snippet change in the search results within days of validation, not months.

What schema markup actually does

Search engines parse your HTML to guess what a page is about. Structured data removes the guessing. When you label a block as a Product with a name, price, availability, and aggregate rating, Google does not infer those from surrounding text. You have handed it a clean data object.

Two things happen with that object:

  1. Rich result eligibility. If the type is supported and your markup is valid, the listing becomes eligible for an enhanced appearance. Eligible, not guaranteed. Google decides per query whether to show it.
  2. Entity understanding. Even when no rich result appears, structured data helps engines connect your page to entities (a person, an organization, a product line) and to the Knowledge Graph.

The second point is the underrated one. As Google's AI Overviews and other generative systems summarize pages rather than only link to them, clean structured data gives those systems a reliable description of what you offer. That is a real reason to implement schema on a page that will never show a star rating.

Use JSON-LD, not microdata

There are three syntaxes: JSON-LD, microdata, and RDFa. Use JSON-LD. Google recommends it explicitly, and it is the easiest to maintain.

The reason is separation. JSON-LD is a self-contained script block you drop in the page head or body. It does not tangle with your visible markup the way microdata does, where attributes get sprinkled across div and span tags. When your design team restructures a page, JSON-LD survives untouched. Microdata breaks the moment someone moves a heading.

JSON-LD is also what you can inject cleanly through a tag manager or a server template, which matters when your markup depends on data rendered by JavaScript. If your framework hydrates content client-side, confirm the structured data is present in the served HTML or reliably in the rendered DOM. The same rendering concerns that apply to JavaScript SEO apply here, because Google reads schema from the rendered page.

Only these types earn visible rich results

Here is where the value concentrates. These are the types most sites should implement, roughly in order of how often they pay off:

Schema type What it produces Who it helps
Breadcrumb Navigation path in the listing Almost every site
Product Price, availability, rating snippet E-commerce, SaaS
Review / AggregateRating Star ratings within eligible types Products, local businesses
Article Headline, image, date in news and Discover Publishers, blogs
LocalBusiness Hours, address, phone in local results Physical and service businesses
FAQPage Expandable Q&A, now limited eligibility Government and health info pages
HowTo Step-by-step display where still shown Tutorials

Two cautions. First, Google has sharply narrowed FAQ and HowTo rich results. Since 2023, FAQ snippets show largely for authoritative government and health sites only, and HowTo has been retired on most surfaces. Check the current gallery of supported rich results before you build, because the list changes. Second, everything outside that gallery (Organization, Person, WebSite, and dozens of niche types) still aids entity understanding but produces no visible snippet. Add those where they clarify your site's meaning, but do not expect a search-result change.

For a product catalog, Product plus AggregateRating is where the money is. For a local service business, LocalBusiness plus a clear service area does the heavy lifting, and it pairs naturally with the fixes in a local SEO pass.

The markup must match what users see

This is the rule that gets sites penalized. Structured data has to describe content that is actually visible on the page. If your JSON-LD claims a 4.8 rating from 900 reviews but the page shows no reviews, that violates Google's structured data guidelines and can trigger a manual action that removes all your rich results at once.

Common mismatch traps:

  • Marking up reviews that were never collected, or aggregating third-party reviews as if they were your own.
  • FAQPage markup on questions the visitor never actually sees.
  • Product prices in schema that differ from the price on the page.
  • Marking up content that is entirely hidden. Visible-on-interaction (tabs, accordions) is fine; invisible-entirely is not.

Treat schema as a faithful description, never as an advertisement. If you would not show it to a visitor, keep it out of the markup.

How to add and test schema markup

The workflow is short:

  1. Pick the type from the supported gallery based on the page's purpose.
  2. Generate the JSON-LD. Hand-write it for control, or use a CMS plugin or tag manager. Fill every required property Google lists for the type, plus the recommended ones that improve eligibility.
  3. Add it to the page, ideally server-rendered so it is present on first load.
  4. Validate with the Rich Results Test, which tells you whether the page is eligible for a rich result, not merely whether the syntax parses. The generic Schema.org validator checks syntax but says nothing about Google eligibility, so the Rich Results Test is the one that matters.
  5. Monitor the enhancement reports in Search Console after deployment. They show impressions, errors, and warnings per structured-data type across your indexed pages. Wiring your Search Console data into reporting closes the loop between markup and outcome.

A practical detail: validate a representative template, not every URL. If your product template is correct, every product built from it inherits the fix. Fold this into your regular technical SEO audit instead of treating it as a one-off.

Where schema fits in the bigger picture

Schema markup is a presentation and understanding layer, not a foundation. It only helps pages that are already crawled and indexed. If you have crawling and indexing problems, fix those first, because a rich result on an unindexed page is worth nothing. It also sits alongside the other technical fundamentals: clean XML sitemaps so pages get discovered, correct canonical tags so the right URL earns the snippet, and good Core Web Vitals so the fast page Google prefers is the one carrying your markup.

If you run structured data across a large site, a site audit tool that flags missing or broken schema at scale saves hours over hand-checking templates. DeployFlare surfaces structured-data errors alongside crawl, index, and Core Web Vitals issues in one crawl, so you fix the whole technical layer in a single pass instead of switching between five tools. It runs the same city-level and vernacular SERPs (Hindi, Tamil, Marathi and more) that most Western tools skip, and pricing starts at ₹499/month with UPI and GST billing.

The honest summary: add schema for the seven or so types that produce rich results or that meaningfully clarify your entity to AI-driven engines. Keep it matched to visible content. Validate with the Rich Results Test. Skip the rest. The value is real, but narrow and specific, and pretending otherwise wastes effort you could spend on the fundamentals that actually move rankings.

Frequently asked questions

What is schema markup and how does it work?

Schema markup is structured data you add to a page's HTML so search engines can read its meaning in a machine-readable format: a product's price and rating, an article's author and date, a business's hours. Search engines parse that data object instead of guessing from the page text, which makes the page eligible for enhanced listings (rich results) and helps engines understand what the page is about.

Does schema markup help SEO rankings?

Not directly. Google states that structured data is not a ranking factor on its own. What it does is change how your result can appear (star ratings, price snippets, breadcrumbs), which can lift click-through rate. It also helps search engines and AI-answer systems understand and summarize your page, an indirect benefit that is growing in importance.

What is the difference between JSON-LD and microdata?

JSON-LD is a self-contained script block separate from your visible HTML, while microdata sprinkles attributes across your page's tags. Google recommends JSON-LD because it is easier to add, maintain, and inject through templates or tag managers, and it does not break when your layout changes. Use JSON-LD unless you have a specific reason not to.

What schema types get rich results?

Only types Google explicitly supports, including Breadcrumb, Product, Review and AggregateRating, Article, LocalBusiness, and, where still eligible, FAQPage and HowTo. FAQ and HowTo have been sharply narrowed since 2023, so check Google's current search gallery before building. Types outside the gallery, like Organization or Person, aid entity understanding but produce no visible snippet.

How do I test my structured data?

Use Google's Rich Results Test, which tells you whether a page is actually eligible for a rich result, not just whether the syntax is valid. After deployment, monitor the enhancement reports in Google Search Console to catch errors and warnings across your indexed pages. Validate one representative template rather than every URL, since pages built from the same template inherit the fix.

Keep reading