Skip to content

Turns Out · · 6 min read

Google can't see my FAQ schema (it can — it just won't say)

A flawless FAQPage graph, an empty test result, and the August 2023 policy change everyone forgets at exactly the wrong moment.

The ticket read, roughly: "FAQ schema not detected on the Craft CMS page. Did we break the markup?" The page was our own Craft CMS development service page. The person filing the ticket was our founder, Dima Ogrenich. When the report about the cobbler's shoes comes from the cobbler himself, you drop what you're doing.

The page carries a single JSON-LD @graph with three nodes: a Service, a FAQPage with 7 questions, and a BreadcrumbList. We wrote that graph. We reviewed it. It's the kind of markup we'd show off.

First instinct: maybe the HTML Google sees isn't the HTML we shipped. So we pulled the page twice — once through the CDN cache, once straight from origin. Same @graph in both responses, byte for byte. And before anyone asks: the JSON-LD sits in the <body>, which Google's documentation explicitly allows. Nothing exotic, nothing broken.

Then we pasted the URL into the Rich Results Test, Google's official checker, and got the result that started all this: Breadcrumbs — detected, valid. FAQ — nothing. Not an error, not a warning, not an "invalid item." The tool behaved as if the FAQPage block simply wasn't on the page.

That nothing is the whole story.

What the Rich Results Test actually tests

Here's the mental model most developers carry, us included on a bad day: the Rich Results Test is a structured data validator. You paste a URL, it shows you what Google can read.

That model is wrong, and it's been wrong since August 2023. The Rich Results Test reports rich-result-eligible types. Only those. It isn't answering "what markup does this page have?" It's answering "what rich results could this page win?"

In August 2023, Google announced changes to HowTo and FAQ rich results. HowTo got restricted to desktop. FAQ got it worse: the rich result now only appears for a small club of sites.

“Well-known, authoritative government and health websites.”
Google Search Central, August 2023 — defining who still gets FAQ rich results

We're a web development agency. By Google's taxonomy we are neither a government nor a health website — and neither is your SaaS, your store, or your B2B site. So our FAQPage markup is valid, parsed, and permanently ineligible. Zero eligible FAQ rich results means zero FAQ entries in the test report. The tool never claimed the markup was missing. It just doesn't report on markup that can't win anything.

And here's the detail that makes the false alarm so convincing: the breadcrumbs showed up. BreadcrumbList is still an eligible type, so it appears in the report. The tool has clearly read your page and clearly found *some* structured data. The natural conclusion — that the missing FAQ must be your bug — is exactly the wrong one.

The Search Console wrinkle

Round two of the panic usually happens in Search Console. You open URL Inspection, check what Google has indexed, and the FAQ markup isn't there either. Now two official Google tools agree your schema doesn't exist. Case closed?

No — because URL Inspection shows the last indexed snapshot of the page, not the live page. If you deployed the structured data on Tuesday and Google last crawled the page the previous Friday, the inspection panel is faithfully showing you Friday's HTML. Your new markup is invisible there until the next crawl. "Request indexing" speeds that up; patience also works.

Put the two tools together and you get a lovely machine for confirming a bug that doesn't exist. The Rich Results Test says "no FAQ" because you're not eligible. URL Inspection says "no FAQ" because it's looking at last week. Both are technically correct. Neither is telling you what you think it's telling you.

So why keep shipping FAQPage markup at all?

Fair question. If the visual reward is reserved for the CDC and the DMV, why spend the bytes? Google's own announcement even noted there's no need to remove the markup — unused structured data doesn't cause problems in Search, it just has no visible effect. Faint praise, as reasons to keep something go.

Here's ours instead. File it under professional judgment, not a Google promise:

  • Bing still shows FAQ rich results. Smaller market, real market. The markup you already wrote keeps earning there.
  • Google still parses it. The rich result is gone; the comprehension isn't. Seven clean question-answer pairs are still seven precise signals about what the page covers.
  • Answer engines read JSON-LD. ChatGPT, Perplexity, and Google's AI Overviews read structured data when citing sources. A FAQPage node is a question and its answer, pre-chunked in exactly the shape an answer engine wants to lift.

That third point is why this lives in our SEO & AEO service rather than in a museum. The 2023 change killed the rich-result jackpot for normal sites. It didn't touch the machine-readability dividend — and in an era where questions increasingly get answered by systems that read your HTML rather than rank it, handing those systems your Q&A in their native format is cheap insurance.

The honest caveat, because we promised those: nobody outside these companies can measure exactly how much weight any answer engine gives JSON-LD, and anyone quoting you a precise citation-rate uplift is selling something. What we can tell you is the cost side: a few kilobytes of JSON, zero risk per Google's own announcement, zero maintenance beyond keeping the answers true. That's a bet we take all day. If the math ever flips, we'll be the first to tell you to delete it — telling you when a feature isn't worth building is sort of our thing.

How to actually verify your markup

The ten-minute checklist we should have run first:

  • [validator.schema.org](https://validator.schema.org) — the Schema.org validator shows your full graph regardless of what Google deigns to reward. Our Service + FAQPage + BreadcrumbList all showed up, parsed and linked. This is the tool that answers "does my markup exist and parse."
  • curl the live page — from origin *and* through the CDN if you cache. Confirm the JSON-LD is in the HTML actually being served, not just in your templates.
  • Rich Results Test — read it as an eligibility report. "No FAQ detected" on a normal business site means *not eligible*, not *not present*. Breadcrumbs showing up is your tell that parsing worked fine.
  • Search Console URL Inspection — only trust it after a recrawl. Just deployed? Hit "Request indexing" and come back later.

Total time to close the ticket once we remembered the 2023 announcement: about ten minutes. Time spent before that, re-verifying markup that was never broken: noticeably more than ten minutes. Hence this post.

The schema was fine. The founder was right to ask. The tool was technically honest. The mental model — Rich Results Test equals validator — was the thing that actually needed the patch.

Working on something this touches?

A senior engineer reads every message — and will tell you honestly if it is not worth building.

TALK TO A DEV