Guide du SEO React : pourquoi le rendu côté client freine l'indexation, quand choisir le SSR ou le prérendu, comment gérer les métadonnées avec React 19 et rester lisible par les IA.

Sur cette page
En bref
React peut se positionner sur Google, mais une application monopage par défaut envoie un fichier HTML presque vide et dépend de JavaScript pour afficher le contenu, ce qui retarde l'indexation et cache la page à la plupart des robots des IA. La solution fiable consiste à livrer du HTML depuis le serveur : prérendre les pages statiques au build ou utiliser un framework avec rendu serveur (Next.js, React Router). Donnez ensuite à chaque URL un titre, une description et une canonique uniques, utilisez de vrais liens et des codes HTTP corrects, et vérifiez ce que reçoivent les robots.
Pour aller plus loin, demandez à
Quiz rapide
Le SEO est-il fait pour vous, et comment commencer ?
Sorank correspond à vos réponses
Testez-le 3 jours sur votre propre site et voyez où vous en êtes sur Google, ChatGPT et les autres IA.
Commencer mes 3 jours offerts3 jours offerts, puis vous arrêtez quand vous voulez. Résultat ou remboursé pendant 90 jours.
Le SEO React consiste à rendre une application React explorable, indexable et compréhensible par les moteurs de recherche et les assistants d'IA. React en lui-même est neutre : les problèmes viennent du rendu intégral dans le navigateur. Google confirme dans ses bases du SEO JavaScript qu'il traite les applications JavaScript en trois phases (exploration, rendu, indexation) et que le rendu côté serveur ou le prérendu « reste une excellente idée, car il rend votre site plus rapide pour les utilisateurs et les robots, et tous les robots ne peuvent pas exécuter JavaScript ».
Une application React créée en monopage livre un fichier HTML qui ne contient guère plus qu'une div racine vide et une balise script. Le navigateur télécharge le JavaScript, l'exécute et construit la page. Un robot qui ne lit que le HTML ne voit rien à indexer : ni titres, ni texte, ni liens.
Googlebot exécute bien JavaScript, mais dans une étape séparée : la page est explorée, mise en file d'attente pour le rendu, rendue dans un Chromium sans interface, et seulement ensuite les liens et le contenu rendus sont exploités. Chaque étape supplémentaire est une occasion d'échec (erreur de script, API bloquée, délai dépassé) et ajoute du retard avant que les nouvelles pages n'apparaissent dans les résultats. Notre guide du SEO JavaScript détaille ce circuit, et notre article sur l'indexation Google explique comment faire indexer les pages plus vite.
Les autres robots sont moins patients. L'analyse de Vercel de décembre 2024, The rise of the AI crawler, conclut qu'« aucun des grands robots d'IA n'exécute actuellement JavaScript », en citant GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot et PerplexityBot. Une page React rendue côté client est invisible pour ChatGPT, Claude et Perplexity, même quand Google l'indexe.
L'équipe React recommande désormais de démarrer les nouvelles applications avec un framework. En abandonnant Create React App le 14 février 2025, elle écrit dans son annonce que « le rendu serveur peut améliorer le SEO » et qu'il améliore aussi les performances en réduisant le JavaScript à télécharger avant d'afficher le contenu. Les options, de la plus faible à la plus solide pour la recherche :
| Méthode | Ce que reçoivent les robots | Verdict SEO | Outils courants |
|---|---|---|---|
| Rendu côté client (monopage) | HTML vide, contenu après JavaScript | Faible : indexation retardée, invisible pour les robots des IA | Vite + React, anciens projets Create React App |
| Rendu dynamique | HTML prérendu pour les robots seulement | Solution de contournement, déconseillée par Google | Services de prérendu, proxys à navigateur sans interface |
| Prérendu statique au build | HTML complet pour chaque URL connue | Très bon pour un contenu qui change peu | Prérendu de React Router, générateurs de sites statiques, export statique de Next.js |
| Rendu côté serveur | HTML complet à chaque requête, puis hydratation | Le meilleur pour les sites gros ou souvent mis à jour | Next.js, React Router (mode framework, ex-Remix) |
Sur le rendu dynamique, la documentation de Google est claire : c'était « une solution de contournement et non une solution à long terme », et Google recommande à la place le rendu côté serveur, le rendu statique ou l'hydratation. Si vous choisissez un framework, notre guide du SEO Next.js détaille les modes de rendu, la Metadata API et les sitemaps.
Si la migration est impossible, une application monopage peut tout de même être indexée par Google avec quelques précautions. Notre guide du SEO des applications monopages en liste les conditions ; la suite de cet article s'applique aux deux cas.
Depuis React 19 (version stable depuis le 5 décembre 2024), les composants peuvent rendre directement des balises title, meta et link, que React remonte dans le head du document. Les notes de version de React 19 précisent que cette prise en charge native fonctionne « avec les applications uniquement côté client, le SSR en flux et les Server Components ». Avant React 19, des bibliothèques comme react-helmet ou react-helmet-async faisaient ce travail, et elles restent utiles pour remplacer les valeurs par défaut route par route.
function ProductPage({ product }) {
return (
<>
<title>{`${product.name} | Shop`}</title>
<meta name="description" content={product.summary} />
<link rel="canonical" href={`https://example.com/p/${product.slug}`} />
<h1>{product.name}</h1>
</>
)
}Trois règles valent quelle que soit la méthode :
Attention
Dans une application uniquement côté client, les balises rendues par React n'existent qu'après l'exécution de JavaScript. Google peut les lire après le rendu ; les robots des IA et la plupart des robots d'aperçu des réseaux sociaux, non. Le rendu serveur ou le prérendu les place dans la réponse HTML pour tout le monde.
Google indique qu'il « ne peut découvrir vos liens que s'il s'agit d'éléments HTML a dotés d'un attribut href » et déconseille d'utiliser les fragments d'URL pour charger des contenus différents. La plupart des échecs de SEO React viennent de détails de routage :
| Erreur | Effet | Correction |
|---|---|---|
| Navigation par onClick sur une div ou un bouton | Google ne trouve aucun lien à suivre | Utiliser le composant Link du routeur, qui produit un a avec href |
| Routes à dièse (/#/produits) | Toutes les pages partagent une seule URL pour Google | Utiliser des routes basées sur l'historique (/produits) avec BrowserRouter ou un framework |
| Vue « introuvable » servie avec un statut 200 | « Soft 404 » dans Search Console | Renvoyer un vrai 404 depuis le serveur, ou ajouter un noindex en JavaScript dans une monopage pure |
| Redirections uniquement côté client | Redirections lentes ou ignorées | Utiliser des redirections serveur 301 ou 308 pour les pages déplacées |
| Contenu chargé au clic ou au défilement | Texte jamais rendu pour le robot | Rendre le contenu principal au chargement ; paginer les listes avec de vraies URL |
| JavaScript ou API bloqués dans robots.txt | Google rend une page vide | Autoriser les scripts et les points d'API dont la page a besoin |
Pour voir ce que Google rend, utilisez l'outil d'inspection d'URL de Search Console et affichez le HTML de la page testée, ou passez vos modèles de page clés dans un vérificateur d'indexabilité.
React n'a pas de sitemap intégré. Générez sitemap.xml au build à partir de vos routes et de vos données (ou avec la fonction sitemap de votre framework), n'y listez que des URL canoniques qui répondent 200, et référencez-le dans robots.txt. Un générateur de sitemap XML suffit pour un petit site statique.
Les données structurées suivent la même règle que les métadonnées : rendez le script JSON-LD avec la page, à partir des mêmes données, idéalement sur le serveur. Google peut lire un JSON-LD injecté par JavaScript après le rendu, mais un balisage absent du HTML initial est absent pour les robots qui ne font pas de rendu. Utilisez Article pour les articles, Product en e-commerce, Organization sur tout le site et BreadcrumbList pour les pages profondes.
Astuce
Lancez curl sur l'URL d'une page et cherchez dans le résultat son H1 et une phrase du corps. S'ils manquent, Google indexera peut-être la page après le rendu, mais les robots des IA ne verront rien.
Les gros paquets JavaScript dégradent les Core Web Vitals : le navigateur doit télécharger, analyser et hydrater le code avant que la page ne réagisse, ce qui pèse sur le Largest Contentful Paint et l'Interaction to Next Paint, surtout sur mobile. L'annonce de l'équipe React sur Create React App rappelle que le rendu serveur envoie moins de JavaScript et un document HTML complet, ce qui accélère le First Contentful Paint et peut réduire l'INP. Leviers utiles : découper le code par route avec React.lazy, servir des images aux dimensions explicites, charger en différé les composants sous la ligne de flottaison et auditer les scripts tiers.
Le GEO (optimisation pour les moteurs génératifs) commence par l'accès. Comme les robots des IA récupèrent le HTML brut, une page React doit livrer son texte, ses titres et son JSON-LD sans JavaScript pour être lue, résumée et citée. Un audit d'explorabilité par les IA montre ce que ces robots reçoivent de vos pages. La seconde condition, c'est un contenu digne d'être cité : des pages qui répondent à une question par section, avec sources, chiffres et définitions nettes.
C'est ce volet contenu qu'automatise Sorank, notre produit. Sorank est un logiciel SEO et GEO en autopilote : son générateur d'articles de blog rédige et publie 20, 60 ou 120 articles par mois avec sources, liens internes et images, et il se connecte aux sites sur mesure, comme un site React ou Next.js, par webhook. Son SEO Chat répond en conversation à vos questions sur les performances de votre site dans la recherche.

En résumé : servez du HTML depuis le serveur, donnez à chaque URL son titre, sa description et sa canonique, et utilisez de vrais liens. React se positionne alors comme n'importe quel site, et les assistants d'IA peuvent le lire. Pour alimenter ce site en articles conçus pour Google et les IA, consultez les offres Sorank, à partir de 49€ par mois avec 3 jours offerts.
Non. React est une bibliothèque d'interface, et son SEO dépend de la façon dont les pages sont rendues. Une application monopage rendue côté client envoie un HTML vide et repose sur l'étape de rendu de Google, ce qui retarde l'indexation et cache le contenu aux robots des IA. Le même code React servi avec un rendu serveur ou un prérendu statique se positionne comme un site classique.
Oui. Googlebot exécute JavaScript avec une version récente de Chromium et peut donc indexer le contenu qu'une application React construit dans le navigateur. Le rendu a lieu après l'exploration et peut être retardé ou échouer si des scripts plantent ou si des API sont bloquées. L'outil d'inspection d'URL de Search Console montre le HTML rendu tel que Google le voit.
Pas pour les cas simples. React 19 rend les balises title, meta et link depuis n'importe quel composant et les remonte dans le head du document. Des bibliothèques comme react-helmet-async restent utiles pour remplacer des valeurs par défaut du site route par route ou pour les anciennes versions de React.
ILS ONT ESSAYÉ SORANK AVANT VOUS
