SchemaValid
ENDE
Structured Data

Why Valid Schema Markup Doesn't Guarantee Rich Results

Published: 9 min read
Contents

Your JSON-LD passes the Rich Results Test. Search Console lists the item as valid, no warnings, no errors. And the star rating, the FAQ dropdown, the recipe card, whatever you built the markup for, never shows up. Nothing in the tooling tells you why, because nothing is actually broken. Validation and display are two different checkpoints, and Google's own documentation says so directly: passing the first one makes a page "eligible" for a rich result. It does not make one appear.

Two different words in Google's own documentation

Read Google's General Structured Data Guidelines closely and one word does a lot of quiet work: eligible. Meeting the guidelines makes your content eligible for appearance as a rich result. It does not promise the appearance itself. The companion page, Intro to How Structured Data Markup Works, keeps the two ideas separate on purpose: structured data gives Google "explicit clues about the meaning of a page," and a rich result is one of the ways Google can choose to use those clues, not the automatic outcome of supplying them.

That distinction sounds pedantic until you've spent an afternoon re-checking JSON-LD that was never wrong. If your item already validates, running it through the checker again tells you nothing new. The actual question, whether Google chose to display it for this query, today, is a separate one, and the validator was never built to answer it.

What Google actually weighs before it shows anything

The same guidelines page names the factors, and there are more of them than "is the markup correct."

FactorWhat it meansDocumented in
Query, device, and locationGoogle tailors the result format to what it thinks serves that specific search, including search history and device typeGeneral Structured Data Guidelines
Content qualityStructured data must be a true, non-misleading representation of the page; thin or inaccurate content can be denied the rich result even when the markup is syntactically validGeneral Structured Data Guidelines
Policy complianceViolating a quality guideline can block display, or get the markup flagged as spamGeneral Structured Data Guidelines
Google's own preferenceIn some cases Google decides a plain text result serves the user better than any enhanced format, regardless of eligibilityGeneral Structured Data Guidelines

One real case shows how the "policy compliance" row bites. In September 2019, Google restricted self-serving review rich results: a business marking up glowing reviews of itself, on its own site or in a widget it controls, stopped qualifying. The Review schema still validated. Google simply decided that kind of review didn't belong in a star rating, and pulled the display, not the markup.

From valid markup to a fork in the roadValid structured data feeds into Google's eligibility check, which weighs search query, device, location, content quality, and policy compliance. The check forks into two outcomes: a rich result shown, or a plain text result where the valid markup is simply not used for display. Source: Google Search Central, General Structured Data Guidelines.Valid structureddataGoogle's eligibility checkquery · device · locationcontent quality · policy complianceRich result shownmarkup used for displayPlain text resultmarkup ignored for displayBoth outcomes can happen on the exact same page, on different searches, on different days.Source: Google Search Central, General Structured Data Guidelines (2026)

Two pages can carry byte-identical, fully valid Product schema and land on opposite sides of that fork. One ranks for a query where Google is confident a merchant listing helps; the other ranks for a query crowded enough that Google decides four blue links and no visual clutter serves the searcher better. Same markup, same validator result, different outcome, and nothing about either page's JSON-LD explains the gap.

Google keeps shrinking the list of things that can even show up

Eligibility isn't just about your page. It's also about whether the feature you're eligible for still exists, and Google has been quietly narrowing that list for years.

Even Google reverses itself, occasionally

When Google phased out seven structured data types in June 2025, Book Actions was one of them. Five months later it came back, not because sites complained, but because another Search feature still depended on the same markup. If Google's own retirement list isn't final until it's final, treat any single rich result type as something you're borrowing, not something you own.

The five rows below span seven years of Google doing exactly that: granting a rich result type, then narrowing or pulling it once usage or abuse data came in.

