Guide des frameworks JavaScript côté client

React, Vue, Angular, Svelte et SolidJS partagent un risque SEO : le rendu côté client livre une coquille vide. La correction associe gestion du head et stratégie de rendu.

Première publication : 26 juin 2026 · Dernière mise à jour : 11 août 2026 · Advanced
Langues

React, Vue, Angular, Svelte et SolidJS peuvent livrer une coquille HTML presque vide, puis construire la page dans le navigateur. Google sait rendre ces applications dans une file différée, mais Bing et les robots IA sont moins fiables. La correction commune associe des métadonnées uniques par route et une stratégie de prérendu, SSR ou méta-framework correspondant.

En bref — React, Vue, Angular, Svelte et SolidJS utilisent par défaut le rendu côté client : une coquille HTML presque vide, puis un DOM construit dans le navigateur. Le problème SEO est identique : le contenu n’existe qu’après JavaScript. Google effectue ce rendu plus tard dans une file ; Bing et les robots IA sont moins fiables. La correction associe gestion du head par route et stratégie de rendu : prérendu, SSR ou méta-framework correspondant. Les différences concernent surtout le nom des bibliothèques et les options détaillées dans chaque guide.

Des bibliothèques plutôt que des frameworks complets : origine du problème

Les architectures varient ; un rendu côté client n’entraîne donc pas automatiquement un échec d’indexation. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: MDN: Client-side frameworks Le rendu serveur ou le prérendu réduit la dépendance à l’exécution de JavaScript par le robot sans garantir l’indexation. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: JavaScript SEO basics

React, Vue, Angular, Svelte et SolidJS sont surtout des bibliothèques de rendu d’interface. Elles transforment les données en DOM et le synchronisent avec l’état. Par défaut, ce DOM naît dans le navigateur, ce qui donne une sensation d’application rapide tout en créant le risque SEO.

Une compilation standard livre une coquille HTML avec un point de montage vide — <div id="root">, <div id="app"> ou <app-root> — et un bundle JavaScript. Titres, texte, liens internes et données structurées n’apparaissent qu’après téléchargement et exécution du bundle.

Il s’agit du rendu côté client, comportement initial des bibliothèques seules avant ajout d’un méta-framework ou d’un prérendu. Ce n’est pas un bogue. Mais ce défaut varie selon la version, l’outil de démarrage et la route : une page marketing peut être prérendue tandis qu’un tableau de bord reste en CSR. Vérifiez toujours le HTML réel livré par chaque route au lieu de déduire son mode du nom du framework.

Problème commun : la coquille vide

Google décrit un traitement en phases — exploration, rendu, indexation — et précise que “without rendering Google might not see that content.” (traduction) « sans rendu, Google risque de ne pas voir ce contenu. » Dans une application CSR, tout dépend de cette phase. Trois conséquences suivent :

  • Le rendu est différé, sans délai fixe. Google sépare exploration, rendu et indexation, mais ne garantit aucune attente universelle. Le délai dépend de l’URL et des ressources disponibles ; avant la fin du rendu, le contenu n’existe pas pour l’indexation.
  • Les autres robots ne sont pas acquis. Bing rend JavaScript de façon irrégulière et la plupart des robots IA l’exécutent peu ou pas. Chaque fournisseur doit être vérifié séparément ; un site uniquement CSR risque de rester invisible aux robots qui ne rendent pas.
  • Les métadonnées par page manquent. Un fichier HTML unique partage <title> et description meta entre toutes les routes si le head n’est pas géré activement.

Correction commune, première partie : gérer le head

Une SPA n’ayant qu’un document HTML, du code doit actualiser son head au changement de route. Chaque écosystème possède une bibliothèque ou une API de référence :

  • Reactreact-helmet-async, ou l’API Metadata de Next.js.
  • Vue@unhead/vue, moteur des utilitaires SEO de Nuxt.
  • Angular → services intégrés Title et Meta de @angular/platform-browser.
  • Svelte → élément intégré <svelte:head>.
  • SolidJS@solidjs/meta, puis SolidStart pour le SSR.

La gestion du head produit des balises uniques, mais ne résout pas seule la coquille vide : les balises n’apparaissent toujours qu’après JavaScript. Une stratégie de rendu reste nécessaire.

Correction commune, deuxième partie : choisir le rendu

