Guide de visibilité
Rendu JavaScript et SEO : pourquoi des pages rapides restent non indexées
Une page peut être rapide après hydratation tout en restant difficile à explorer, à rendre ou à indexer. Rendez observables la réponse initiale, les dépendances de rendu, les liens et les codes d'état.
Une page rapide n'est pas automatiquement une page indexable. Les utilisateurs peuvent voir une interface soignée après l'exécution de JavaScript, tandis qu'un crawler reçoit une coquille d'application vide, un script bloqué, une requête API en échec, une directive noindex ou le mauvais statut HTTP. La visibilité dans les moteurs de recherche dépend de l'ensemble du chemin, de la découverte à l'indexation, et pas seulement de ce qui apparaît après une session navigateur réussie.
Google décrit le traitement par Search de JavaScript en trois phases : exploration, rendu et indexation. Google peut exécuter JavaScript avec une version evergreen de Chromium, mais le rendu est une étape de traitement ultérieure qui peut être retardée ou échouer. Le rendu côté serveur ou le pré-rendu peuvent accélérer les pages pour les utilisateurs et les crawlers, tout en réduisant le nombre de dépendances nécessaires avant que le contenu n'existe.
Le diagnostic clé
Comparez la réponse HTTP brute avec le HTML rendu. Si le texte, les liens, la canonique ou le comportement de statut importants n'existent qu'après un travail fragile côté client, la page a une dépendance SEO qui doit être testée.
Pourquoi des pages rapides échouent encore
Le HTML initial ne contient aucun contenu utile
Une coquille d'application peut renvoyer une réponse 200 avec un élément racine et un bundle JavaScript, mais sans titre, en-têtes, contenu rédactionnel, données produit ni liens explorables. Un navigateur peut finalement remplir la page. Un crawler doit d'abord télécharger le bundle, l'exécuter, appeler des API, attendre ces API, puis rendre le résultat. Chaque dépendance représente une nouvelle possibilité d'échec ou de délai.
Les ressources de rendu sont bloquées ou indisponibles
Les règles robots, les politiques d'accès CDN, les challenges WAF, l'authentification, les limites de débit, les erreurs DNS et les défaillances tierces peuvent empêcher le chargement des scripts ou des réponses API. Si un fichier JavaScript requis est bloqué, Google indique qu'il ne rendra pas le JavaScript issu de ce fichier ou de cette page bloqués. Un test de navigateur depuis une adresse IP de bureau autorisée ne prouve pas qu'un crawler voit la même chose.
L'application renvoie le mauvais statut
Une route de produit manquant doit renvoyer un 404 explicite, et non une page 200 indiquant « introuvable ». Une route protégée ne doit pas rendre une coquille d'apparence publique avec un statut de succès. Google utilise les codes d'état pour décider comment le contenu progresse dans le traitement. Une réponse 200 peut être considérée pour l'indexation, mais ne garantit pas l'indexation ; une erreur serveur persistante peut réduire l'exploration et finir par supprimer une URL.
Les liens importants ne sont pas de vrais liens
Les systèmes de recherche découvrent les URL avec la plus grande fiabilité via des éléments d'ancrage comportant un href. Un gestionnaire de clic sur un div, une URL JavaScript ou une route limitée à un fragment peut fonctionner pour une personne tout en restant difficile à explorer. Utilisez des URL classiques et l'API History pour la navigation côté client. Le guide de bonnes pratiques des liens de Google explique la différence.
Le cache sert une ressource incompatible
La documentation de Google sur le SEO JavaScript indique que Googlebot met agressivement en cache et que son système de rendu peut utiliser une ressource JavaScript ou CSS obsolète. Utilisez des noms de fichiers avec hash de contenu pour les ressources versionnées afin qu'un déploiement crée une nouvelle URL. Gardez les anciennes ressources disponibles suffisamment longtemps pour que les clients et les crawlers terminent une transition, et ne laissez pas un cache edge servir un document HTML qui pointe vers des bundles qui ne sont plus disponibles.
Étapes de mise en œuvre
1. Rendez le contenu important disponible tôt
Préférez le rendu côté serveur, la génération statique ou le pré-rendu pour les pages dont le texte et les liens doivent être indexés. Si le rendu client est nécessaire, renvoyez dans le HTML initial un titre utile, un en-tête principal, un résumé, une canonique et le contenu principal essentiel lorsque cela est possible. Il ne s'agit pas d'une instruction pour supprimer toute interactivité. C'est une manière d'éviter que la découvrabilité dépende de chaque fonctionnalité réservée au navigateur.
2. Auditez le graphe de dépendances
Listez chaque script, API, police, image et appel tiers nécessaires avant l'apparition du contenu principal. Testez les cas d'échec, de délai d'expiration, de réponse lente et de données vides. Différez les analyses et la personnalisation non essentielles. Rendez le contenu principal résilient si un service de recommandation, un fournisseur d'expérimentation ou un widget réservé au client est indisponible.
3. Vérifiez l'accès des crawlers à l'edge
Examinez robots.txt, les en-têtes de réponse, les règles CDN, le comportement du WAF, les restrictions géographiques et la vérification des bots. N'identifiez pas les crawlers légitimes par le seul user-agent sans vérifier les recommandations actuelles du fournisseur, mais assurez-vous que l'accès prévu pour la recherche n'est pas accidentellement soumis à un challenge. Confirmez que les réponses JavaScript et API ont des codes d'état et des types de contenu adaptés.
4. Utilisez des signaux SEO stables dans le HTML
Donnez à chaque page indexable un titre et une description uniques. Définissez la canonique de manière cohérente et évitez de la remplacer par une valeur différente seulement après hydratation. Ne publiez pas noindex dans le HTML d'origine en espérant que JavaScript le supprime plus tard ; Google avertit qu'une directive noindex peut provoquer l'omission du rendu et de l'exécution. Renvoyez un 404 ou un 410 pour le contenu définitivement supprimé, et utilisez des redirections permanentes côté serveur lorsqu'une page a été déplacée.
5. Testez les deux vues
Récupérez l'URL sans navigateur et enregistrez la réponse. Utilisez ensuite l'inspection d'URL de Search Console, le test des résultats enrichis lorsque pertinent et un test de navigateur contrôlé pour comparer le résultat rendu. Vérifiez le texte, les liens, les métadonnées, les données structurées, le statut, les erreurs de console, les requêtes en échec et le timing des ressources. Le guide SEO technique/GEO est une liste de vérification associée pour l'exploration et l'infrastructure.
Comment mesurer l'indexation et le rendu
Surveillez les journaux serveur et CDN pour les requêtes des crawlers, les codes de réponse, la latence, les octets transférés, les requêtes bloquées et les échecs de ressources répétés. Séparez les requêtes HTML des requêtes JavaScript, CSS, image et API. Comparez le contenu de la réponse brute avec le HTML rendu pour un échantillon de modèles après chaque changement de framework ou de routage.
Dans Search Console, examinez l'inspection d'URL, le statut d'indexation, les statistiques d'exploration et le rapport sur les performances. Recherchez des tendances telles que de nombreuses URL dans « découverte(s), actuellement non indexée(s) », des soft 404, des erreurs serveur, des canoniques dupliquées ou des pages dont le contenu indexé ne contient pas le texte principal. Ces rapports ne prouvent pas une cause unique, mais ils réduisent le champ de l'investigation.
Enfin, mesurez séparément la performance utilisateur. LCP, INP et CLS décrivent l'expérience après la diffusion ; ils ne prouvent pas que le crawler a reçu le bon document. Une mise en œuvre résiliente satisfait les deux publics : un HTML et des liens utiles pour la découverte, un rendu fiable pour l'amélioration et une interface rapide pour les personnes.
Il n'y a que deux choses difficiles en informatique : l'invalidation du cache et le choix des noms.
Intégrez le rendu à votre plan de test SEO
Échangez avec notre équipe sur l'accès des crawlers, la diffusion JavaScript, le comportement CDN et le diagnostic de l'indexation.
Nous contacter