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."
| Factor | What it means | Documented in |
|---|---|---|
| Query, device, and location | Google tailors the result format to what it thinks serves that specific search, including search history and device type | General Structured Data Guidelines |
| Content quality | Structured 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 valid | General Structured Data Guidelines |
| Policy compliance | Violating a quality guideline can block display, or get the markup flagged as spam | General Structured Data Guidelines |
| Google's own preference | In some cases Google decides a plain text result serves the user better than any enhanced format, regardless of eligibility | General 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.
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.
| Date | What changed | Source |
|---|---|---|
| Sept 2019 | Self-serving review rich results restricted for businesses reviewing themselves | Search Engine Land |
| Aug 2023 | HowTo rich results limited to desktop; FAQ rich results restricted to a small set of gov/health sites | Google Search Central Blog |
| Oct-Nov 2024 | Sitelinks search box removed from Search entirely, confirmed no ranking impact | Search Engine Journal |
| June 2025 | Seven structured data types retired (Book Actions, Course Info, Claim Review, Estimated Salary, Learning Video, Special Announcement, Vehicle Listing), citing low real-world use | Search Engine Journal |
| May 2026 | FAQ rich results removed from Search entirely, four years after the 2023 restriction | Google 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?
Does fixing every warning in the Rich Results Test increase my odds of a rich result?
Has Google ever explained exactly how often valid schema turns into a shown rich result?
If Google removes a rich result type, should I remove the matching schema?
Which report should I actually check first: Rich results or Performance?
Related articles
Job Posting Schema Markup: What Google for Jobs Actually Requires
Five properties get a job posting into Google for Jobs. A sixth one, easy to skip, is the reason most listings that vanish were never removed by the site that published them.
Structured DataFAQ Schema in 2026: What Google's Deprecation Actually Changed
Google stopped showing FAQ rich results in May 2026, four years after quietly restricting them. Here's what changed, what to do with your existing markup, and why the AI-citation argument for FAQ schema doesn't hold up.
Structured DataProduct Schema Price: How to Add It Without Breaking Your Listings
The price fields Google actually checks, how to markup a price range across sellers, and the mismatch that quietly kills a listing.