DateWhat changedSource
Sept 2019Self-serving review rich results restricted for businesses reviewing themselvesSearch Engine Land
Aug 2023HowTo rich results limited to desktop; FAQ rich results restricted to a small set of gov/health sitesGoogle Search Central Blog
Oct-Nov 2024Sitelinks search box removed from Search entirely, confirmed no ranking impactSearch Engine Journal
June 2025Seven structured data types retired (Book Actions, Course Info, Claim Review, Estimated Salary, Learning Video, Special Announcement, Vehicle Listing), citing low real-world useSearch Engine Journal
May 2026FAQ rich results removed from Search entirely, four years after the 2023 restrictionGoogle Search Central

That last row has a full write-up of its own, including what it means for markup already on your pages: see FAQ Schema in 2026: What Google's Deprecation Actually Changed. The pattern across all five rows is the same one this article is about: valid markup for a feature that no longer exists, or no longer applies to your site, still validates. It just has nothing left to be eligible for.

Search Console tells you two different things, not one

The Rich result report in Search Console counts valid items: markup that parsed correctly and met the type's required properties. That's a separate report from Performance, where impressions and clicks for a given search appearance actually live. Nothing forces you to look at both. Most people check the first one, see zero errors, and assume the job is done.

It isn't the same question. A page can carry a fully valid Product item and, filtered to that specific rich result type in the Performance report, show zero impressions for weeks. Both reports are correct at the same time. One measures whether Google could use your markup. The other measures whether it did.

Google has never published a single number for how often technically eligible markup actually converts into a shown rich result, across the web or for any one type. If that figure exists internally, it isn't public. A specific percentage attributed to Google for this isn't actually coming from Google.

What to check instead of re-validating your JSON-LD again

The two things worth actually checking

First, read the exact wording in the Rich Results Test: Google states directly that it "does not guarantee that your page will appear exactly as shown here." Second, open Search Console's Performance report, filter by Search appearance to the specific rich result type you're chasing, and look at impressions over the last 90 days, not the Enhancements report, which only tells you the markup is valid.

If both come back empty, that's the honest answer: your markup is fine, and Google isn't choosing to use it right now, for reasons it doesn't publish per page. Editing the JSON-LD again won't change a decision that never depended on the JSON-LD in the first place.

What can move the needle is the row your validator can't check: making the underlying content clearly the best answer for the query you actually want the rich result on. That's the one lever Google has repeatedly said it weighs alongside eligibility. A Product schema page competing for a saturated commercial query needs a stronger case for a merchant listing than one competing for a narrower, less contested search, no matter how clean either one's schema is. Structured data for other types works the same way, including job postings: valid markup earns eligibility, not the placement itself.

If you're not sure your markup is even valid in the first place, that part is easy to rule out: run the page through our Schema Validator and confirm the item parses before you spend any more time on the harder, unmeasurable question of why Google isn't showing it.

Frequently asked questions

My structured data has zero errors in Search Console. Why is there still no rich result?
Zero errors means your markup is valid, which Google's own guidelines call eligible, not guaranteed. Display also depends on the search query, device, content quality, and policy compliance. A page can sit at zero errors in the Rich result report and zero impressions in the Performance report at the same time, and both numbers are correct.
Does fixing every warning in the Rich Results Test increase my odds of a rich result?
It removes technical reasons Google would refuse to display the result, which matters, but it doesn't touch the other factors Google documents: query context, content quality, and its own judgment that a plain result might serve the searcher better. Warnings are worth fixing regardless; they just aren't the whole story.
Has Google ever explained exactly how often valid schema turns into a shown rich result?
No. Google has not published a figure for that, for any rich result type or across the web generally. If a source states a specific percentage for how often eligible markup gets displayed, that number isn't coming from Google.
If Google removes a rich result type, should I remove the matching schema?
Not automatically. Google's own documentation says unused structured data doesn't harm a site. FAQPage is the clearest example: the rich result is gone as of May 2026, but the schema type itself is still valid and costs nothing to leave in place.
Which report should I actually check first: Rich results or Performance?
Rich results (the Enhancements section) tells you whether your markup is valid. Performance, filtered to that specific search appearance type, tells you whether Google has actually shown it. They answer different questions, so check both rather than treating a clean Enhancements report as proof the rich result is live.

Related articles