Que dit Google sur le SEO ? /
Quiz SEO Express

Testez vos connaissances SEO en 5 questions

Moins d'une minute. Decouvrez ce que vous savez vraiment sur le referencement Google.

🕒 ~1 min 🎯 5 questions

Declaration officielle

Si un chat modifie le titre de page via JavaScript, il est conseillé de placer le chat derrière une interaction utilisateur pour éviter que Google n'indexe la version modifiée du titre.
3:43
🎥 Vidéo source

Extrait d'une vidéo Google Search Central

⏱ 6:21 💬 EN 📅 16/03/2020 ✂ 10 déclarations
Voir sur YouTube (3:43) →
Autres déclarations de cette vidéo 9
  1. 1:48 Faut-il vraiment conserver vos anciens assets CSS et JS pour éviter les erreurs de crawl ?
  2. 2:05 Faut-il vraiment conserver les anciens assets CSS/JS pour Googlebot ?
  3. 2:40 Faut-il vraiment pré-rendre 100% du contenu pour que Googlebot l'indexe correctement ?
  4. 2:40 Le prerendering JavaScript pose-t-il encore des risques d'indexation en SEO ?
  5. 3:43 Comment éviter que JavaScript réécrive vos balises title et sabote votre indexation Google ?
  6. 4:15 Faut-il vraiment se méfier du JavaScript dans un contenu pré-rendu ?
  7. 4:35 Le JavaScript post-prerendering est-il vraiment sans danger pour le SEO ?
  8. 5:19 Faut-il vraiment privilégier le SSR et le prerendering pour améliorer son crawl ?
  9. 5:19 Le dynamic rendering va-t-il vraiment disparaître du SEO ?
📅
Declaration officielle du (il y a 6 ans)
TL;DR

Google peut indexer un titre de page modifié par JavaScript si ce changement se produit au chargement initial. Martin Splitt recommande de déclencher ces modifications uniquement après une interaction utilisateur pour garder le contrôle sur le titre indexé. Concrètement : si votre titre change dynamiquement sans action de l'utilisateur, Google risque d'indexer la version modifiée plutôt que votre <title> d'origine.

Ce qu'il faut comprendre

Pourquoi Google indexe-t-il parfois un titre modifié par JavaScript ?

Google exécute le JavaScript des pages lors du crawl et de l'indexation. Si un script modifie le contenu de la balise pendant le rendu de la page — avant toute interaction utilisateur — le moteur peut interpréter cette version dynamique comme le titre définitif.

Le problème surgit quand cette modification n'était pas destinée à l'indexation. Certains sites utilisent du JS pour personnaliser l'affichage selon le contexte (geolocalisation, heure, A/B testing) sans anticiper que Googlebot verra et indexera cette variante. Résultat : le titre qui apparaît dans les SERP ne correspond pas à celui prévu par le SEO.

Que signifie « placer derrière une interaction utilisateur » concrètement ?

Martin Splitt conseille de déclencher la modification du titre uniquement après un événement utilisateur explicite : clic, scroll, hover, saisie dans un champ. Cette approche garantit que Googlebot, qui ne simule pas ces interactions lors du rendu initial, indexera le HTML d'origine.

Techniquement, cela implique d'éviter les scripts qui s'exécutent au DOMContentLoaded ou au chargement immédiat de la page. Tout changement de titre doit être conditionné par un addEventListener() sur une action humaine. C'est une nuance cruciale : le timing d'exécution du script fait toute la différence.

Cette recommandation s'applique-t-elle à tous les types de modifications dynamiques ?

La directive vise spécifiquement les modifications de titre non intentionnelles pour l'indexation. Si vous changez volontairement le titre via JS pour améliorer le SEO — par exemple en injectant un mot-clé calculé côté client — et que vous voulez que Google l'indexe, alors pas besoin de le bloquer.

