Guide : Rendering

Comment Google's Web Rendu Service exécute votre JavaScript à construire lune page il indexes — plus le rendu options (CSR, SSR, SSG, hydration, ISR, edge, dynamic) et leur SEO trade-offs.

Première publication : 23 juin 2026 · Dernière mise à jour : 3 août 2026 · Avancé
1 indice probant sur cette page

Rendu est le étape où Google exécute votre JavaScript dans an evergreen, headless Chrome — le Web Rendu Service — à construire le DOM il indexes. Il se produit pour essentially chaque page, généralement dans seconds-à-minutes, donc le old 'deux waves de indexation' model est largely outdated et il y a aucun per-page rendre budget. Le renderer est stateless, ne fait pas interact avec lune page, et caches difficile. Votre rendu option decides votre SEO risque: SSR, static/prerendering, et hydration sont sûr; complet rendu côté client est le risky un; dynamic rendu est a workaround.

TL;DR — Google renders votre JS dans an evergreen, headless Chromium — le Web Rendu Service — à construire le DOM il indexes. Il se produit pour essentially tout pages, généralement dans seconds-à-minutes, donc “two waves of indexing” est largely outdated et il y a aucun per-page rendre budget. Le WRS est stateless, declines permission prompts, ne fait pas interact avec lune page, et caches aggressively. Votre rendu option decides votre SEO risque: SSR / static / prerendering / hydration sont faible-risque; complet CSR est le risky un; dynamic rendu est a workaround Google advises contre. Pour le practical JS problèmes ce crée, voir JavaScript SEO.

Où rendering sits

Google est explicit que JavaScript apps déplacer via three phases: “Google processes JavaScript web apps dans three principal phases: 1. Exploration 2. Rendu 3. Indexation.” Preuve à l’appui de cette affirmation Google documents crawling, rendering, and indexing as the three main phases for processing JavaScript web apps. Portée : Google Search processing of JavaScript web applications; the phases can overlap operationally. Niveau de confiance : élevé · Vérifié : Google Search Central: Understand the JavaScript SEO basics Rendu est le bridge. Exploration récupère le raw HTML; rendu exécute le JavaScript à construire le finished DOM; indexation lit que rendu DOM, et quelconque nouveau liens le renderer trouve obtenir fed back dans exploration. Dans Google’s words: “During le explorer, Google renders lune page et exécute quelconque JavaScript il trouve en utilisant a recent version de Chrome, similaire à comment votre navigateur renders pages vous visit.”

Rendu est le bridge entre fetching une URL et indexation son finished DOM; parity, interaction, state, et timing peut break que bridge. Source : JavaScript SEO

Google explore une URL, renders son JavaScript à construire le DOM, et indexes le résultat. Four practical échec modes branch depuis rendu: parity quand le rendu DOM differs depuis expectations, interaction quand contenu exige a scroll or click, state quand contenu relies on cleared cookies or storage, et timing quand contenu est deferred behind lent JavaScript.

© Patrick Stox LLC · CC BY 4.0 ·

«## The Web Rendering Service » (Traduction) (Résumé en français de la section vingt-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«Google renders in the Web Rendering Service (WRS) — a headless Chrome that’s evergreen: “While Google Search runs JavaScript with an evergreen version of Chromium…” it tracks current Chrome, so modern JavaScript and CSS features work. » (Traduction) (Résumé en français de la section vingt-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«The catch is that the WRS is a peculiar browser, and its quirks cause most real problems: » (Traduction) (Résumé en français de la section vingt-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«- It’s stateless. As I put it in my JavaScript SEO guide, “Google loads each page stateless like it’s a fresh load.” Google’s docs spell out the pieces: “Local Storage and Session Storage data are cleared across page loads” and “HTTP Cookies are cleared across page loads.” Don’t rely on anything persisted client-side to serve your content. » (Traduction) (Résumé en français de la section vingt-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- It declines permissions. “Expect Googlebot to decline user permission requests.” Content gated behind a geolocation, notification, or camera prompt won’t render. » (Traduction) (Résumé en français de la section vingt-six, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- It doesn’t interact. No scrolling, clicking, or hovering — so content that only loads on one of those events is invisible by default. (This is the root of most lazy-load and infinite-scroll bugs; the fixes live on the JavaScript SEO page.) » (Traduction) (Résumé en français de la section vingt-six, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.) «- It caches aggressively. “Googlebot caches aggressively in order to reduce network requests and resource usage. WRS may ignore caching headers.” That means Google can run an outdated version of your JS or CSS. Fix it with file fingerprinting — version your filenames (app.4f2a9c.js) so a content change forces a fresh fetch. » (Traduction) (Résumé en français de la section vingt-six, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)

