What does Google say about SEO? /
Quick SEO Quiz

Test your SEO knowledge in 3 questions

Less than 30 seconds. Find out how much you really know about Google search.

🕒 ~30s 🎯 3 questions 📚 SEO Google

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 Google rebascule-t-il automatiquement en mobile-first après correction des erreurs d'asymétrie ?
  2. 1:07 Le mobile-first indexing bloqué : combien de temps avant le déblocage automatique ?
  3. 3:14 Google signale des images manquantes sur mobile : faut-il ignorer ces alertes si votre version mobile est intentionnellement différente ?
  4. 3:14 Faut-il vraiment corriger les images manquantes détectées par Google sur mobile ?
  5. 4:15 Le mobile-first indexing améliore-t-il vraiment votre positionnement dans Google ?
  6. 4:15 Le mobile-first indexing impacte-t-il vraiment le classement de vos pages ?
  7. 5:17 Comment Google combine-t-il signaux site-level et page-level pour classer vos pages ?
  8. 5:49 Faut-il privilégier l'autorité du domaine ou l'optimisation page par page ?
  9. 11:16 Le duplicate content fonctionnel pénalise-t-il vraiment votre référencement ?
  10. 11:52 Le contenu dupliqué boilerplate est-il vraiment ignoré par Google sans pénalité ?
  11. 13:08 Faut-il vraiment plusieurs questions dans un FAQ schema pour obtenir un rich snippet ?
  12. 13:08 Faut-il vraiment abandonner le schema FAQ sur les pages produit single-question ?
  13. 14:14 Le schema markup sert-il vraiment à décrocher les featured snippets ?
  14. 15:45 Les featured snippets dépendent-ils vraiment du markup structuré ou du contenu visible ?
  15. 18:18 Le contenu FAQ caché en accordéon CSS est-il pénalisé par Google ?
  16. 19:13 Faut-il fusionner deux pages qui se cannibalisent ou les laisser coexister ?
  17. 19:53 Faut-il vraiment fusionner vos pages concurrentes pour améliorer leur classement ?
  18. 20:58 Peut-on vraiment combiner canonical et noindex sans risque pour le SEO ?
  19. 21:36 Peut-on vraiment combiner canonical et noindex sans risque ?
  20. 23:02 L'ordre exact des mots-clés dans vos contenus a-t-il vraiment un impact sur votre ranking Google ?
  21. 23:22 L'ordre des mots-clés dans une page influence-t-il vraiment le ranking Google ?
  22. 27:07 L'ordre des mots-clés dans la meta description impacte-t-il vraiment le CTR ?
  23. 27:22 Faut-il vraiment aligner l'ordre des mots dans la meta description sur la requête cible ?
  24. 29:56 Google maîtrise-t-il vraiment vos synonymes mieux que vous ?
  25. 30:29 Faut-il vraiment bourrer vos pages de synonymes pour ranker sur Google ?
  26. 31:56 Faut-il créer des pages mixtes pour couvrir tous les sens d'un mot-clé polysémique ?
  27. 34:00 Faut-il créer des pages spécialisées ou des pages généralistes pour ranker ?
  28. 35:45 Faut-il optimiser son site pour les synonymes ou Google s'en charge-t-il vraiment tout seul ?
  29. 37:52 Google donne-t-il vraiment 6 mois de préavis avant tout changement SEO majeur ?
  30. 39:55 Google annonce-t-il vraiment ses changements algorithmiques majeurs 6 mois à l'avance ?
  31. 43:57 Pourquoi les liens footer interlangues sont-ils indispensables sur toutes les pages ?
  32. 44:37 Pourquoi vos liens hreflang échouent-ils s'ils pointent vers une homepage au lieu d'une page équivalente ?
  33. 44:37 Pourquoi pointer vers la homepage casse-t-il votre stratégie hreflang ?
  34. 46:54 Sous-domaines ou sous-répertoires pour l'international : quelle architecture hreflang Google privilégie-t-il vraiment ?
  35. 47:44 Sous-répertoires ou sous-domaines pour un site multilingue : quelle architecture choisir ?
  36. 48:49 Faut-il ajouter des liens footer vers les homepages multilingues en complément du hreflang ?
  37. 50:23 Votre IP partagée pénalise-t-elle vraiment votre référencement ?
  38. 50:53 Les IP partagées en cloud peuvent-elles vraiment pénaliser votre référencement ?
📅
Official statement from (5 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.