Valid schema markup does not guarantee a rich result. A passing test means the tool could read the markup and found the required pieces for the feature it checked. Google still decides whether to show that feature.

That answer is frustrating because the code may be correct. It is also the right place to start. Adding more properties to a valid block will not fix an indexing problem, an unsupported feature, or content that does not meet the quality rules.

Confirm the page before you change it. Run the public URL through the Schema Markup Checker and the official Rich Results Test so you know which layer is already passing.

Valid, eligible, indexed, and displayed are different states

StateWhat it meansWhat it does not prove
ValidThe tested markup passed that tool's checksThat Google will show a feature
EligibleThe page may qualify for a supported featureThat the feature will appear
IndexedGoogle has a version of the page in its indexThat current markup was processed
DisplayedA result received the enhanced appearanceThat every query or device will show it

The markup passes, but the tool checked only its job

The Schema.org Markup Validator checks Schema.org structured data and graph extraction. The Google Rich Results Test checks Google-supported rich-result types and their feature rules.

A clean Schema.org result does not mean Google supports a rich result for that type. A clean Rich Results Test does not promise that Google will choose the feature.

Google may not support the type you used

Schema.org contains far more types and properties than Google's search gallery. Markup can be valid and meaningful without having a matching Google rich result.

Open the current Google structured data gallery. If the feature is not listed, stop waiting for that particular Google display.

Google may not have processed the current page

The public page can change before Google's indexed version changes. Use URL Inspection to check whether the URL is indexed and whether Google can access the rendered page.

Confirm that the canonical URL points where you expect. A page that redirects, declares another canonical, returns an error, or blocks required resources can keep the current markup from being evaluated as planned.

The structured data may not represent the main content

Google's guidelines say the markup should describe the main content of the page and should not be misleading. A Product node hidden inside a broad category article may parse but fail to represent the page's main job.

Use the schema type guide to compare the type with the first screen and primary action.

The marked-up information may be hidden or inconsistent

Questions, reviews, ratings, prices, availability, authors, dates, and other claims should agree with the page. A validator cannot establish that every review is genuine or that a price is current.

Read the page beside the JSON-LD. If the markup says one thing and the page says another, fix the conflict before looking for a display problem.

The page may miss a feature-specific rule

Each supported feature has its own requirements. Product, Article, Event, Recipe, and other types do not share one universal checklist.

Read the current feature guide. Confirm the required properties, content rules, image rules, and any eligibility limits. Do not rely on an old example or a plugin label.

Google may choose a normal result

Google states that a correct implementation does not guarantee display. Its systems may choose a normal text result or another presentation based on the user, device, location, history, result set, and other factors.

A rich result can also appear for some searches and not others. Test observations are snapshots, not permanent page states.

Search Console can confirm impressions, not every decision

When a supported enhancement report exists, use it to watch detected items and problems. Use the Search Performance reports to see pages and impressions. Some rich-result types have filters that help isolate their appearance.

Missing report data is not proof that the markup is absent. Check the rendered page and test the public URL directly.

What to check in order

  1. Fetch the public URL. Confirm a successful response, canonical URL, and rendered JSON-LD.
  2. Check the Schema.org graph. Make sure the types, properties, and identifiers describe the page.
  3. Check feature eligibility. Use the Rich Results Test and the current Google guide for the intended feature.
  4. Compare markup with visible content. Remove unsupported or hidden claims.
  5. Inspect the URL in Search Console. Confirm indexing and Google's selected canonical.
  6. Wait for reprocessing after a real change. Do not keep rewriting a valid block every few hours.
  7. Measure the page, not only the decoration. Watch impressions, clicks, queries, and conversions alongside any rich-result report.

Do not turn valid markup into a slot machine

Randomly adding fields can create new conflicts and make the graph harder to maintain. If the page is valid, accurate, indexed, and eligible, you have completed the part you control.

Keep the markup current. Improve the page for the person who lands on it. Let the rich result remain a possible display, not the reason the content exists.

If the unresolved problem is technical, return to Schema Markup Errors and How to Fix Them. If the open question is AI discovery, continue with What Schema Markup Can and Cannot Do for AI Search.