Le rendu en deux vagues
Voici le point clé, souvent mal compris : Google traite une page en deux temps. Il explore d’abord le HTML brut et en indexe le contenu immédiatement. Puis, quand ses ressources le permettent, il exécute le JavaScript dans une seconde vague, plus tardive et plus coûteuse. Le contenu qui n’existe qu’après cette exécution est donc indexé avec retard — ou pas, si le rendu échoue.
Ce qui peut mal tourner
Sur un site fortement dépendant du JS, plusieurs contenus deviennent fragiles :
- Le contenu principal injecté après chargement : invisible dans le HTML initial.
- Les liens simulés par JavaScript (clics sur des
div) au lieu de vrais<a href>. - Les balises (
title, canonical, meta) modifiées tardivement par le JS. - Les données structurées ajoutées côté client.
Les stratégies de rendu
Plusieurs approches fiabilisent l’indexation :
- Rendu côté serveur (SSR) : le serveur renvoie un HTML déjà complet, puis le JS « hydrate » la page. Le contenu est présent dès la vague 1.
- Rendu statique / prérendu : les pages sont générées à l’avance en HTML complet (l’approche de ce site).
- Rendu dynamique : servir une version prérendue aux robots — solution de transition, moins recommandée aujourd’hui.
Le principe commun : que le contenu important soit dans le HTML initial, sans dépendre de l’exécution JS.
Des vrais liens, toujours
Un lien n’est suivi de façon fiable que s’il est un véritable <a> avec un href présent dans le HTML. Les navigations reposant sur des gestionnaires d’événements ne sont pas des liens pour Google : elles n’assurent ni la découverte des pages ni la transmission d’autorité. La navigation et le maillage doivent reposer sur de vrais liens.
Tester le rendu réel
Ne jugez jamais le SEO d’un site JS sur ce que le navigateur affiche. On compare le code source brut (ce que Google voit en vague 1) au HTML rendu (après JS). L’inspection d’URL de la Search Console et les outils de test de rendu montrent ce que Google obtient réellement. Tout écart sur le contenu, les liens ou les balises est un risque à traiter.
En résumé
Le JavaScript n’est pas l’ennemi du SEO — le rendu tardif l’est. En plaçant le contenu essentiel dans le HTML initial (SSR, prérendu), en utilisant de vrais liens et en testant le rendu réel, on obtient des sites modernes et fiablement indexés. C’est un enjeu majeur lors d’une migration vers un CMS ou un framework JavaScript.