Read this first. If your FAQ rich result disappeared from Google’s search results in 2026, that is almost certainly not a bug in your schema. Google deprecated the FAQ rich result feature: it stopped showing FAQ dropdowns in search on May 7, 2026, for every site including the government and health domains that kept it after the 2023 cutback. There is nothing to “fix” to get the SERP dropdown back, because the feature no longer exists. Your FAQPage JSON-LD is still valid markup, it just no longer produces a Google rich result.
This guide does two things: (1) confirms whether your missing snippet is the deprecation (it usually is) versus a real schema error, and (2) keeps your FAQPage markup valid and accurate, because Bing still renders it and AI answer engines lean on the visible Q&A it mirrors.
TL;DR
- Snippet vanished in 2026? That is the deprecation, not your code. No action restores the Google dropdown.
- Leaving the markup is safe. Google confirmed no penalty and no manual action for keeping
FAQPageJSON-LD in place. Remove it only if you want a smaller payload. - Still worth keeping valid for Bing, DuckDuckGo, and AI answer engines (ChatGPT search, Perplexity, Gemini, Google AI Overviews) that read the visible Q&A your schema mirrors.
- Rich Results Test errors on FAQPage after June 2026 may be because the tool dropped FAQ support entirely. Validate the raw JSON-LD with the Schema Markup Validator instead.
The Google deprecation timeline (as of June 2026)
Google is removing FAQ support in phases. Source: the FAQPage documentation deprecation notice.
| Date | What changed | Impact on you |
|---|---|---|
| Aug 2023 | FAQ rich results limited to “well-known, authoritative government and health” sites | Most sites already lost the dropdown |
| May 7, 2026 | FAQ rich results stopped appearing in Search for everyone | Your dropdown disappears; nothing you can do |
| Jun 2026 | FAQ search-appearance filter, the rich result report, and Rich Results Test FAQ support removed | Search Console FAQ report and RRT FAQ checks go away |
| Aug 2026 | Search Console API support for FAQ rich result data removed | Any automated FAQ reporting via the API breaks; migrate it |
If you were tracking FAQ impressions in Search Console or pulling FAQ data through the Search Console API, plan for those to stop. The June-to-August gap exists specifically so API consumers have time to adjust.
Step 0: Which bucket are you in?
Run this decision check before touching any code.
| Symptom | Most likely cause | What to do |
|---|---|---|
| Dropdown was showing, then vanished in 2026 | Deprecation (May 7, 2026) | Nothing restores it; keep schema valid for other consumers |
| FAQ report in Search Console went empty / “no items” | Deprecation (report removed June 2026) | Expected; stop monitoring that report |
| Rich Results Test shows “FAQ not supported” after June 2026 | RRT dropped FAQ support | Validate with validator.schema.org instead |
validator.schema.org shows real JSON-LD errors (missing field, bad nesting) | Genuine schema bug | Fix per the sections below |
| You never had the dropdown but want valid markup for Bing / AI | No bug | Use the parity + validity checklist below |
Only the last two rows are something you can act on. The first three are Google policy, not a defect in your site.
Keep the markup valid: genuine schema errors
These are the FAQPage mistakes that still matter for any consumer that reads the markup (Bing, AI answer engines, your own internal tooling). Validate against validator.schema.org, which still checks FAQPage even after Google’s Rich Results Test dropped it.
1. JSON-LD has more or fewer Q’s than the visible page
Your page shows 5 FAQ items. The JSON-LD has 8 (leftovers from a previous version), or vice versa. Consumers that cross-check markup against rendered content distrust the mismatch.
How to spot it:
# Count visible FAQ items
curl -s "https://site.com/article" | grep -c 'class="faq-item"'
# Count JSON-LD Question objects
curl -s "https://site.com/article" | grep -oP '"@type":"Question"' | wc -l
The two counts should match.
2. Question text differs between visible and JSON-LD
Visible question: How long does AdSense approval take?
JSON-LD: "name": "What's the AdSense approval timeline?"
Semantically the same, character-different. Any consumer that treats the JSON-LD as canonical sees a mismatch with the rendered page.
How to spot it — extract both and diff:
# Visible questions
curl -s URL | grep -oP '<h3 class="faq-q">\K[^<]+'
# JSON-LD questions
curl -s URL | grep -oP '"@type":"Question","name":"\K[^"]+'
3. Answer missing, too short, or not in acceptedAnswer.text
Each Question needs a populated acceptedAnswer.text:
{
"@type": "Question",
"name": "...",
"acceptedAnswer": {
"@type": "Answer",
"text": "Full answer here, substantive and self-contained."
}
}
Plain text in text is fine. If you embed HTML, it must be valid and render to meaningful text. Aim for answers that actually resolve the question (roughly 50+ characters and self-contained, not a one-line referral).
How to spot it: confirm every acceptedAnswer.text exists and is non-trivial. A bare "see our pricing page" referral is not a real answer and AI extractors skip it.
4. FAQPage used on pages without a real FAQ
Marking up a product-info block as FAQPage was never legitimate, and now it buys you nothing on Google either. Only mark up a section that genuinely answers user questions in a question/answer format.
How to spot it: read the page. If there is no section that reads like Q&A, remove the FAQPage schema entirely.
5. Hidden answers (still matters for AI / Bing)
An accordion that hides answers until clicked: the HTML contains them, so a parser sees them, but a human and some renderers do not. With Google’s rich result gone this is no longer a Google compliance issue, but visible-by-default answers still serve no-JS users and give AI answer engines clean, rendered text to cite.
How to spot it: disable JavaScript in DevTools, reload, and confirm the answers render. If not, ship the answer in server-rendered HTML and add the toggle as progressive enhancement:
.faq-answer { display: block; } /* not display: none */
How to fix it cleanly
Step 1: Validate the raw JSON-LD
After June 2026 the Rich Results Test no longer checks FAQ, so use the Schema Markup Validator. Paste the URL or the JSON-LD block and fix any structural error (missing acceptedAnswer, malformed nesting, bad escaping).
Step 2: Generate Q’s from a single source
The durable fix for parity bugs is to render the visible UI and the JSON-LD from one array, so they can never drift. In your MDX article frontmatter:
faq:
- q: "How long does AdSense approval take?"
a: "Approval typically takes 1-4 weeks, but can run 6-8 weeks for brand-new domains with thin history."
- q: "..."
a: "..."
Template renders both the UI and the JSON-LD from this array:
---
const { faq } = Astro.props.frontmatter;
const jsonLd = {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": faq.map(item => ({
"@type": "Question",
"name": item.q,
"acceptedAnswer": { "@type": "Answer", "text": item.a },
})),
};
---
<section class="faq">
{faq.map(item => (
<article>
<h3 class="faq-q">{item.q}</h3>
<p class="faq-a">{item.a}</p>
</article>
))}
</section>
<script type="application/ld+json" set:html={JSON.stringify(jsonLd)}></script>
UI and JSON-LD are now guaranteed identical.
Step 3: Add a CI parity check
Catch drift before it ships. A minimal check counts visible questions versus JSON-LD Question objects per built page and fails the build on mismatch:
vis=$(grep -c 'class="faq-q"' dist/article/index.html)
ld=$(grep -oP '"@type":"Question"' dist/article/index.html | wc -l)
[ "$vis" -eq "$ld" ] || { echo "FAQ count mismatch: $vis visible vs $ld in JSON-LD"; exit 1; }
Step 4: Decide whether to keep the markup
There is no penalty for leaving it, and Bing plus AI answer engines still read it. Keep it if your pages have real Q&A sections. Remove it only if you want a leaner page or no longer maintain the content. Do not mark up non-FAQ content as FAQPage — that earns nothing now.
How to confirm it’s resolved
- Parity: the visible question count equals the JSON-LD
Questioncount (Step 3 check passes). - Validity: validator.schema.org reports no errors on the
FAQPageblock. - Expectations set: you are no longer waiting on a Google FAQ dropdown — that feature is gone as of May 7, 2026.
- Optional, Bing: Bing Webmaster Tools URL Inspection still recognizes valid
FAQPagemarkup, so if you care about Bing, confirm there.
FAQ
- Will leaving FAQPage schema in place hurt my Google rankings? No. Google confirmed there is no penalty and no manual action for keeping
FAQPageJSON-LD; it simply will not produce a rich result anymore. - My FAQ rich result disappeared in 2026 — did I break something? Almost certainly not. Google stopped showing FAQ rich results for everyone on May 7, 2026. No schema change brings the dropdown back.
- Why does Rich Results Test no longer show FAQPage? Google removed FAQ support from the Rich Results Test in June 2026. Validate the markup with validator.schema.org instead.
- Is FAQ schema still worth adding in 2026? Yes, if your page has genuine Q&A. Bing still renders it, and AI answer engines extract the visible Q&A the schema mirrors. Just stop expecting the Google SERP dropdown.
- Should I delete my FAQPage markup? Optional. It is harmless to keep and useful for non-Google consumers. Delete it only for a leaner payload or if the page no longer has a real FAQ.
- What happens to my Search Console FAQ data? The FAQ search-appearance filter and rich result report were removed in June 2026, and Search Console API FAQ support is removed in August 2026. Migrate any automated reporting that depended on it.
Related
- Structured data warnings
- Breadcrumb JSON-LD mismatch
- WebSite JSON-LD inconsistency
- Article date vs JSON-LD date mismatch
Tags: #SEO #Troubleshooting #Debug #Structured data #FAQ schema #JSON-LD