En revanche, si le changement est purement cosmétique, contextuel ou destiné à l'UX (affichage d'un compteur, notification, personnalisation), alors oui, isolez-le derrière une interaction. La règle d'or : ce que Googlebot voit au premier rendu = ce qui sera indexé.

  • Google exécute le JavaScript et peut indexer un titre modifié dynamiquement si le script tourne au chargement initial
  • Placer derrière interaction utilisateur signifie conditionner le changement de titre à un événement explicite (clic, scroll, etc.)
  • Timing critique : un script qui s'exécute au DOMContentLoaded est visible par Googlebot, un script déclenché par un clic ne l'est pas
  • Distinction intentionnelle : si vous voulez que Google indexe le titre modifié, laissez-le accessible au premier rendu ; sinon, isolez-le
  • Impact sur les SERP : un titre indexé par erreur peut nuire au CTR et à la cohérence de votre stratégie de mots-clés

Avis d'un expert SEO

Cette recommandation est-elle cohérente avec les observations terrain ?

Oui, et c'est même une confirmation attendue. Les tests de rendu via Search Console (outil d'inspection d'URL) montrent depuis des années que Googlebot exécute le JS et capture l'état du DOM après rendu. Si un script modifie le titre avant que ce snapshot soit pris, Google l'indexe.

Ce qui est nouveau ici, c'est la solution explicite : isoler ces modifications derrière une interaction. Martin Splitt aurait pu dire « désactivez le JS côté serveur » ou « utilisez un SSR propre », mais il propose une approche plus nuancée qui respecte les besoins UX. Reste que cette consigne suppose un audit JS minutieux — combien de sites savent précisément quel script touche au et quand ?

Quelles limites faut-il signaler ?

Premier point : Google ne garantit jamais qu'il utilisera le que vous lui fournissez. Même si vous suivez ce conseil à la lettre, le moteur peut réécrire votre titre en fonction du contexte de la requête, du contenu de la page ou de ses propres heuristiques. Cette directive limite les modifications accidentelles, pas les réécritures algorithmiques.

Deuxième point : [À vérifier] Aucune donnée publique ne quantifie l'impact réel d'un titre mal indexé sur le ranking ou le CTR. On sait que Google privilégie la cohérence sémantique entre titre, H1 et contenu, mais l'ampleur de la pénalité (si pénalité il y a) reste floue. Cette recommandation relève surtout du contrôle qualité : vous voulez maîtriser ce qui apparaît dans les SERP, point.

Dans quels cas cette règle est-elle difficile à appliquer ?

Les applications monopages (SPA) posent un défi particulier. Dans une SPA React ou Vue, le titre change souvent à chaque navigation client-side via un router. Techniquement, ces changements surviennent après interaction (clic sur un lien interne), donc Google ne devrait pas les indexer sur la page d'origine. Mais quid des URL pushState/replaceState ? Si Google crawle directement une de ces URLs, il verra le titre correspondant — et c'est voulu.

