Les bases du SEO JavaScript : faire indexer vos pages JS
Comprenez comment Google explore, affiche et indexe le JavaScript, et appliquez les bonnes pratiques pour rendre vos pages JS visibles.
Le JavaScript permet de transformer un site en véritable application web, mais il complique le travail des moteurs de recherche. Google sait exécuter le JavaScript grâce à une version de Chromium tenue à jour, à condition que votre code respecte certaines règles. Si une partie de votre contenu n’apparaît qu’après l’exécution de scripts, vous devez vous assurer que Google parvient bien à le générer et à le lire.
Maîtriser ces bases est décisif pour le SEO d’un site moderne : un contenu qui ne se rend pas correctement ne sera tout simplement pas indexé. L’enjeu est de rendre vos applications web aussi accessibles aux robots qu’aux utilisateurs, en sécurisant l’exploration des liens, l’affichage du contenu et la transmission des métadonnées générées dynamiquement.
Première chose que je remets à plat : Google explore, affiche puis indexe en trois phases distinctes, et que le rendu JavaScript n’est jamais instantané. L’erreur que je rencontre le plus, ce sont des applications monopages qui ne renvoient pas de vrais codes d’état, où une page d’erreur répond malgré tout en 200. Avant d’optimiser quoi que ce soit, je vérifie que le contenu critique est bien présent une fois la page rendue.
Les trois phases : exploration, affichage, indexation
Google traite une application JavaScript en trois étapes. D’abord l’exploration : Googlebot lit le fichier robots.txt, et si l’URL est autorisée, il récupère le HTML et en extrait les liens pour la file d’attente. Ensuite l’affichage : toute page renvoyant un code 200, sauf si une règle noindex est présente, est mise en file d’attente pour être rendue par un Chromium headless qui exécute le JavaScript. Enfin l’indexation : Google utilise le HTML rendu pour indexer le contenu et redécouvrir d’éventuels nouveaux liens.
| Phase | Ce que fait Google | Point de vigilance |
|---|---|---|
Exploration |
Lit robots.txt, récupère le HTML, extrait les liens href |
Une URL bloquée par robots.txt n’est ni explorée ni rendue |
Affichage |
Met en file d’attente puis exécute le JavaScript via Chromium headless |
Seules les pages en code 200 sans noindex sont rendues |
Indexation |
Indexe le HTML rendu et en extrait les nouveaux liens |
Un contenu absent du rendu HTML ne sera pas indexé |
Décrire la page : titres, extraits et URL canonique
Des éléments title uniques et descriptifs, accompagnés de meta descriptions soignées, aident les utilisateurs à repérer votre page dans les résultats. Vous pouvez définir ou modifier ces éléments en JavaScript. Même chose pour la balise link rel= »canonical », mais avec prudence : la meilleure façon de la définir reste le HTML d’origine, comme l’explique notre guide sur le choix de l’URL canonique. Si vous l’injectez en JavaScript, veillez à ce qu’elle soit unique et à ne jamais écraser une valeur déjà présente dans le HTML par une URL différente.
Routage et codes d'état dans les applications monopages
Google s’appuie sur les codes d’état HTTP pour détecter les erreurs : un 404 pour une page introuvable, un 401 pour une page protégée. Dans une application monopage où le routage est géré côté client, renvoyer un vrai code d’état est parfois impossible, ce qui génère des erreurs soft 404. Deux stratégies évitent ce piège : rediriger en JavaScript vers une URL renvoyant un vrai 404 côté serveur, ou ajouter une balise noindex aux pages d’erreur. Pour le routage, utilisez l’API History plutôt que des fragments d’URL : Google ne sait pas résoudre de façon fiable les liens construits avec un dièse, d’où l’importance d’exposer des liens explorables.
<!-- A EVITER : liens en fragments, non resolus de facon fiable -->
<nav>
<a href="#/produits">Nos produits</a>
<a href="#/services">Nos services</a>
</nav>
<!-- A FAIRE : liens avec href reels et API History cote script -->
<nav>
<a href="/products">Nos produits</a>
<a href="/services">Nos services</a>
</nav>
Manier la balise meta robots avec précaution
Vous pouvez ajouter ou modifier une balise meta robots en JavaScript, par exemple pour ajouter un noindex à une page dont l’appel d’API ne renvoie aucun contenu. Attention toutefois : lorsque Google détecte un noindex, il peut ignorer l’affichage et l’exécution du JavaScript. Vouloir RETIRER un noindex par script ne fonctionne donc pas de façon fiable. Si vous souhaitez qu’une page soit indexée, ne placez jamais de noindex dans son HTML d’origine. En cas de blocage persistant, voyez comment résoudre les problèmes JavaScript.
Dès que Google repère une règle noindex dans le HTML initial, il peut décider de ne pas rendre la page ni d’exécuter son JavaScript. Compter sur un script pour transformer ensuite ce noindex en page indexable est donc voué à l’échec. Réservez le noindex aux pages que vous voulez vraiment exclure, et laissez le HTML d’origine propre pour celles que vous voulez voir dans les résultats.
À faire
- privilégier l’affichage côté serveur ou le pré-rendu
- exposer vos liens en <a href> réels
- utiliser l’API History pour le routage
- renvoyer des codes d’état HTTP exacts
- utiliser l’empreinte de contenu dans les noms de fichiers pour le cache
À éviter
- bloquer vos ressources JS ou CSS dans robots.txt
- construire la navigation avec des fragments d’URL
- tenter de retirer un noindex via JavaScript
- injecter plusieurs balises canoniques en conflit
- laisser des soft 404 dans une application monopage
Points clés à retenir
- Assurez-vous que votre contenu apparaît bien dans le HTML rendu.
- Exposez vos liens en éléments <a> avec un href réel.
- Utilisez l'API History plutôt que des fragments pour le routage.
- Renvoyez des codes d'état HTTP adaptés pour éviter les soft 404.
- Ne tentez jamais de retirer un noindex en JavaScript.
Google explore, affiche puis indexe vos pages JavaScript en trois phases distinctes.
Quiz : testez vos connaissances
Quiz : testez vos connaissances
-
Quelles sont les trois phases du traitement d'une application JavaScript par Google ?
- L'exploration, l'affichage puis l'indexation
- La validation, le cloaking puis la mise en cache
- Le téléchargement, la compression puis la diffusion
Google traite une application JavaScript en trois étapes distinctes. D’abord l’exploration, ensuite l’affichage des pages renvoyant un code 200, puis l’indexation.
-
Google exécute-t-il réellement le JavaScript de vos pages ?
- Non, il ignore totalement le JavaScript
- Oui, mais uniquement si la page est bloquée dans le robots.txt
- Oui, via une version de Chromium tenue à jour, si le code respecte ses règles
Google sait exécuter le JavaScript grâce à une version de Chromium tenue à jour, à condition que votre code respecte certaines règles. L’affichage peut toutefois être différé.
-
Peut-on retirer une règle noindex présente dans le HTML initial à l'aide de JavaScript ?
- Non, dès que Google repère un noindex il peut ne pas exécuter le JavaScript
- Oui, à condition d'injecter aussi une balise canonique
- Oui, un script suffit toujours à annuler le noindex
Dès que Google repère une règle
noindexdans le HTML initial, il peut décider de ne pas rendre la page ni d’exécuter son JavaScript. Compter sur un script pour le retirer ne fonctionne pas.
Besoin d'un accompagnement SEO ?
Un site JavaScript mal configuré peut rester invisible dans Google malgré un contenu de qualité.