Les sites construits avec des frameworks JavaScript (React, Vue, Angular) présentent des défis SEO spécifiques. Google peut exécuter le JavaScript, mais pas toujours correctement. Voici les erreurs d'indexation les plus courantes et comment les résoudre.

Comprendre le problème JavaScript et SEO

Google indexe les pages en deux vagues :

  • Première vague : crawl du HTML brut
  • Deuxième vague : exécution du JavaScript (si ressources disponibles)

Le problème : la deuxième vague peut prendre des jours, voire des semaines. Et parfois, Google ne voit pas tout votre contenu.

Erreur 1 : Contenu généré uniquement côté client

Si votre contenu est rendu uniquement par JavaScript dans le navigateur, Google peut ne pas le voir.

Les conséquences

  • Pages indexées sans contenu (HTML vide)
  • Titres et descriptions manquants
  • Aucun positionnement possible

Comment vérifier

  • Utilisez "Afficher la source" (pas "Inspecter")
  • Testez avec l'outil d'inspection d'URL de Search Console
  • Désactivez JavaScript et voyez ce qui s'affiche

La solution

  • SSR (Server-Side Rendering) : rendu sur le serveur
  • SSG (Static Site Generation) : pages pré-générées
  • Hydratation : HTML initial + JavaScript pour l'interactivité

Erreur 2 : Liens en JavaScript non crawlables

Les liens gérés par JavaScript (onClick, routeur SPA) peuvent être invisibles pour Google.

Les conséquences

  • Pages non découvertes par le crawl
  • Maillage interne non pris en compte
  • Parties du site non indexées

Liens problématiques

  • <a onclick="navigate('/page')"> sans href
  • <div onClick={...}> pour la navigation
  • Boutons qui changent l'URL sans vrais liens

La solution

  • Toujours utiliser des balises <a href="/page">
  • Le href doit contenir l'URL réelle
  • Le JavaScript peut enrichir, mais le lien doit fonctionner sans

Erreur 3 : Balises meta générées côté client

Si vos balises title et meta description sont injectées par JavaScript, elles peuvent être ignorées.

Les conséquences

  • Titres génériques dans les SERP
  • Descriptions générées automatiquement par Google
  • CTR dégradé

La solution

  • Balises meta présentes dans le HTML initial
  • Utiliser des outils comme React Helmet avec SSR
  • Vérifier avec l'inspection d'URL de Search Console

Erreur 4 : Contenu chargé au scroll (lazy loading mal implémenté)

Le contenu qui ne se charge qu'au scroll peut être invisible pour Google.

Les conséquences

  • Produits en bas de page non indexés
  • Contenu tronqué dans l'index
  • Pages incomplètes

La solution

  • Le HTML complet doit être présent au chargement initial
  • Lazy loading pour les images, pas pour le contenu texte
  • S'assurer que le contenu est accessible sans scroll

Erreur 5 : Contenu derrière des interactions

Le contenu accessible uniquement après un clic (onglets, accordeons, modales) peut être dévalué.

Les conséquences

  • Contenu caché considéré comme secondaire
  • Moins de poids SEO
  • Potentiellement non indexé

La solution

  • Le contenu important doit être visible par défaut
  • Utiliser des onglets cachés en CSS, pas en JavaScript
  • Vérifier ce que Google voit avec l'outil d'inspection

Erreur 6 : Ressources JavaScript bloquées

Si robots.txt bloque vos fichiers JavaScript, Google ne peut pas rendre vos pages.

Les conséquences

  • Pages vides ou cassées dans l'index
  • Contenu non visible
  • Problèmes de rendu

La solution

  • Ne jamais bloquer les fichiers JS et CSS nécessaires au rendu
  • Vérifier robots.txt
  • Tester le rendu dans Search Console

Erreur 7 : Problèmes de routage SPA

Les Single Page Applications changent l'URL sans charger de nouvelle page, ce qui peut perturber le crawl.

Les conséquences

  • Une seule page indexée au lieu de plusieurs
  • URLs non reconnues par Google
  • Historique de navigation cassé

La solution

  • Utiliser l'API History (pushState) correctement
  • Chaque "page" doit avoir une URL unique et accessible directement
  • Le serveur doit répondre correctement à chaque URL

Erreur 8 : Temps de rendu trop long

Google accorde un temps limité à l'exécution du JavaScript. Un site lent peut être abandonné.

Les conséquences

  • Contenu partiellement rendu
  • Timeout avant chargement complet
  • Indexation incomplète

La solution

  • Optimiser les bundles JavaScript (code splitting)
  • Réduire le temps de rendu initial
  • Privilégier SSR pour le contenu critique

Erreur 9 : Erreurs JavaScript silencieuses

Une erreur JS peut bloquer le rendu sans que vous le sachiez.

Les conséquences

  • Page blanche ou partiellement rendue
  • Contenu manquant
  • Problèmes d'indexation intermittents

La solution

  • Surveiller les erreurs dans Search Console
  • Tester régulièrement le rendu
  • Implémenter une gestion d'erreurs robuste

Erreur 10 : Pas de fallback HTML

Si JavaScript échoue, il ne reste rien à indexer.

La solution

  • Toujours prévoir un contenu HTML de base
  • Progressive enhancement : le JS enrichit, ne crée pas
  • Tester sans JavaScript pour vérifier

Outils de diagnostic

  • Search Console > Inspection d'URL : voir ce que Google voit
  • Mobile-Friendly Test : test de rendu
  • Lighthouse : audit SEO et performance
  • Screaming Frog (mode JavaScript) : crawl avec rendu JS
  • Chrome DevTools > Désactiver JavaScript : test sans JS

Conclusion

Les sites JavaScript peuvent être parfaitement indexés s'ils sont bien conçus. La clé est de s'assurer que le contenu essentiel est accessible dans le HTML initial, sans dépendre uniquement du rendu client.

Les points clés à retenir :

  • Privilégiez le SSR ou SSG pour le contenu critique
  • Utilisez de vrais liens <a href>
  • Testez régulièrement avec l'outil d'inspection de Search Console
  • Ne bloquez jamais les ressources JS/CSS nécessaires

Termes du glossaire SEO

Retrouvez les définitions dans notre glossaire SEO :