Comment Googlebot gère le JavaScript
Googlebot visite les pages en deux temps. D'abord, il télécharge le HTML brut. Ensuite, dans une file d'attente distincte, il exécute le JavaScript pour obtenir le rendu final de la page. Ce deuxième passage peut prendre plusieurs jours, voire plusieurs semaines selon la taille du site.
Concrètement : si votre contenu principal (texte, liens, balises) est injecté par JavaScript après le chargement, Googlebot ne le verra pas lors du premier passage. Il peut l'indexer plus tard, ou pas du tout si la file de rendu est saturée.
Problèmes SEO courants liés au JavaScript
| Problème | Cause JS | Conséquence SEO |
|---|---|---|
| Contenu non indexé | Texte injecté après chargement | Page introuvable sur Google |
| Liens non suivis | Navigation générée en JS | Pages orphelines, maillage interne cassé |
| Métadonnées manquantes | Balises title/meta injectées en JS | Mauvais snippets dans les résultats |
| Délai de rendu élevé | JS lourd, dépendances multiples | Score Core Web Vitals dégradé |
| URLs hachées (#fragment) | Navigation SPA sans History API | Pages non indexables |
CSR, SSR et SSG : ce que ça change pour le SEO
Les frameworks JavaScript modernes (React, Vue, Angular, Next.js) offrent différents modes de rendu :
- CSR (Client-Side Rendering) : le HTML est vide, tout est construit dans le navigateur. C'est le mode le plus risqué pour le SEO car Googlebot doit exécuter le JS pour voir quoi que ce soit.
- SSR (Server-Side Rendering) : le serveur génère le HTML complet avant de l'envoyer. Googlebot reçoit une page déjà rendue. C'est la solution recommandée pour les sites qui misent sur le SEO.
- SSG (Static Site Generation) : les pages sont pré-générées au moment du build. Idéal en termes de performance et d'indexation.
Recommandations pratiques
-
Privilégier le contenu dans le HTML statique
Les éléments critiques pour le SEO (H1, texte principal, liens de navigation, balises meta) doivent être présents dans le source HTML, sans dépendre du JS.
-
Tester avec "Afficher la source" vs "Inspecter"
Ctrl+U affiche le HTML brut reçu par Googlebot. Si votre contenu n'y apparaît pas mais est visible dans les outils développeur, il est en JS pur et potentiellement invisible.
-
Utiliser l'outil "Inspecter l'URL" dans Search Console
Google Search Console permet de tester le rendu d'une URL tel que Googlebot la voit. C'est le moyen le plus fiable de détecter un problème de rendu JS.
-
Opter pour SSR ou SSG si l'indexation est prioritaire
Pour les sites e-commerce, les blogs ou tout site dont le SEO est un levier commercial, éviter le rendu côté client pur. Next.js, Nuxt.js ou un générateur statique sont des alternatives solides.
Le PHP et le HTML statique restent les approches les plus simples et les plus sûres pour l'indexation : le contenu est disponible immédiatement, sans délai de rendu.