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 a client/server hybrid rendering, prioritize Server-Side Rendering of critical content (title, meta description, canonical, main content) over secondary elements. The main content should always be rendered server-side before metadata to maximize performance.
6:23
🎥 Source video

Extracted from a Google Search Central video

⏱ 39:51 💬 EN 📅 17/06/2020 ✂ 51 statements
Watch on YouTube (6:23) →
Other statements from this video 50
  1. 0:33 Google voit-il vraiment le HTML que vous croyez optimiser ?
  2. 0:33 Le HTML rendu dans la Search Console reflète-t-il vraiment ce que Googlebot indexe ?
  3. 1:47 Le JavaScript tardif nuit-il vraiment à votre indexation Google ?
  4. 1:47 Pourquoi Googlebot rate-t-il vos modifications JavaScript critiques ?
  5. 2:23 Google réécrit vos balises title et meta description : faut-il encore les optimiser ?
  6. 3:03 Google réécrit-il vos balises title et meta description à volonté ?
  7. 3:45 DOMContentLoaded vs événement load : pourquoi cette différence change-t-elle tout pour le rendu côté Google ?
  8. 3:45 DOMContentLoaded vs load : quel événement Googlebot attend-il réellement pour indexer votre contenu ?
  9. 6:23 Comment prioriser le rendu hybride serveur/client sans pénaliser votre SEO ?
  10. 7:27 Faut-il éviter la balise canonical côté serveur si elle n'est pas correcte au premier rendu ?
  11. 8:00 Faut-il supprimer la balise canonical plutôt que d'en servir une incorrecte corrigée en JavaScript ?
  12. 9:06 Comment vérifier quelle canonical Google a vraiment retenue pour vos pages ?
  13. 9:38 L'URL Inspection révèle-t-elle vraiment les conflits de canonical ?
  14. 10:08 Faut-il vraiment ignorer le noindex sur vos fichiers JS et CSS ?
  15. 10:08 Faut-il ajouter un noindex sur les fichiers JavaScript et CSS ?
  16. 10:39 Peut-on vraiment se fier au cache: de Google pour diagnostiquer un problème SEO ?
  17. 10:39 Pourquoi le cache: de Google est-il un piège pour tester le rendu de vos pages ?
  18. 11:10 Faut-il vraiment se préoccuper de la capture d'écran dans Search Console ?
  19. 11:10 Les screenshots ratés dans Google Search Console bloquent-ils vraiment l'indexation ?
  20. 12:14 Le lazy loading natif est-il vraiment crawlé par Googlebot ?
  21. 12:14 Faut-il encore s'inquiéter du lazy loading natif pour le référencement ?
  22. 12:26 Faut-il vraiment découper son JavaScript par page pour optimiser le crawl ?
  23. 12:26 Le code splitting JavaScript peut-il réellement améliorer votre crawl budget et vos Core Web Vitals ?
  24. 12:46 Pourquoi vos scores Lighthouse mobile sont-ils systématiquement plus bas que sur desktop ?
  25. 12:46 Pourquoi vos scores Lighthouse mobile sont-ils systématiquement plus bas que desktop ?
  26. 13:50 Votre lazy loading bloque-t-il la détection de vos images par Google ?
  27. 13:50 Le lazy loading peut-il vraiment rendre vos images invisibles aux yeux de Google ?
  28. 16:36 Le rendu côté client fonctionne-t-il vraiment avec Googlebot ?
  29. 16:58 Le rendu JavaScript côté client nuit-il vraiment à l'indexation Google ?
  30. 17:23 Où trouver la documentation officielle JavaScript SEO de Google ?
  31. 18:37 Faut-il vraiment aligner les comportements desktop, mobile et AMP pour éviter les pièges SEO ?
  32. 19:17 Faut-il vraiment unifier l'expérience mobile, desktop et AMP pour éviter les pénalités ?
  33. 19:48 Faut-il vraiment corriger un thème WordPress bourré de JavaScript si Google l'indexe correctement ?
  34. 19:48 Faut-il vraiment éviter JavaScript pour le SEO ou est-ce un mythe persistant ?
  35. 21:22 Peut-on avoir d'excellentes Core Web Vitals tout en ayant un site techniquement défaillant ?
  36. 21:22 Peut-on avoir un bon FID avec un TTI catastrophique ?
  37. 23:23 Le FOUC ruine-t-il vraiment vos performances Core Web Vitals ?
  38. 23:23 Le FOUC pénalise-t-il vraiment votre référencement naturel ?
  39. 25:01 Le JavaScript consomme-t-il vraiment votre crawl budget ?
  40. 25:01 Le JavaScript consomme-t-il vraiment plus de crawl budget que le HTML classique ?
  41. 28:43 Faut-il bloquer l'accès aux utilisateurs sans JavaScript pour protéger son SEO ?
  42. 28:43 Bloquer un site sans JavaScript risque-t-il une pénalité SEO ?
  43. 30:10 Pourquoi vos scores Lighthouse ne reflètent-ils jamais la vraie expérience de vos utilisateurs ?
  44. 30:16 Pourquoi vos scores Lighthouse ne reflètent-ils pas la vraie performance de votre site ?
  45. 34:02 Le render tree de Google rend-il vos outils de test SEO obsolètes ?
  46. 34:34 Le render tree de Google : faut-il vraiment s'en préoccuper en SEO ?
  47. 35:38 Faut-il vraiment s'inquiéter des ressources non chargées dans Search Console ?
  48. 36:08 Faut-il vraiment s'inquiéter des erreurs de chargement dans Search Console ?
  49. 37:23 Pourquoi Google n'a-t-il pas besoin de télécharger vos images pour les indexer ?
  50. 38:14 Googlebot télécharge-t-il vraiment les images lors du crawl principal ?
