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

If a noindex robots meta tag is present in the initial HTML, Google will not render the JavaScript page because the instruction already indicates that the page does not want to be indexed. Be careful not to include noindex in the initial HTML if JavaScript needs to load indexable content.
28:30
🎥 Source video

Extracted from a Google Search Central video

⏱ 46:02 💬 EN 📅 25/11/2020 ✂ 29 statements
Watch on YouTube (28:30) →
Other statements from this video 28
  1. 1:02 Google rend-il vraiment toutes les pages JavaScript, quelle que soit leur architecture ?
  2. 1:02 Google rend-il vraiment TOUT le JavaScript, même sans contenu initial server-side ?
  3. 2:05 Comment vérifier que Googlebot crawle vraiment votre site ?
  4. 2:05 Comment vérifier que Googlebot est vraiment Googlebot et pas un imposteur ?
  5. 2:36 Google limite-t-il vraiment le temps CPU lors du rendu JavaScript ?
  6. 2:36 Google limite-t-il vraiment le temps CPU lors du rendu JavaScript ?
  7. 3:09 Faut-il arrêter d'optimiser pour les bots et se concentrer uniquement sur l'utilisateur ?
  8. 5:17 La propriété CSS content-visibility impacte-t-elle le rendu dans Google ?
  9. 8:53 Comment mesurer les Core Web Vitals sur Firefox et Safari sans API native ?
  10. 11:00 Combien de temps Google attend-il vraiment avant d'abandonner le rendu JavaScript ?
  11. 11:00 Combien de temps Googlebot attend-il vraiment pour le rendu JavaScript ?
  12. 20:07 Pourquoi Google affiche-t-il des pages vides alors que votre site JavaScript fonctionne parfaitement ?
  13. 20:07 AJAX fonctionne en SEO, mais faut-il vraiment l'utiliser ?
  14. 21:10 Le JavaScript bloquant peut-il vraiment empêcher Google d'indexer tout le contenu de vos pages ?
  15. 24:48 Le prérendu dynamique est-il devenu un piège pour l'indexation ?
  16. 26:25 Pourquoi vos ressources supprimées peuvent-elles détruire votre indexation en prérendu ?
  17. 26:47 Que fait vraiment Google avec votre HTML initial avant le rendu JavaScript ?
  18. 27:28 Google analyse-t-il vraiment tout dans le HTML initial avant le rendu ?
  19. 27:59 Pourquoi Google ignore-t-il le rendu JavaScript si votre balise noindex apparaît dans le HTML initial ?
  20. 27:59 Pourquoi une page 404 avec JavaScript peut-elle faire désindexer tout votre site ?
  21. 30:00 Google compare-t-il vraiment le HTML initial ET rendu pour la canonicalisation ?
  22. 30:01 Google détecte-t-il vraiment le duplicate content après le rendu JavaScript ?
  23. 31:36 Les APIs GET sont-elles vraiment mises en cache par Google comme les autres ressources ?
  24. 31:36 Google cache-t-il vraiment les requêtes POST lors du rendu JavaScript ?
  25. 34:47 Est-ce que Google indexe vraiment toutes les pages après rendu JavaScript ?
  26. 35:19 Google rend-il vraiment 100% des pages JavaScript avant indexation ?
  27. 36:51 Pourquoi vos APIs défaillantes sabotent-elles votre indexation Google ?
  28. 37:12 Les données structurées sur pages noindex sont-elles vraiment perdues pour Google ?
📅
Official statement from (5 years ago)
TL;DR

Google does not render the JavaScript of a page if the initial HTML contains a noindex robots meta tag. The noindex instruction halts the process before JavaScript can even execute. For sites that load indexable content via JS, placing noindex in the initial HTML means preventing Google from seeing that content, even if the script were to remove the directive.

What you need to understand

What is the exact sequence of Google's intervention on a page?

Googlebot first parses the initial HTML before deciding whether to allocate resources to render JavaScript. If a noindex robots meta directive appears in this raw HTML — the one directly returned by the server — the bot considers that the page explicitly requests to not be indexed.

This decision occurs before the rendering phase. Google does not launch its JS rendering engine, execute any scripts, or download additional resources. The process halts immediately. It’s an early filter that saves crawl budget and respects the site's instruction.

Does this rule apply even if JavaScript later removes the noindex?

Yes, and this is where it gets tricky for many sites. Some frameworks inject a temporary noindex into the initial HTML to prevent indexing of partial content during loading, then remove it via JavaScript once the complete content is loaded.

However, Google will never see this change. The bot reads the initial HTML, detects the noindex, and would never render the page. It doesn’t matter that the final script removes the directive: that step is never reached. The JavaScript content, even if it is technically indexable, remains invisible to Google.

What counts as 'initial HTML' in this context?

The initial HTML is the raw response returned by the server during the initial HTTP request. Not the final DOM after JavaScript execution. Not the HTML you see in the inspector after full loading.

To check what Google sees, you need to look at the raw source code (right-click > View Page Source, or curl from a terminal). If the noindex robots meta tag appears in this raw HTML, Google will not render the page. End of story.

  • The initial HTML is what the server directly returns, before any script execution
  • Googlebot checks noindex directives in this HTML before deciding to render JavaScript
  • An initial noindex directive permanently blocks rendering, even if a script were to remove it afterwards
  • The check must be done on the raw source code, not on the final DOM displayed in the inspector
  • This rule applies to all JavaScript pages, regardless of the framework used (React, Vue, Angular, Next.js, etc.)

SEO Expert opinion

Is this statement consistent with field observations?

Yes, and it explains several mysterious cases of unexplained deindexing on JavaScript sites. I've seen React sites with rich content, technically accessible after rendering, that never indexed. The problem arose from a noindex in the base index.html file, meant to be removed by the framework.