Autre cas épineux : les tests A/B côté client. Si vous testez des variantes de titre via JS pour mesurer le CTR organique, vous risquez que Google indexe une version non représentative. La solution ? Soit passer par un A/B serveur (mais c'est coûteux en dev), soit accepter le risque et surveiller de près les données d'indexation. Pas de solution miracle ici — c'est un arbitrage entre rigueur SEO et agilité produit.

Impact pratique et recommandations

Que faut-il auditer en priorité sur son site ?

Commencez par lister tous les scripts qui touchent à document.title ou à l'élément <title> du DOM. Un grep dans votre codebase sur « document.title = » ou « .textContent » appliqué à title révèle souvent des surprises : librairies analytics, chats tiers, widgets de notification.

Ensuite, testez le rendu via Search Console (Inspection d'URL > Afficher la page explorée). Comparez le titre HTML source avec celui capturé après rendu. Si les deux diffèrent et que ce n'était pas intentionnel, vous avez un candidat à corriger. Répétez l'opération sur un échantillon représentatif de templates — homepage, fiches produit, articles, landing pages.

Comment implémenter la protection par interaction utilisateur ?

Plutôt que d'exécuter votre script de modification de titre au load ou au DOMContentLoaded, attachez-le à un événement utilisateur. Par exemple, si vous affichez un compteur de temps passé dans le titre, déclenchez-le au premier scroll ou au premier clic dans la page.

Côté code : remplacez window.addEventListener('load', modifyTitle) par document.addEventListener('click', modifyTitle, { once: true }). Le flag { once: true } garantit que le listener ne se déclenche qu'une fois, évitant les répétitions. Alternative : déclenchez au premier mousemove si vous avez besoin que ça se lance plus tôt, mais gardez en tête que Googlebot ne simule aucun de ces événements.

Quelles erreurs éviter absolument ?

Ne confondez pas « derrière interaction » avec « en différé ». Utiliser un setTimeout() de 3 secondes ne protège pas votre titre : Googlebot attend souvent plusieurs secondes pour que le JS finisse de s'exécuter, et votre script tournera quand même. Seule une interaction humaine authentique (clic, touch, keypress) est ignorée par le bot.

Autre piège : oublier les dépendances tierces. Les scripts de chat, de personnalisation, de tracking peuvent modifier le titre sans que vous le sachiez. Auditez vos tag managers et vos scripts async. Si vous ne contrôlez pas directement le code, passez par une politique CSP (Content Security Policy) pour restreindre les modifications du DOM, ou encapsulez ces scripts dans un contexte isolé.

  • Lister tous les scripts qui modifient document.title (grep codebase + audit tag manager)
  • Tester le rendu via Search Console sur un échantillon de templates représentatifs
  • Remplacer les listeners load/DOMContentLoaded par des événements utilisateur (click, scroll, mousemove)
  • Vérifier que les scripts tiers (chat, analytics) ne modifient pas le titre au chargement
  • Documenter les exceptions volontaires (titres dynamiques destinés à l'indexation)
  • Monitorer les changements de titre indexé via les rapports de couverture et les logs de crawl
Maîtriser le titre indexé par Google passe par un audit JS rigoureux et une refonte des déclencheurs de scripts. Si ces optimisations vous semblent complexes à orchestrer seul — entre audit technique, refactoring du code et coordination avec les équipes dev —, faire appel à une agence SEO spécialisée peut accélérer la mise en conformité et sécuriser votre stratégie d'indexation.

❓ Questions frequentes

Google indexe-t-il systématiquement le titre modifié par JavaScript ?
Oui, si la modification survient avant la capture du rendu par Googlebot. Le moteur exécute le JS et indexe l'état du DOM après rendu, incluant tout changement de titre qui s'est produit automatiquement au chargement.
Un setTimeout de quelques secondes suffit-il à éviter l'indexation du titre modifié ?
Non. Googlebot attend souvent plusieurs secondes pour que le JS finisse de s'exécuter. Seule une interaction utilisateur réelle (clic, scroll) garantit que le script ne tournera pas pendant le crawl.
Faut-il appliquer cette recommandation aux applications monopages (SPA) ?
Dans une SPA, les changements de titre liés à la navigation client-side surviennent après interaction (clic sur lien), donc Google ne les indexera pas sur la page d'origine. En revanche, si Google crawle directement une URL pushState, il verra le titre correspondant — et c'est souvent voulu.
Comment vérifier si Google a indexé un titre modifié par erreur ?
Utilisez l'outil d'inspection d'URL dans Search Console et comparez le titre HTML source avec celui affiché dans l'onglet 'Page explorée'. Un écart non intentionnel signale un problème.
Cette directive empêche-t-elle Google de réécrire mon titre dans les SERP ?
Non. Google peut toujours réécrire votre titre selon ses propres heuristiques, indépendamment du JS. Cette recommandation limite seulement les modifications accidentelles côté client, pas les réécritures algorithmiques.
🏷 Sujets associes
Anciennete & Historique Contenu Crawl & Indexation IA & SEO JavaScript & Technique

🎥 De la même vidéo 9

Autres enseignements SEO extraits de cette même vidéo Google Search Central · durée 6 min · publiée le 16/03/2020

🎥 Voir la vidéo complète sur YouTube →

Declarations similaires

💬 Commentaires (0)

Soyez le premier à commenter.

2000 caractères restants
🔔

Recevez une analyse complète en temps réel des dernières déclarations de Google

Soyez alerté à chaque nouvelle déclaration officielle Google SEO — avec l'analyse complète incluse.

Aucun spam. Désinscription en 1 clic.