📅
Official statement from (5 years ago)
TL;DR

Google claims that critical content should be rendered server-side before metadata in a hybrid architecture. This recommendation flips the traditional logic where title, meta description, and canonical are prioritized. The goal: to reduce time to first render and prevent the bot from indexing an empty page if JavaScript fails.

What you need to understand

What causes Google to reverse the classic SSR/CSR priority?

Splitt's statement breaks a deeply rooted habit among developers: we no longer start with the head, we dive straight into the body. The explanation lies in a brutal observation — if your main content is stuck client-side while metadata happily displays server-side, you end up with a catastrophic Signal/Noise ratio for Googlebot.

The bot crawls, loads the initial HTML, sees a neat title, a well-crafted meta description… and an empty body waiting for JavaScript. If JS takes 4 seconds to execute or fails for some reason, Google indexes nothing. And that’s precisely what Splitt wants to avoid: maximizing the chances that critical content is visible even if client hydration fails.

What counts as “critical content” according to this logic?

Splitt explicitly mentions title, meta description, canonical, and main content. The main content includes everything that carries the semantics of your page: intro paragraphs, H1-H2 headings, first blocks of text, hero images with descriptive alt text. “Secondary” elements — complex navigation, sidebars, widgets, product recommendations — can remain in CSR without impacting indexing.

This hierarchy raises a conceptual issue: in practice, metadata is part of critical content. Splitt mentions them as well. What he means is that we shouldn’t just SSR these tags hoping that the body will follow. We need to ensure that the initial HTML stream already contains indexable text, not just meta signals.

How does this affect Google’s perceived performance?

The Time to First Byte (TTFB) remains critical, but the Largest Contentful Paint (LCP) becomes crucial for indexing. If your LCP relies on a client fetch to load the main content, you’re taking a double risk: network latency + JS execution time. By SSR’ing the main content, you ensure that the LCP corresponds to an element already present in the initial HTML.

Googlebot does not wait indefinitely. Real-world tests show that it allocates about 5 seconds of JS execution per page on average — sometimes less on sites with tight crawl budgets. If your main content arrives after this delay because it relies on a third-party API or a too-heavy React bundle, it will never be indexed.

  • Main content in SSR: visible in the source HTML, immediately indexable even if JS fails
  • Metadata without content: Google indexes an empty shell with nice SERP snippets… that lead to nothing
  • Progressive hydration: SSR content remains functional while JS enhances interactivity without blocking indexing
  • Resilience to JS timeout: if Googlebot cuts execution, critical content is already captured
  • Consistency between mobile/desktop rendering: fewer discrepancies if the initial HTML already contains essential content

SEO Expert opinion

Does this recommendation contradict best practices observed in the field?

Not really. The top-performing sites in SEO using modern JS stacks already perform complete SSR of main content — Next.js, Nuxt, SvelteKit, all offer server rendering of the entire page by default, not just metadata. What’s new is that Splitt explicitly states this as an absolute priority.

The problem arises primarily with DIY hybrid architectures where developers have SSR’d only the head to “please SEO” without touching the body of the page. These semi-SSR implementations are a pitfall: they create the illusion of crawlable content while Googlebot sees an almost empty document. Splitt is specifically targeting this pattern.

What are the grey areas of this statement?

Splitt does not clarify where to draw the line between “critical” and “secondary”. Is a product carousel on an e-commerce homepage critical or secondary? Is a collapsed FAQ block indexable in CSR, or should it be SSR? These questions remain unanswered officially. [To be verified] with your own tests using the Mobile-Friendly Test and the URL Inspection Tool.

Another ambiguity: the phrasing “maximize performance” is vague. Performance for whom? If you SSR 100% of the content, you increase TTFB and server load, which can degrade Core Web Vitals. Splitt implies that a balance must be struck, but provides no quantified metrics. In practice, you need to monitor the compromise between SSR generation time and client rendering time.

In what cases does this rule not apply?

Pure SaaS applications behind login have no need for SSR for Google — no page is intended to be indexed. Purely transactional pages (checkout, cart) can remain in full CSR without SEO impact as long as they are noindexed.