Let's be honest: many developers overlook this nuance. They test locally, see the noindex disappear in the inspector after loading, and think everything is fine. Except that Google never sees this final version. The initial directive is enough to block indexing.

What nuances should be added to this rule?

This logic only applies to noindex in a meta tag. If you send a noindex via an X-Robots-Tag HTTP header, Google respects it too, but the mechanics are different — the header is read even before HTML parsing, so even earlier in the process.

Another point: this statement concerns Google specifically. Other engines may behave differently. Bing, for example, has a distinct rendering pipeline. [To verify] for Yandex or Baidu which have less transparent architectures. Do not generalize this rule to all bots without testing.

In what cases does this limitation pose a critical problem?

The single-page applications (SPAs) are particularly exposed. Many frameworks generate a minimal HTML file with noindex by default, waiting for content to be injected client-side. If the developer forgets to remove this noindex from the base template, or thinks the script will handle it, all pages remain non-indexable.

The same issue occurs on sites that use a conditional noindex controlled by JavaScript (for example, noindex for non-logged-in users, removed after authentication). If this logic runs on the client side and the initial HTML contains the noindex, Google will never see the 'indexable' version. It’s a classic anti-pattern.

Attention: Sites switching from server-side rendering (SSR) to client-side rendering (CSR) may accidentally introduce this bug. Always check the initial HTML after each architecture migration.

Practical impact and recommendations

How can I check if my site is affected by this problem?

First step: examine the raw source code of your key pages. In Chrome, right-click > 'View Page Source'. Look for any occurrence of <meta name="robots" content="noindex"> or variants (googlebot, all, etc.). If you find one, check if it is supposed to be removed by JavaScript.

Also use the Search Console and the URL Inspection tool. Google shows you the final rendered HTML, but also the initial raw HTML. Compare the two versions. If the noindex appears in the initial HTML but not in the rendered version, it’s a warning sign — Google will never reach the rendered version.

What should you do to concretely fix this bug?

If you need to temporarily prevent indexing during loading, never put noindex in the initial HTML. Instead, use a server-side solution: generate the HTML with or without noindex based on the context, at the moment of the HTTP response.

For modern JavaScript sites, the clean solution is server-side rendering (SSR) or static site generation (SSG). Next.js, Nuxt, SvelteKit, and others allow precise control over the initial HTML without relying on client-side JavaScript. The noindex, if necessary, can be conditioned right at the HTML generation.

What critical mistakes should be absolutely avoided?

Never rely solely on the element inspector to check for the absence of noindex. The inspector shows the final DOM after JavaScript execution, not the initial HTML that Googlebot analyzes. Always test with raw source code or curl.

Avoid third-party plugins or components that automatically inject robots meta tags without your knowledge. Some SEO tools, social preview tools, or consent management solutions alter HTML opaquely. Regularly audit your tech stack.

  • Examine the raw source code of all strategic pages for unintended noindex
  • Check in Search Console that the initial HTML and the rendered HTML align on indexing directives
  • Migrate to SSR or SSG to control the initial HTML without relying on client-side JavaScript
  • Avoid client-side conditional noindex — any indexing logic must be server-side
  • Audit plugins and third-party components that may inject meta tags without your knowledge
  • Test with curl or wget to see exactly what Googlebot receives as raw HTML
The noindex in the initial HTML is a definitive blocker for JavaScript rendering at Google. Any affected page will remain invisible, even if the content is technically accessible after script execution. The solution lies in server-side management of indexing directives and systematic checking of raw HTML. These technical optimizations, especially on complex JavaScript architectures, often require sharp expertise. If your team lacks resources or specific knowledge on these topics, engaging a specialized SEO agency can help you avoid costly mistakes and accelerate your site's compliance.

❓ Frequently Asked Questions

Le noindex dans le HTML initial bloque-t-il aussi l'exploration (crawl) de la page ?
Non. Googlebot va quand même crawler la page et lire le HTML initial. C'est seulement le rendu JavaScript qui est bloqué. La page peut apparaître dans les logs serveur et consommer du crawl budget, mais ne sera jamais indexée.
Si je retire le noindex du HTML initial, combien de temps avant que Google rende la page ?
Cela dépend du crawl budget et de la priorité de la page. Demandez une réindexation via la Search Console pour accélérer le processus. Le rendu peut intervenir dans les heures ou jours suivants si la page est importante.
Un noindex ajouté uniquement via JavaScript est-il respecté par Google ?
Oui, si Google rend la page. Si le HTML initial ne contient pas de noindex, Googlebot exécutera le JavaScript, verra la directive ajoutée par le script, et ne l'indexera pas. Mais c'est un processus plus lent et moins fiable.
Cette règle s'applique-t-elle aussi aux directives comme nofollow ou noarchive ?
La déclaration de Martin Splitt concerne spécifiquement noindex. Les autres directives (nofollow, noarchive) ne bloquent pas le rendu JavaScript, car elles n'empêchent pas l'indexation elle-même. Googlebot peut rendre la page pour les traiter.
Peut-on utiliser un noindex temporaire dans le HTML initial pour les pages en construction ?
Oui, mais seulement si vous voulez réellement empêcher l'indexation de ces pages. Une fois le contenu prêt, retirez le noindex côté serveur et demandez une réindexation. Ne comptez jamais sur JavaScript pour retirer un noindex initial.
🏷 Related Topics
Domain Age & History Content Crawl & Indexing AI & SEO JavaScript & Technical SEO

🎥 From the same video 28

Other SEO insights extracted from this same Google Search Central video · duration 46 min · published on 25/11/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.