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

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 Does Google really render all JavaScript pages, regardless of their architecture?
  2. 1:02 Does Google really render ALL JavaScript, even without initial server-side content?
  3. 2:05 How can you ensure that Googlebot is truly crawling your site?
  4. 2:05 How can you ensure that Googlebot is genuinely Googlebot and not an imposter?
  5. 2:36 Does Google really limit CPU time during JavaScript rendering?
  6. 2:36 Is it true that Google actually limits CPU time during JavaScript rendering?
  7. 3:09 Should we stop optimizing for bots and focus solely on the user?
  8. 5:17 Does the CSS content-visibility property really affect rendering in Google?
  9. 8:53 How can you measure Core Web Vitals on Firefox and Safari without native API support?
  10. 11:00 How long does Google really wait before giving up on JavaScript rendering?
  11. 11:00 How long does Googlebot really wait for JavaScript rendering?
  12. 20:07 Why does Google display empty pages even when your JavaScript site is working perfectly?
  13. 20:07 Does AJAX really work for SEO, or should you think twice before using it?
  14. 21:10 Can blocking JavaScript really stop Google from indexing all the content on your pages?
  15. 24:48 Has dynamic prerendering become a trap for indexing?
  16. 26:25 Could your deleted resources be harming your pre-render indexing?
  17. 26:47 What does Google really do with your initial HTML before JavaScript rendering?
  18. 27:28 Is it true that Google really analyzes everything in the initial HTML before rendering?
  19. 27:59 Is it true that Google ignores JavaScript rendering if your noindex tag appears in the initial HTML?
  20. 27:59 Could a 404 page with JavaScript lead to the complete deindexing of your site?
  21. 30:00 Does Google really compare the initial HTML AND rendered content for canonicalization?
  22. 30:01 Does Google really catch duplicate content after JavaScript rendering?
  23. 31:36 Are GET APIs really cached by Google just like any other resource?
  24. 31:36 Does Google really ignore POST requests during JavaScript rendering?
  25. 34:47 Does Google really index all pages after JavaScript rendering?
  26. 35:19 Does Google really render 100% of JavaScript pages before indexing?
  27. 36:51 How do your failing APIs sabotage your Google indexing?
  28. 37:12 Are structured data on noindexed pages really lost to 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.