A 2026 experiment: five seconds n’est pas a hard execution wall

A tiers WRS experiment reported dans July 2026 testé delayed JavaScript et network activity plutôt que assuming a five-deuxième timeout. Le observed renderer utilisé a virtual clock et completed delayed requêtes que took roughly 6–12 seconds de réel temps. Le utile résultat est narrow: il contradicts le courant audit règle que n’importe quoi occurring après exactly five seconds est automatiquement invisible à Google. Il fait pas prove que chaque delayed dependency va finish, que Google waits indefinitely, or que lent client-side delivery est sûr.

Lire le experiment et son methodology as tiers evidence alongside Google’s official statement que rendre-queue timing a aucun publié fixed delay. En pratique, tester le final DOM et requested resources. A manquant API réponse, interaction requirement, bloqué script, or state dependency remains a réel rendu échec même quand a stopwatch-based “five-second rule” n’est pas.

Is “two waves of indexing” encore a chose?

Pour années le mental model était “two waves of indexing”: Google voudrait indexer le raw HTML premier, alors come back days or weeks plus tard à rendre et indexer le JavaScript contenu. Que model est maintenant largely outdated. Martin Splitt a said le deux-waves idea plays moins et moins de a role, que nombreux pages go via le rendre phase même quand ils ne pas rely on JavaScript, et que exploration, rendu, et indexation sont converging over temps.

«In practice, rendering happens for essentially every page, and it’s usually fast. Google’s current documentation says a crawled page “may stay on this queue for a few seconds, but it can take longer than that” — there’s no published fixed delay or timeout. Preuve à l’appui de cette affirmation Google says a crawled page may stay on the rendering queue for a few seconds, but it can take longer than that. Portée : Google's rendering queue for a page that returns a 200 status and is eligible for rendering. The source gives a variable duration, not a fixed timeout or service-level guarantee. Niveau de confiance : élevé · Vérifié : Google Search Central: rendering-queue duration Étaye : A page may remain on the rendering queue for a few seconds or longer. As a historical data point, Google staff (Martin Splitt and Tom Greenaway) once put the figure at a median of about five seconds, with the 90th percentile in minutes — not the “weeks” the old fear implied. I cite that figure in my JavaScript SEO guide, but treat it as a dated conference data point rather than a current published metric — Google hasn’t republished it as an ongoing number, and the queue-timing quote above is the current official framing. » (Traduction) (Résumé en français de la section trente-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«And there’s no render budget in the way people imagine. Google doesn’t track a per-page “how expensive was this to render” score you need to conserve. Rendering is cheap at Google’s scale — optimize for your users and performance, not a phantom render budget. » (Traduction) (Résumé en français de la section trente-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

The rendering options

“Où est le HTML built?” est le question que decides votre SEO risque. Le complet menu:

Le utile distinction est où initial HTML est produced et ce que fonctionner remains pour le navigateur. Source : Rendering

Static generation produces HTML at construire temps. Rendu côté serveur produces it per requête. Rendu côté client relies on navigateur JavaScript. Hydration attaches client behavior to server or static HTML. Dynamic rendering varies output by requester and is treated as a workaround.

