What does Google say about SEO? /
Quick SEO Quiz

Test your SEO knowledge in 5 questions

Less than a minute. Find out how much you really know about Google search.

🕒 ~1 min 🎯 5 questions

Official statement

For FAQ schema, Google accepts that the answer can be hidden with CSS (accordion) as long as it remains in the HTML. The important part is that the question is visible and the answer is in HTML, not loaded via JavaScript after interaction. Purely CSS-hidden content poses no problem for FAQ markup.
18:18
🎥 Source video

Extracted from a Google Search Central video

⏱ 52:29 💬 EN 📅 14/05/2020 ✂ 39 statements
Watch on YouTube (18:18) →
Other statements from this video 38
  1. 1:07 Is Google automatically switching back to mobile-first after fixing asymmetry errors?
  2. 1:07 Is it true that mobile-first indexing is stuck: how long until automatic unlocking?
  3. 3:14 Does Google flag missing images on mobile: Should you ignore these alerts if your mobile version is intentionally different?
  4. 3:14 Should you really fix the missing images detected by Google on mobile?
  5. 4:15 Does mobile-first indexing really improve your ranking on Google?
  6. 4:15 Does mobile-first indexing really impact your page rankings?
  7. 5:17 How does Google blend site-level and page-level signals to rank your pages?
  8. 5:49 Should you prioritize domain authority or optimize page by page?
  9. 11:16 Does functional duplicate content really harm your SEO ranking?
  10. 11:52 Is Google really ignoring duplicate boilerplate content without punishment?
  11. 13:08 Do you really need multiple questions in an FAQ schema to get a rich snippet?
  12. 13:08 Should you really abandon the FAQ schema on single-question product pages?
  13. 14:14 Does schema markup really help you land featured snippets?
  14. 15:45 Do featured snippets really depend on structured markup or visible content?
  15. 18:41 Does the FAQ schema really work if answers are hidden in a CSS accordion?
  16. 19:13 Should you merge two cannibalizing pages or let them coexist?
  17. 19:53 Is it really necessary to merge your competing pages to boost their rankings?
  18. 20:58 Can you really combine canonical and noindex without risking your SEO?
  19. 21:36 Can you really combine canonical and noindex without risk?
  20. 23:02 Does the exact order of keywords in your content really affect your Google ranking?
  21. 23:22 Does the order of keywords on a page really impact Google rankings?
  22. 27:07 Does the order of keywords in the meta description really affect CTR?
  23. 27:22 Should you really align the word order in your meta description with the target query?
  24. 29:56 Does Google really understand your synonyms better than you do?
  25. 30:29 Should you really stuff your pages with synonyms to rank on Google?
  26. 31:56 Should you create mixed pages to cover all meanings of a polysemous keyword?
  27. 34:00 Should you create specialized pages or general pages to rank effectively?
  28. 35:45 Should you optimize your site for synonyms, or does Google really handle it all by itself?
  29. 37:52 Does Google really give a 6-month notice before any major SEO changes?
  30. 39:55 Does Google really announce its major algorithm changes 6 months in advance?
  31. 43:57 Why are multilingual footer links crucial on every page?
  32. 44:37 Why do your hreflang links fail when they point to a homepage instead of an equivalent page?
  33. 44:37 Why does linking to the homepage undermine your hreflang strategy?
  34. 46:54 Subdomains or Subdirectories for Internationalization: Which Hreflang Architecture Does Google Really Favor?
  35. 47:44 Should you opt for subdirectories or subdomains for a multilingual site?
  36. 48:49 Should you add footer links to your multilingual homepages in addition to hreflang?
  37. 50:23 Does your shared IP really harm your SEO rankings?
  38. 50:53 Can shared cloud IPs really harm your SEO?
📅
Official statement from (6 years ago)
TL;DR

Google officially validates that FAQ markup remains fully compatible with CSS-hidden accordion content, as long as the answer is present in the HTML source. The question must be visible, and the answer needs to be in native HTML—not loaded via JavaScript after a click. This clarification legitimizes a common practice that generated uncertainty among SEO practitioners.

What you need to understand

How does this statement change the game for structured FAQs?

For years, CSS-hidden content has raised legitimate distrust among SEOs. The association between "hidden content" and "cloaking" has been firmly rooted in practitioners' minds, to the point where some actively avoided accordions on strategic pages.

Mueller puts an end to this ambiguity: Google makes a clear distinction between CSS hiding (legal) and deferred JavaScript loading (problematic for schema). As long as the answer exists in the initial DOM, its default display state is irrelevant for FAQ markup eligibility.

What is the technical boundary between acceptable practice and rejection?

The red line is drawn at the level of server-side vs client-side rendering. An accordion handled purely with CSS—display:none switching on :checked or .active—passes without issues. The HTML already contains the answer, and Googlebot sees it as soon as it crawls.

On the other hand, a system that loads the answer via fetch() on user click creates problems. The initial bot sees only an orphan question. Even though Google now indexes JavaScript, FAQ schema requires that the content be present at the first HTML render.

Does this tolerance apply to all types of schema markup?

This statement explicitly targets FAQ markup, but the principle logically extends to other structured schemas. HowTo, Product with long description, Event with collapsible details—the rule remains the same: if the content exists in the HTML source, CSS can hide it without penalty.

Be careful, though: this tolerance concerns schema compliance, not ranking. Google can theoretically downgrade hidden content for mobile users if UX suffers, regardless of the technical validity of the markup.

  • Native HTML content: required for all schema-marked elements
  • CSS display:none or visibility:hidden: perfectly accepted for FAQ answers
  • Deferred JavaScript loading: incompatible with structured schema markup
  • Visible question required: only the answer can be hidden by default
  • Schema validation independent of ranking: valid markup does not guarantee display in rich snippet

