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

Having a large JSON string at the bottom of the page for hydration is not a problem for Google. Creating a different code path for bots (by removing this JSON) introduces fragility without real benefit.
76:24
🎥 Source video

Extracted from a Google Search Central video

⏱ 465h56 💬 EN 📅 24/03/2021 ✂ 13 statements
Watch on YouTube (76:24) →
Other statements from this video 12
  1. 10:15 Les Core Web Vitals mesurent-ils vraiment les chargements consécutifs ou juste la première visite ?
  2. 22:39 Faut-il supprimer les liens présents uniquement dans le HTML initial ?
  3. 60:22 Le Server-Side Rendering est-il vraiment indispensable pour le SEO en 2025 ?
  4. 121:54 Googlebot est-il vraiment devenu infaillible face à JavaScript ?
  5. 152:49 Pourquoi le passage à Evergreen Chrome transforme-t-il le rendu des pages par Google ?
  6. 183:08 Google rend-il vraiment TOUTES vos pages JavaScript ?
  7. 196:12 Pourquoi Google ne clique-t-il jamais sur vos boutons Load More et comment l'éviter ?
  8. 226:28 Faut-il vraiment masquer le contenu cumulatif des paginations infinies à Google ?
  9. 251:03 Peut-on vraiment servir une navigation différente à Google sans risquer une pénalité pour cloaking ?
  10. 271:04 Googlebot clique-t-il vraiment sur les boutons et liens JavaScript de votre site ?
  11. 303:17 Faut-il créer une page par jour pour un événement multi-jours ou canoniser vers une page unique ?
  12. 402:37 Le JavaScript est-il vraiment compatible avec le SEO moderne ?
📅
Official statement from (5 years ago)
TL;DR

Google claims that large JSON hydration strings at the bottom of the page do not pose any indexing issues. Creating a specific code path for bots by removing this JSON adds unnecessary technical complexity and risk of fragility. In practical terms: let your JavaScript application generate the same markup for all clients, including bots.

What you need to understand

What is JSON hydration and why do some sites hide it from bots?*

Hydration is the process by which a JavaScript framework (React, Vue, Next.js) transforms static HTML into an interactive client-side application. To work, the framework often injects a large JSON object at the bottom of the page, containing the initial state of the application — sometimes several hundred kilobytes.<\/p>

Some developers fear that this JSON burdens the DOM, dilutes the semantic density perceived by Google, or constitutes duplicate content if the JSON repeats data already present in the HTML. The result: they create server-side logic that detects Googlebot and disables JSON injection for this client only.<\/p>

Why does Google advise against this practice?*

Martin Splitt cuts to the chase: this JSON is not a problem for the engine. Google parses the final rendered HTML, and the hydration JSON — often placed in a <script type="application/json"><\/code> — is not interpreted as indexable textual content. It dilutes nothing and does not create penalizing duplication.<\/p>

On the other hand, creating a specific code branch for bots introduces fragility: there is a risk of divergence between what the user sees and what Google sees (inadvertent cloaking), deployment bugs if User-Agent detection fails, and increased maintenance. All this for no gain.<\/p>

Does this statement apply to all types of bottom JSON?*

Splitt explicitly talks about hydration JSON — the one generated by modern frameworks to rehydrate the interface. He does not speak about other uses of JSON: structured data (JSON-LD), analytics tracking data, or third-party configurations.<\/p>

The statement does not cover cases where the JSON contains raw editorial content (complete articles, product descriptions) with no visible HTML equivalent. In this latter case, the question of indexing arises differently — but that is not the subject here.<\/p>

  • Hydration JSON (initial state of JS frameworks) does not harm indexing.<\/li>
  • Creating different code for Googlebot adds complexity without SEO gain.<\/li>
  • Google reads the final rendered HTML — the JSON in a <script><\/code> is not considered textual content.<\/li>
  • This rule does not apply to structured data JSON-LD or other uses of JSON on the page.<\/li><\/ul>

SEO Expert opinion

Is this statement consistent with field observations?*

Yes, and it confirms what empirical tests have shown for several years. Sites using SSR (Server-Side Rendering) with hydration — Next.js, Nuxt, SvelteKit — index correctly even with significant JSON payloads at the bottom of the page. Google has made enough progress in JavaScript rendering to ignore what pertains to technical plumbing.<\/p>

What really poses a problem is critical asynchronous rendering: content loaded after client-side JS execution, without an initial HTML equivalent. The hydration JSON, on the other hand, assumes the HTML is already present — therefore indexable.<\/p>

What nuances should be added?*

Splitt's statement relies on an implicit assumption: your initial HTML already contains complete semantic content. If your framework generates an empty shell on the server side and all content is displayed via JavaScript after hydration, you are out of scope — and in SEO trouble. [To verify]: Google has never specified a size threshold beyond which a hydration JSON would become problematic. It is assumed there is none, but public tests on payloads of several megabytes remain rare.<\/p>

