The symptom

Your JSON-LD is valid — the URL Debugger confirms the structured data parses — yet Google shows no stars, no product box, no FAQ. What is missing?

Why it happens

  • Valid does not mean eligible. Most schema types (WebPage, Article) are not rich-result types — only specific types like Product, Recipe, FAQ, Review, Event can trigger rich results.
  • Eligibility is regional and per-type. Some rich-result features are only available in certain countries or for certain content types.
  • Google must crawl, render, and test the markup before any rich result appears. New markup can sit for days or weeks before Google re-processes the page.
  • The markup is on the page but requires fields Google will not use, or the required properties are missing for the specific rich-result type.

Diagnose it — in order

  1. 1

    Confirm the type is a rich-result type

    Run the JSON-LD Validator on your markup. It checks required schema.org fields and calls out whether the type is eligible for rich results at all.

  2. 2

    Check the page-level context

    Use the URL Debugger: it reports whether the page is indexable, whether Googlebot can render it, and whether the structured data is present in the HTML the server sends.

  3. 3

    Run Google Rich Results Test

    Google Rich Results Test shows eligibility instantly for any rich-result type. It will name the missing field or feature directly.

  4. 4

    Give it time after fixing

    After a fix, request indexing in Search Console. Rich results are not guaranteed even when everything passes — Google decides per page.

How to fix it

  1. 1

    Use a type that can produce rich results

    Product, Recipe, FAQ, Review, Event, BreadcrumbList, Article (with headline + image). If your schema is WebPage-only, nothing will ever render as a rich result.

  2. 2

    Fill required properties, not just valid ones

    For example, FAQ needs the exact question/answer structure; Product needs offers and price. The JSON-LD Validator reports the specific missing fields.

  3. 3

    Keep markup in the server HTML

    If the page is client-rendered, Googlebot can still render it — but slow or JS-heavy pages delay it. Server-rendered JSON-LD in the head is the most reliable.

  4. 4

    Re-check with the debugger

    After editing, re-run the URL Debugger to confirm the updated structured data is in the served HTML, then request indexing.

Free tools that help

Still not sure what your page is sending?

Run your URL through the free URL Debugger — it shows the raw HTML evidence, redirects, headers, and what Googlebot and Facebook each receive.

Debug a URL free