SEO Expert opinion

Is this position consistent with field observations?

Completely. Sites using pure CSS accordions have been obtaining their FAQ rich snippets without notable difficulty for years. Mueller's statement formalizes a practice that was already working—confirming the consistency between official communication and algorithmic reality.

The real issue is that this clarification comes late. How many sites avoided accordions due to excessive caution, degrading their mobile UX for a nonexistent risk? Hesitance towards "hidden content" has created unjustified blockages.

What nuances should we consider regarding this official validation?

First, "Google accepts" does not mean "Google will display." The FAQ rich snippet remains discretionary—Google can validate your schema and never show it in SERPs. The triggering criteria are not public, and competition for this space is fierce.

Moreover, Mueller mentions "presence in HTML" without specifying whether an ultra-minimalist initial render (e.g., aggressive lazy-load) would pass the test. [To be verified]: what about content injected in HTML but via a library like Intersection Observer on scroll? Technically in the DOM, but with a delay. The boundary remains unclear.

Warning: Modern JavaScript frameworks (React, Vue, Next.js in CSR mode) may generate HTML only on the client-side. Even if the content ends up in the DOM, it is not present during the initial crawl. For FAQ schema, prioritize SSR (Server-Side Rendering) or SSG (Static Site Generation).

When does this rule not apply?

If you are using a dynamically loaded FAQ system via API after authentication or geolocation, the schema markup becomes void. Google crawls as a non-logged-in user—it will never see reserved content.

Similarly, some CMS generate accordions with content stored in a data-content attribute and then injected upon click. Even if it's "technically in HTML," the text is not in an indexable semantic tag. Google may not interpret it correctly for the schema.

Practical impact and recommendations

What concrete steps should be taken to remain compliant?

Ensure that your FAQ accordions are based on complete semantic HTML at server render. The answer should be in a <div> or <p> tag, not generated on click. Use pure CSS (transition, max-height, opacity) for animation.

Always test with "Inspect URL" in Search Console. The "Rendered HTML" tab should show the full answer, not an empty placeholder. If the content only appears after simulating user interaction, your implementation is out of scope.

What mistakes should be absolutely avoided?

Never load the FAQ answer via fetch() or XMLHttpRequest on click. Even if your site is fast and the user sees no latency, Googlebot does not click—it only crawls the initial HTML.

Avoid poorly configured frameworks that switch everything to client-side. A purely React site without SSR generates an empty DOM during crawl, even if the content displays perfectly for the user. For schema, this is a deal-breaker.

How can I check if my implementation passes Google's test?

Use Google's Rich Results Test. Paste your FAQ page URL—the tool should detect all question/answer pairs. If some answers are missing from the report, they are not in native HTML.

Also, compare the "View Page Source" (Ctrl+U) with the browser inspector. If the answer only appears in the inspector (DOM modified by JS), it is not crawlable for the schema. Both views should be identical.

  • Implement accordions in pure CSS (display, max-height, opacity) without deferred JavaScript loading
  • Ensure each FAQ answer is present in HTML in the initial page source
  • Validate the schema with Google's Rich Results Test before deployment
  • Configure SSR (Server-Side Rendering) if using a modern JS framework
  • Regularly test via "Inspect URL" in Search Console to verify Googlebot rendering
  • Avoid using data-* attributes to store FAQ answer content
The technical implementation of FAQ accordions may seem straightforward on the surface, but the subtleties between server-side and client-side rendering, framework compatibility, and schema requirements demand precise expertise. If your infrastructure relies on complex technologies (React, Next.js, headless solutions), or if you find that your FAQ rich snippets do not display despite apparently correct markup, the support of a technical SEO agency can significantly accelerate resolution—especially for auditing server-side rendering and identifying invisible failures in ordinary navigation.

❓ Frequently Asked Questions

Un accordéon géré en JavaScript pur (sans fetch) est-il compatible avec le schema FAQ ?
Oui, tant que le contenu HTML de la réponse est présent dans le DOM initial. L'animation JavaScript de l'accordéon ne pose aucun problème — c'est le chargement différé de contenu qui est interdit.
Google pénalise-t-il le contenu masqué par display:none pour le ranking organique ?
Non, Google ne pénalise pas le CSS display:none en soi. En revanche, si tout le contenu important est caché par défaut sur mobile, l'UX peut indirectement affecter les signaux utilisateur et le ranking.
Faut-il absolument que la question soit visible pour valider le balisage FAQ ?
Oui, Mueller précise explicitement que la question doit rester visible. Seule la réponse peut être repliée en accordéon. Une FAQ entièrement cachée ne respecte pas les exigences du schema.
Le lazy-loading d'images dans les réponses FAQ pose-t-il problème pour le schema ?
Non, le lazy-loading d'images est distinct du chargement de texte. Tant que le texte de la réponse est en HTML initial, les images peuvent être lazy-loadées sans compromettre la validité du schema FAQ.
Un site en Next.js CSR peut-il obtenir des rich snippets FAQ ?
Difficilement. Next.js en mode Client-Side Rendering génère le HTML via JavaScript dans le navigateur. Pour le schema FAQ, il faut impérativement passer en SSR ou SSG pour que le contenu soit crawlable dès le rendu initial.
🏷 Related Topics
Domain Age & History Content Structured Data JavaScript & Technical SEO

🎥 From the same video 38

Other SEO insights extracted from this same Google Search Central video · duration 52 min · published on 14/05/2020

🎥 Watch the full video on YouTube →

Related statements

💬 Comments (0)

Be the first to comment.

2000 characters remaining
🔔

Get real-time analysis of the latest Google SEO declarations

Be the first to know every time a new official Google statement drops — with full expert analysis.

No spam. Unsubscribe in one click.