Another point: if your JSON contains readable structured data (prices, reviews, descriptions) but the equivalent HTML is absent or hidden, Google could theoretically ignore them — but this is no longer a hydration problem; it is an architectural issue.<\/p>

Note: Splitt's recommendation does not exempt you from checking rendering time and crawl budget. A 2 MB JSON slows down client-side parsing and can indirectly degrade Core Web Vitals — which, in turn, impacts SEO.<\/div>

In what cases does this rule not apply?*

If you are doing deliberate cloaking — serving different HTML to Google to hide sensitive content or manipulate ranking — the presence or absence of JSON becomes the least of your concerns. Google penalizes behavior, not JSON.<\/p>

If your site uses pure CSR (Client-Side Rendering) without server pre-rendering, you probably don’t have hydration JSON in the strict sense — you have a JS bundle that generates everything on the fly. Here, the problem is not the JSON; it's the absence of indexable initial HTML.<\/p>

Practical impact and recommendations

What should you do with hydration JSON in practice?*

Do nothing. Let your framework inject its hydration JSON normally for all clients without distinction. If you are using Next.js, Nuxt, or an equivalent in SSR/SSG, the automatically generated JSON (often in __NEXT_DATA__<\/code>) requires no intervention.<\/p>

Make sure that the server-side rendered HTML already contains the complete textual content — titles, paragraphs, product data. The JSON should only serve to rehydrate the interactive interface, not to replace missing content.<\/p>

What mistakes to avoid?*

Do not create User-Agent detection logic to hide the JSON from bots. This introduces a divergence between user experience and bot experience, which can be interpreted as cloaking — even inadvertently. Google values source code consistency.<\/p>

Do not confuse payload optimization with JSON removal. If your hydration JSON weighs 500 KB, the problem is not that it exists; it's that it's too big. Optimize the size of data on the server side (pagination, lazy loading of non-critical states), but do not remove it for Googlebot.<\/p>

How to check if my implementation is compliant?*

Use Google Search Console and the URL inspection tool. Compare the raw HTML (View Source) with the rendered HTML ("Rendered HTML" tab). If the textual content is identical in both cases, your hydration works correctly — the JSON is transparent to Google.<\/p>

Also test the rendering speed with Lighthouse. A very large JSON can slow down Time to Interactive (TTI) and Total Blocking Time (TBT), which indirectly degrades SEO via Core Web Vitals. If your scores drop, reduce the size of the JSON but do not remove it.<\/p>

  • Keep the hydration JSON visible to all clients, including bots.<\/li>
  • Ensure that the initial HTML contains all essential semantic content.<\/li>
  • Do not create a specific code branch for Googlebot.<\/li>
  • Optimize the size of the JSON if it exceeds 100-200 KB (chunking, lazy loading).<\/li>
  • Test rendering with the URL inspection tool from Google Search Console.<\/li>
  • Monitor Core Web Vitals for performance impact from large JSON.<\/li><\/ul>
    Summary: hydration JSON is not an enemy of SEO. Treat all clients — users and bots — the same way, ensure that the initial HTML is complete, and optimize JSON size for performance, not indexing. These technical adjustments may seem simple in theory, but often require fine analysis of your stack's architecture and rendering pipeline. If you want a complete audit of your JavaScript implementation and tailored recommendations, consulting a specialized SEO agency in JS frameworks can help you avoid costly errors and accelerate your visibility gains.<\/div>

❓ Frequently Asked Questions

Le JSON d'hydratation est-il indexé par Google comme du contenu textuel ?
Non. Google parse le HTML rendu final, et le JSON placé dans un <script> n'est pas traité comme du contenu éditorial. Il ne dilue pas la densité sémantique de la page.
Dois-je supprimer le JSON d'hydratation pour Googlebot ?
Non. Créer une logique serveur qui masque le JSON pour les bots ajoute de la fragilité et du risque de cloaking involontaire, sans aucun bénéfice SEO.
Un JSON d'hydratation très volumineux peut-il nuire au SEO ?
Indirectement, oui : s'il ralentit le Time to Interactive ou le Total Blocking Time, il dégrade les Core Web Vitals. Mais ce n'est pas un problème d'indexation, c'est un problème de performance.
Cette règle s'applique-t-elle aux sites en CSR pur (Client-Side Rendering) ?
Non, les sites en CSR pur n'ont généralement pas de JSON d'hydratation au sens strict. Leur problème SEO est l'absence de HTML pré-rendu, pas le JSON.
Comment vérifier que mon JSON d'hydratation ne cause pas de problème SEO ?
Utilisez l'outil d'inspection d'URL de Google Search Console pour comparer le HTML brut et le HTML rendu. Si le contenu textuel est identique, tout va bien.

💬 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.