Trois approches placent contenu et balises dans le HTML avant JavaScript, classées par réduction du risque SEO :

  1. Prérendu ou génération statique, SSG. Construire un fichier HTML par route à la compilation. C’est le risque le plus faible pour le contenu stable ; chaque bibliothèque propose un chemin de prérendu.
  2. Rendu côté serveur, SSR. Produire le HTML à chaque requête, puis l’hydrater dans le navigateur. Les méta-frameworks sont Next.js, Nuxt, Angular SSR, SvelteKit et SolidStart. Pour un site de contenu destiné au classement, c’est souvent la correction la plus nette.
  3. Rester entièrement en CSR tout en assurant l’exploration. Acceptable pour une interface derrière une connexion sans besoin de classement, mais mauvais choix par défaut pour le contenu public.

Décidez par route, pas par application. Une page marketing et un tableau de bord connecté peuvent suivre des stratégies différentes. Pour chaque route, examinez :

  • Sortie : le contenu doit-il figurer dans la réponse initiale ?
  • Actualité : peut-il être construit une fois ou change-t-il à chaque requête ?
  • Personnalisation : varie-t-il par visiteur, ce qui exclut le prérendu ?
  • Coût serveur : le SSR calcule à chaque requête ; le prérendu déplace le coût à la compilation.
  • Dépendance à JavaScript : quelle part de l’utilité exige son exécution ?
  • Échec : sans JavaScript, la route reste-t-elle utilisable ou devient-elle vide ?

La question est la même partout : ce contenu doit-il être classé ou cité ? Si oui, placez-le dans le HTML serveur ou prérendu. Pour une interface purement applicative, le CSR convient.

Traitement par Google et différences avec les autres robots

Google peut rendre ces cinq technologies avec un Chrome sans interface et récent, mais dans une file différée. Le moteur est sans état : pas de cookies ou localStorage persistants, de service workers ni d’interactions. Les règles du SEO JavaScript restent donc valables : vrais liens <a href>, parité HTML brut/rendu, contenu non conditionné à un clic et absence de noindex injecté.

Chez les autres fournisseurs, Bing rend JavaScript de manière plus irrégulière et les robots IA ne le rendent souvent pas du tout. Un contenu CSR peut donc finir par exister pour Google mais rester absent ailleurs. SSR et prérendu ferment cet écart pour tous les robots, meilleur argument contre un contenu public uniquement CSR.

Les cinq outils en un coup d’œil

OutilDéfautGestion du headSSR ou méta-frameworkRemarque SEO
ReactCSRreact-helmet-asyncNext.jsSPA CSR très courante ; Next.js est la correction habituelle
VueCSR@unhead/vueNuxt avec useSeoMeta()Nuxt utilise le SSR par défaut ; Vue seul exige Nuxt ou un prérendu
AngularCSR, SPAservices Title et MetaAngular SSRLes versions modernes ajoutent SSR et hydratation incrémentale
SvelteCSR ; SvelteKit en SSR<svelte:head>SvelteKitSSR par défaut ; attention au piège statique ssr:false
SolidJSCSR@solidjs/metaSolidStartRéactivité fine ; SolidStart apporte SSR et prérendu

Le schéma reste constant : défaut CSR, outil de gestion du head et stratégie de rendu, généralement via le méta-framework correspondant. Seuls les noms et quelques pièges changent.

Guides détaillés par framework

Cette page sert de carte. Chaque outil dispose d’un guide consacré aux bibliothèques, réglages et pièges :

  • SEO React — risques du CSR, React Router, History API, react-helmet-async et choix de Next.js.
  • SEO Vue — défaut CSR de Vue 3, createWebHistory(), @unhead/vue, prérendu et recours à Nuxt.
  • SEO Angular — défaut SPA, @angular/ssr, services Title et Meta, prérendu et hydratation incrémentale.
  • SEO Svelte — Svelte et SvelteKit, SSR, <svelte:head>, piège adapter-static avec ssr: false et robots IA.
  • SEO SolidJS — défaut CSR, @solidjs/meta, SolidStart, prérendu et effet de la réactivité fine sur le HTML.

Pour CSR, SSR, SSG, ISR, hydratation, rendu dynamique et règles de parité, consultez le guide parent SEO JavaScript.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.