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 the FAQ schema, the question must be visible and the answer must be present in the HTML, even if it is hidden by CSS (collapsed accordion). On the other hand, loading the answer via JavaScript on click prevents Google from checking its presence, which invalidates the markup.
18:41
🎥 Source video

Extracted from a Google Search Central video

⏱ 52:29 💬 EN 📅 14/05/2020 ✂ 39 statements
Watch on YouTube (18:41) →
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:18 Is Google penalizing CSS-hidden FAQ content in an 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 validates the FAQ schema if the question is visible and the answer is present in the HTML, even if hidden by CSS. However, loading the answer via JavaScript on click invalidates the markup because Google cannot check its content. In practical terms: a CSS accordion passes, but an AJAX load breaks everything.

What you need to understand

Why does Google make a distinction between CSS and JavaScript?

The difference lies in the way Googlebot accesses the content. When an answer is hidden by CSS, it remains physically present in the source HTML code — Googlebot reads it effortlessly. The display:none or a collapsed accordion does not change this technical accessibility.

In contrast, if the answer loads only on click via JavaScript — typically an AJAX call fetching content from an endpoint — the initial HTML is empty. Google must then execute the JS, trigger the event, and wait for the server response. This chain of operations is not guaranteed during crawling. Even if Google executes JavaScript, it does not simulate user interactions like clicking on each accordion.

Does the FAQ schema require immediate visibility of content?

No, and this is where many go wrong. Google does not require the answer to be visible on screen at page load. What matters is its presence in the initial HTML DOM. A default collapsed accordion, hidden via CSS, remains perfectly compliant.

The only strict requirement: the question must be visible. Not hidden, not white on white, not off-screen. The user must be able to identify that there is a FAQ. The answers can await a click to visually expand — but they must exist behind the scenes from the start.

What happens if the markup is invalidated?

If Google detects that the answers are not in the initial HTML, the FAQ rich snippet disappears from the SERPs. No manual penalty, no deindexing — just a total loss of enriched visibility. You remain ranked normally but without stars, the question carousel, or extra display space.

In some cases, Google may continue to partially display the FAQ schema if some items are valid and others are not. But consistency is rarely present — it’s better not to play with fire and aim for total compliance.

  • CSS Accordions: complete HTML, visually hidden answers → valid markup
  • AJAX loading on click: initial HTML empty, remote content → invalid markup
  • Visible question mandatory: no circumventing allowed, Google checks real visibility
  • No algorithmic penalty: only loss of the rich snippet, regular ranking remains intact
  • Recommended testing: Search Console checks for content presence, but does not always simulate client-side JS

SEO Expert opinion

Is this rule consistent with real-world observations?

Yes, overall. Websites that load their FAQs via AJAX — often to lighten the initial HTML weight or manage thousands of questions — do indeed lose their rich snippets. I've seen e-commerce sites lose 30% of CTR on certain informational queries after migrating to an aggressive lazy-loading system.

However, Google can sometimes be inconsistent: some sites with deferred content loading retain their FAQ snippets for weeks or even months. [To be verified] whether Google applies this rule with the same rigor across sectors or domain authority levels. Larger sites seem to benefit from a longer tolerance period before invalidation.

What nuances should be added to this statement?

The boundary between CSS and JavaScript is not always clear. If you use a modern framework like React or Vue, the initial HTML can be almost empty, even if the FAQ content is technically rendered server-side (SSR). Google crawls the final result, but the JS execution delay can pose problems.

Similarly, some CMS platforms generate complete HTML but rewrite the DOM via JS after the first render. If this rewriting temporarily removes answers from the DOM before reinjecting them, Googlebot may crawl at the wrong time and see nothing. Mueller's statement remains true in theory, but practical implementation is fraught with pitfalls.

When does this rule not really apply?

If your FAQ is not intended to generate rich snippets — for example, an internal FAQ area for customer support, without SERP optimization — the loading method matters little. You can load via AJAX, in an iframe, in a remote modal, it doesn’t matter: no direct SEO impact.

Another edge case: pages with hundreds of Q&A pairs. Loading all HTML at once can explode page weight and degrade LCP. Here, you need to balance between rich snippet and performance. Some decide to only mark the first 10-15 questions visible in HTML as schema, and leave the rest as AJAX without markup. Pragmatic, but this mechanically reduces the enriched visibility surface.