© Patrick Stox LLC · CC BY 4.0 ·

  • Rendu côté client (CSR). Le serveur sends a near-empty shell; le navigateur (or WRS) exécute JavaScript à construire tout. Ce est “le la plupart problematic un … complet rendu côté client où tout de le rendu se produit dans le navigateur.” Il peut fonctionner, mais vous êtes betting tout on le rendre succeeding, et c’est le slowest à obtenir indexé.
  • Rendu côté serveur (SSR). Le serveur construit le complet HTML pour chaque requête. Contenu est dans le raw HTML, donc c’est faible-risque pour recherche.
  • Static site generation (SSG) / prerendering. HTML est construit une fois à deploy temps. Lowest risque — contenu est dans le raw HTML et c’est rapide.
  • Hydration (isomorphic / universal). Vous SSR or SSG le premier paint, alors JavaScript “hydrates” il dans le navigateur à ajouter interactivity. Ce est ce que la plupart modern frameworks faire, et c’est faible-risque pour contenu — simplement watch pour hydration mismatches que blank out or remplacer contenu.
  • Incremental Static Regeneration (ISR). Static pages regenerated on a schedule or on demand. Comme SSG, avec fresher contenu — bon pour grand catalogs.
  • Edge rendu. SSR exécuter à CDN edge nodes — même faible risque as SSR, avec faster time-à-premier-byte pour a mondial public.
  • Streaming SSR. HTML streamed à le navigateur dans chunks as c’est ready. Faible-risque, mais assurez-vous indexable contenu n’est pas trapped seulement dans a late or deferred chunk.

Mon bottom line depuis mon JavaScript SEO guide: “Quelconque kind de SSR, static rendu, et prerendering setup est going à être fine pour moteur de recherches. Gatsby, Suivant, Nuxt, etc., sont tout great.” Le framework matters moins que le rendu mode vous ship — le même Suivant.js app est sûr or risky selon si vous servir SSR/SSG or complet CSR.

Dynamic rendering — a workaround, pas a strategy

Dynamic rendu signifie detecting bots et diffusion les a prerendered, JavaScript-gratuit version pendant que utilisateurs obtenir le client-side version. Google est maintenant blunt à propos de il: “Dynamic rendu était a workaround et pas a à long terme solution pour problèmes avec JavaScript-generated contenu dans moteur de recherches,” et “Dynamic rendu est a workaround et pas a recommended solution, parce que il crée additional complexities et resource requirements.” Preuve à l’appui de cette affirmation Google describes dynamic rendering as a workaround and does not recommend it as a long-term solution. Portée : Google Search guidance for JavaScript-generated content; server-side rendering, static rendering, or hydration are the recommended alternatives. Niveau de confiance : élevé · Vérifié : Google Search Central: Dynamic rendering as a workaround Je agree, et Je toujours ont — à être honest Je jamais recommended il, et Je’m glad Google maintenant recommends contre il aussi. c’est diffusion différent contenu à bots et utilisateurs, qui est awfully fermer à cloaking. Reach pour SSR, static, or hydration à la place.

«One wrinkle: Bing still suggests dynamic rendering. Microsoft says “bingbot is generally able to render JavaScript” but that doing it at scale is hard, so “we recommend dynamic rendering as a great alternative for websites relying heavily on JavaScript.” The practical takeaway: SSR/SSG keeps both engines happy and sidesteps the whole debate. » (Traduction) (Résumé en français de la section quarante et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Ce que cela signifie pour votre content

Rendu decides si Google ever voit votre JavaScript contenu — mais seeing il est seulement half le job. Une fois lune page est rendu, le practical concerns sont réel <a href> liens, champ-spécifique parity entre raw et rendu HTML, robots-directive stage order, lazy contenu, infinite scroll, et soft-404s. Ceux tout actif on le JavaScript SEO page, avec le testing workflow (Inspection d’URL’s rendu HTML, screenshot, et console).

Ce est le rendu stage de le recherche pipeline. Pour le stages autour il, voir exploration (comment pages obtenir récupéré) et indexation (ce que se produit à le rendu page suivant), or le Comment Recherche Fonctionne hub pour le entier journey.

Un audit règle est worth keeping ici: rendu est a state, pas a universal winner. Pour corps contenu et crawlable liens, le rendu DOM montre ce que successful JavaScript ajouté or supprimé. Pour titles et descriptions, il montre additional inputs, pendant que Google peut encore generate a titre lien or extrait depuis autre sources. Pour robots directives, a raw noindex peut empêcher rendu, donc JavaScript removal est asymmetric. Pour canonical, Google advises en utilisant un source or un JavaScript-set valeur plutôt que modification an existing valeur. Et JavaScript ne peut pas modifier le HTTP réponse status déjà reçu. Garder ceux columns séparé dans evidence et utiliser Google’s actuel JavaScript SEO guidance pour le champ-spécifique behavior.

Ajouter une note d’expert

Épingler une citation d’expert

Nouvelle personne ? Créez son profil non revendiqué à /admin/experts/ → Épingler une citation d’expert d’abord.