Static generated sites (Gatsby, Hugo, Jekyll) already render everything at build time, so the SSR/CSR question doesn’t arise. And traditional full SSR sites (WordPress, Drupal, Rails) have never encountered this issue. This recommendation exclusively targets modern JS stacks in hybrid mode — React, Vue, Angular with mixed rendering.

Practical impact and recommendations

What should you concretely modify in a Next.js or Nuxt stack?

If you’re using getServerSideProps (Next) or asyncData (Nuxt), ensure you’re fetching main content data server-side, not just metadata. A common pattern that causes issues: SSR’ing the title/description via props, but allowing the body to load with a client useEffect. That’s exactly what Splitt condemns.

In Next 13+ with App Router, favor Server Components by default for all critical text content. Mark 'use client' explicitly only for interactive components (forms, carousels, accordions). Do not switch a component to client just because it contains a useState — extract the interactive logic and leave the text rendering server-side.

How can you verify that Google is correctly crawling the SSR content and not empty?

Use the URL Inspection Tool in Search Console, “Crawled page” tab. Compare the raw HTML with the final rendering. If the source HTML already contains your H1, first paragraphs, and hero images, you’re good. If these elements only appear in the final rendering, they depend on JS — thus risking partial indexing.

Also test with curl or wget with JavaScript disabled: curl -A "Googlebot" https://yoursite.com. The main content should be visible in the raw HTML output. If you see empty <div id="root"></div> tags, your SSR is insufficient. Complete this with a Mobile-Friendly Test using the URL Inspection API to see exactly what Googlebot renders.

What errors should you avoid during the SSR/CSR migration?

Don’t fall into the trap of “SSR everything at 100%” out of dogma. SSR’ing a megamenu of 500 categories or a sidebar of complex product filters will inflate your TTFB without any tangible SEO gain — these elements do not carry primary semantics. Keep them in CSR or lazy load.

Another classic mistake: SSR’ing content but forgetting alt attributes, aria-labels, and structured data. These signals must also be present in the initial HTML, not injected later via JavaScript. Ensure that your JSON-LD is present in the source HTML, not dynamically added via a client script.

  • Audit the source HTML (curl/wget) to identify missing content server-side
  • Progressive migration: SSR first H1, intro, first screen of content
  • Measure TTFB before/after to avoid degrading Core Web Vitals
  • Test Mobile-Friendly Tool and URL Inspection on a representative sample of pages
  • Monitor JS errors in production: if CSR fails, SSR should hold up
  • Document SSR/CSR choices for each component type (menu, sidebar, CTA, main content)
Prioritizing SSR for main content isn’t a technical revolution, but a clarification of priorities. Google tells you: stop focusing solely on metadata, ensure the body of the page is crawlable even if JS fails. Concretely, this means re-evaluating your rendering choices component by component, manually testing the source HTML, and monitoring the SSR/CSR content ratio. These fine-tuning optimizations, balancing technical stack and SEO requirements, can quickly become complex to orchestrate alone — this is often where support from a specialized SEO agency helps avoid pitfalls and accelerate compliance without breaking performance.

❓ Frequently Asked Questions

Dois-je SSR ma navigation et mon footer pour Google ?
Non, tant que ton contenu principal est en SSR. Navigation et footer peuvent rester en CSR ou en lazy load — ils ne portent pas la sémantique critique de la page. Google s'en fiche si ton menu met 2 secondes à s'afficher pourvu que le H1 et le corps de texte soient déjà présents dans le HTML initial.
Un site full CSR peut-il encore ranker correctement en 2025 ?
Techniquement oui, si Googlebot réussit à exécuter tout le JavaScript dans son budget temps. En pratique, c'est un pari risqué : dès qu'il y a timeout JS, erreur réseau ou dépendance API tierce, tu perds l'indexation. Le SSR du contenu principal élimine ce risque.
Les métadonnées (title, meta description) doivent-elles aussi être en SSR ?
Absolument, mais ce n'est pas suffisant. Splitt dit que SSR uniquement les métadonnées sans le contenu principal est contre-productif — tu te retrouves avec un snippet SERP nickel pointant vers une page vide. Les deux doivent être en SSR, avec priorité au contenu.
Comment savoir si mon crawl budget permet à Google d'attendre le JS ?
Analyse les logs serveur pour voir combien de temps Googlebot passe par page. Sur un site à fort crawl budget (news, gros e-commerce), il peut attendre 5-10 secondes. Sur un site à budget serré, il coupe souvent après 2-3 secondes. Ne mise pas dessus : SSR le critique.
Le SSR dégrade-t-il forcément les Core Web Vitals ?
Pas forcément. Un SSR bien optimisé (cache edge, génération incrémentale) peut même améliorer le LCP en servant le contenu principal plus vite. C'est le SSR naïf sans cache, avec requêtes DB synchrones, qui plombe le TTFB. Mesure, optimise, puis déploie.
🏷 Related Topics
Content Crawl & Indexing AI & SEO JavaScript & Technical SEO Links & Backlinks Web Performance Search Console

🎥 From the same video 50

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