Attention: do not confuse "hidden by CSS" and "hidden duplicated content". If you hide complete FAQs in display:none without intending to show them to the user, Google may consider this as light cloaking. The FAQ markup assumes real user interaction, even if delayed.

Practical impact and recommendations

What should you actually do to stay compliant?

First, audit your current implementation. Display the raw HTML source code (Ctrl+U, not the inspector) and check that each answer marked in the FAQ schema appears textually in the code. If you see empty tags or data-endpoint attributes, you are in the red zone.

Next, favor native HTML+CSS accordions. A simple <details> + <summary> does the job without JS and remains crawlable. Otherwise, a classic CSS toggle with a hidden checkbox or active class added on click — as long as the content already exists in the initial DOM, you’re good.

What mistakes should you absolutely avoid?

Never load answers via fetch(), XMLHttpRequest, or any network call triggered by user interaction. Even if your JS is ultra-fast, Googlebot will not click for you. The crawler merely takes the initial HTML and a passive JS rendering.

Avoid frameworks that mount the DOM only client-side (React without SSR, Vue in pure SPA mode). If the HTML served to the bot is a simple <div id="app"></div>, your FAQs do not exist for Google. Use SSR or static pre-rendering instead.

How can I check that my site is really compliant?

Use Google's Rich Results Test tool. Paste the URL, wait for rendering, and check that all your question-answer pairs are detected. If some are missing, it means they are not in the initial HTML or the JSON-LD schema is malformed.

Complete this with a Screaming Frog or Oncrawl crawl in "JavaScript rendering disabled" mode. If your FAQs disappear without JS, they will also disappear for a part of Google crawls. Lastly, monitor Search Console: schema validation errors often come up several days after crawling.

  • Check that each FAQ answer is present in the raw HTML source code
  • Favor pure CSS accordions or the native element <details>
  • Ban any AJAX/fetch loading of answers on user click
  • Test the URL in Google's Rich Results Test tool
  • Crawl the site with JavaScript disabled to validate content presence
  • Regularly monitor schema errors in Google Search Console
The FAQ schema relies on a simple rule: visible question, answer in the HTML. As long as you adhere to this basis, Google validates the markup even if the content is collapsed in CSS. Once you start using JavaScript to load the answer upon request, you step out of line. These technical optimizations — balancing performance, UX, and schema compliance — can quickly become complex to manage alone, especially on high-volume sites or modern stacks. In these cases, calling on a specialized SEO agency can provide a precise diagnosis and personalized support to secure your rich snippets without sacrificing performance.

❓ Frequently Asked Questions

Puis-je utiliser un accordéon Bootstrap ou jQuery pour mes FAQ ?
Oui, à condition que le contenu des réponses soit présent dans le HTML initial, même masqué. Si l'accordéon se contente de toggle une classe CSS pour afficher/masquer, c'est conforme. Evitez juste les plugins qui chargent le contenu via AJAX au clic.
Est-ce que Google pénalise les sites qui chargent les FAQ en AJAX ?
Non, il n'y a pas de pénalité algorithmique. Vous perdez simplement le rich snippet FAQ dans les SERP. Votre ranking classique reste intact, mais vous perdez la surface d'affichage enrichie et potentiellement du CTR.
Le contenu en display:none est-il considéré comme du cloaking ?
Pas si l'utilisateur peut y accéder via une interaction normale (clic, scroll). Un accordéon replié par défaut est légitime. En revanche, cacher du texte sans intention de le montrer à l'utilisateur peut être vu comme du cloaking.
Faut-il marquer toutes les FAQ en schema ou seulement celles visibles au-dessus de la ligne de flottaison ?
Vous pouvez marquer toutes les FAQ présentes dans le HTML, même celles en bas de page. Google crawle la page entière. Par contre, limiter le markup aux FAQ principales peut simplifier la maintenance et éviter les erreurs de validation.
Est-ce que le FAQ schema fonctionne avec du contenu rendu côté serveur en React SSR ?
Oui, tant que le HTML final servi à Googlebot contient les questions et réponses complètes. Le SSR génère du HTML complet côté serveur, donc pas de problème. Vérifiez juste que le rendu initial est bien complet avant l'hydratation JS.
🏷 Related Topics
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.