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

Google ne considère généralement pas les URL avec des fragments de hachage (#) pour l'indexation. Il est préférable d'utiliser l'API d'historique HTML5 pour la navigation des applications JavaScript afin que Google puisse indexer correctement ces pages.
16:56
🎥 Vidéo source

Extrait d'une vidéo Google Search Central

⏱ 56:15 💬 EN 📅 12/06/2018 ✂ 10 déclarations
Voir sur YouTube (16:56) →
Autres déclarations de cette vidéo 9
  1. 13:50 Faut-il vraiment abandonner les balises hreflang dans les liens d'ancrage ?
  2. 18:29 Faut-il vraiment corriger toutes les erreurs 404 remontées dans la Search Console ?
  3. 23:48 Les avis clients et étoiles ont-ils vraiment un impact sur le classement SEO organique ?
  4. 27:56 Pourquoi vos rankings chutent-ils sans que vous ayez touché à vos pages ?
  5. 29:49 Faut-il vraiment désavouer les backlinks toxiques ou Google s'en occupe-t-il seul ?
  6. 37:15 Les impressions Search Console comptent-elles vraiment ce que vous croyez ?
  7. 42:12 La traduction de contenu est-elle considérée comme du duplicate content par Google ?
  8. 53:06 Les paramètres de langue dans l'URL peuvent-ils vraiment être indexés correctement par Google ?
  9. 54:05 Faut-il vraiment maintenir les redirections 301 pendant un an après une migration de site ?
📅
Declaration officielle du (il y a 8 ans)
TL;DR

Google ignore généralement les fragments de hachage (#) pour l'indexation, ce qui pose problème pour les applications JavaScript utilisant ce système de navigation. La solution technique recommandée passe par l'adoption de l'API History HTML5, qui permet à Google de crawler et indexer chaque état de l'application comme une URL distincte. Un chantier technique non négligeable pour les sites reposant massivement sur le routing côté client.

Ce qu'il faut comprendre

Que sont exactement les fragments de hachage et pourquoi Google les ignore-t-il ?

Les fragments de hachage (aussi appelés hash fragments ou anchors) sont la partie d'une URL qui suit le symbole #. Historiquement, ils servaient à pointer vers une section spécifique d'une page HTML grâce aux ancres. Leur particularité technique : ils ne sont jamais envoyés au serveur lors d'une requête HTTP.

Cette caractéristique explique pourquoi Google ne les considère pas pour l'indexation. Lorsque Googlebot demande exemple.com/page#section, le serveur ne reçoit que exemple.com/page. Le fragment reste côté client, traité uniquement par le navigateur. Pour Google, exemple.com/page#section1 et exemple.com/page#section2 représentent la même URL : exemple.com/page.

Pourquoi les applications JavaScript ont-elles massivement adopté cette approche ?

Les frameworks JavaScript comme Angular, React ou Vue ont longtemps utilisé le hash routing par défaut. Cette méthode permet de changer l'état visible de l'application sans recharger la page ni interroger le serveur. C'est simple à implémenter et ne nécessite aucune configuration serveur particulière.

Le problème surgit quand ces applications génèrent du contenu distinct pour chaque fragment. Une boutique en ligne avec shop.com/#/product/123 et shop.com/#/product/456 affiche deux produits différents, mais Google n'indexera qu'une seule URL : shop.com/. Le contenu unique de chaque produit reste invisible pour les moteurs de recherche.

Quelle différence avec l'API History HTML5 recommandée par Google ?

L'API History HTML5 (méthodes pushState et replaceState) modifie l'URL affichée dans la barre d'adresse sans recharger la page, mais cette fois sans utiliser de fragment de hachage. L'application peut transformer shop.com/#/product/123 en shop.com/product/123, une vraie URL que le serveur peut recevoir et traiter.

Cette approche nécessite une configuration serveur adaptée. Toutes les routes de l'application doivent rediriger vers le point d'entrée JavaScript (généralement index.html) pour que l'application prenne le relais côté client. C'est plus complexe techniquement, mais c'est la seule façon de rendre le contenu crawlable et indexable correctement.

  • Les fragments (#) ne sont jamais transmis au serveur, donc invisibles pour les crawlers traditionnels
  • Une URL avec fragment = une seule page aux yeux de Google, quel que soit le contenu affiché côté client
  • L'API History HTML5 génère de vraies URL distinctes que Google peut crawler et indexer séparément
  • Le passage à History nécessite une configuration serveur pour gérer le fallback vers l'application
  • Les applications modernes privilégient massivement History, le hash routing devient obsolète

Avis d'un expert SEO

Cette déclaration reflète-t-elle vraiment le comportement observé de Google ?

La position de Mueller est cohérente avec quinze ans d'observations terrain. Google a toujours traité les fragments comme des marqueurs côté client, pas comme des segments d'URL distincts. Les tests empiriques le confirment : créer du contenu unique derrière des hashes sans système de prérendu conduit systématiquement à une non-indexation de ce contenu.

Nuance importante : Mueller dit "généralement". Dans certains cas très spécifiques, Google peut exécuter le JavaScript et constater que le contenu change selon le fragment. Mais cette capacité reste limitée et imprévisible. Compter dessus relève du pari, pas d'une stratégie SEO sérieuse.

Quelles applications risquent vraiment de perdre leur visibilité ?

Les Single Page Applications (SPA) anciennes utilisant le hash routing sont les premières concernées. Les sites construits avec Angular 1.x ou les premières versions de Backbone.js ont massivement adopté cette approche. Si ces sites n'ont pas migré vers History ou implémenté un système de prérendu, ils perdent potentiellement 90 % de leur contenu indexable.

Les blogs utilisant des systèmes de filtrage côté client avec hashes (blog.com/#category/seo) rencontrent le même problème. Google indexe la page d'accueil, ignore les catégories. [À vérifier] : certains rapportent que Google commence à mieux gérer ces cas dans Search Console, mais aucune confirmation officielle ni données quantitatives disponibles.

Attention : Si votre Google Search Console montre des URLs découvertes mais non indexées avec des fragments (#) dans l'onglet Couverture, c'est un signal d'alerte direct. Google voit ces URLs mais refuse de les traiter comme des pages distinctes.

L'API History résout-elle vraiment tous les problèmes d'indexation ?

History améliore considérablement la situation mais ne garantit pas automatiquement une indexation parfaite. Google doit toujours exécuter le JavaScript pour voir le contenu final, ce qui introduit de la latence et consomme du crawl budget. Les sites avec des milliers de pages dynamiques peuvent encore rencontrer des difficultés.

La solution la plus robuste reste le Server-Side Rendering (SSR) ou le prérendu statique. Next.js, Nuxt.js et les solutions de prérendu comme Prerender.io envoient du HTML complet à Googlebot, éliminant toute dépendance à l'exécution JavaScript. C'est techniquement plus lourd, mais infiniment plus fiable pour garantir l'indexation.

Un autre point rarement mentionné : même avec History, les applications mal architecturées peuvent générer des problèmes de duplication de contenu si le serveur ne renvoie pas les bons codes de statut HTTP. Une page inexistante doit retourner un 404, pas un 200 avec un message d'erreur côté client.

Impact pratique et recommandations

Comment diagnostiquer si mon site souffre de ce problème de fragments ?

Premier réflexe : ouvrir votre site et naviguer. Si l'URL dans la barre d'adresse contient des symboles # suivis de chemins (/#/products, /#page/about), vous êtes concerné. Pas de panique si vous voyez des ancres simples (#contact) pour le scroll interne, ce n'est pas le sujet ici.

Deuxième étape : interroger Google avec site:votredomaine.com dans la recherche. Comparez le nombre de pages indexées avec le nombre réel de pages de contenu unique que votre site génère. Un écart significatif (indexation de 50 pages alors que vous en avez 500) suggère un problème structural d'indexation, potentiellement lié aux fragments ou à l'exécution JavaScript.

Quelle solution technique adopter concrètement ?

La migration vers l'API History nécessite deux chantiers parallèles. Côté JavaScript, remplacez le hash routing par History routing dans votre framework. Angular propose PathLocationStrategy, React Router utilise BrowserRouter au lieu de HashRouter, Vue Router accepte le mode history.

Côté serveur, configurez un fallback universel. Toutes les URLs de l'application doivent renvoyer le fichier HTML principal pour que le JavaScript prenne le relais. Avec Apache, utilisez un .htaccess avec RewriteRule. Nginx nécessite une directive try_files dans la configuration. Attention : cette configuration peut masquer de vrais 404 si elle est mal implémentée.

Faut-il envisager des solutions plus robustes que History seul ?

Si votre site dépend massivement du trafic organique, History seul reste un compromis fragile. Le prérendu dynamique détecte les user-agents de crawlers et leur sert du HTML statique pendant que les vrais utilisateurs reçoivent l'application JavaScript. Cloudflare Workers, Prerender.io ou Rendertron offrent cette fonctionnalité.

Le SSR (Server-Side Rendering) représente la solution la plus pérenne. Next.js pour React, Nuxt.js pour Vue, ou Angular Universal transforment votre SPA en application hybride générant du HTML côté serveur. C'est un investissement technique lourd mais qui élimine 90 % des problèmes d'indexation liés au JavaScript.

  • Auditer toutes les URLs de votre site pour identifier l'usage de fragments de hachage pour la navigation
  • Vérifier dans Google Search Console l'écart entre URLs découvertes et URLs indexées
  • Tester l'outil "Inspection d'URL" sur vos pages avec fragments pour voir ce que Google rend réellement
  • Migrer le routing vers History API si vous utilisez encore le hash routing
  • Configurer le serveur pour rediriger toutes les routes vers le point d'entrée de l'application
  • Implémenter un système de prérendu ou de SSR si le crawl budget est critique pour votre business
Les fragments de hachage condamnent une partie significative de votre contenu à l'invisibilité dans les résultats de recherche. La migration vers History API constitue le minimum syndical, mais les architectures SSR ou les solutions de prérendu offrent une garantie d'indexation bien supérieure. Ce type de refonte technique nécessite une expertise pointue en développement front-end et une compréhension fine du fonctionnement des crawlers. Faire appel à une agence SEO technique spécialisée permet de sécuriser cette transition sans dégrader l'expérience utilisateur ni compromettre votre visibilité pendant la migration.

❓ Questions frequentes

Google peut-il quand même indexer du contenu derrière un fragment de hachage ?
Techniquement oui, si Google exécute le JavaScript et détecte un changement de contenu, mais c'est imprévisible et non garanti. Construire une stratégie SEO sur cette possibilité relève du pari risqué.
Les ancres de navigation interne (#contact, #section2) posent-elles problème pour le SEO ?
Non, les ancres traditionnelles pour le scroll interne ne posent aucun problème. Google les ignore simplement. Le problème concerne uniquement les fragments utilisés pour le routing applicatif avec contenu distinct.
Faut-il rediriger les anciennes URLs avec # vers les nouvelles sans fragment ?
Les redirections serveur classiques (301, 302) ne fonctionnent pas car le fragment n'atteint jamais le serveur. Il faut gérer cette transition côté client via JavaScript avec détection et redirection programmatique vers les nouvelles URLs.
L'API History fonctionne-t-elle sur tous les navigateurs ?
Oui, tous les navigateurs modernes supportent History API depuis 2011. Seuls IE9 et versions antérieures posent problème, mais leur part de marché est négligeable. Les polyfills existent pour une compatibilité maximale.
Combien de temps prend une migration de hash routing vers History ?
Cela dépend de la complexité de l'application. Un site simple peut basculer en quelques heures, une grosse SPA nécessite plusieurs jours de développement plus tests. La configuration serveur ajoute une demi-journée minimum.
🏷 Sujets associes
Anciennete & Historique Crawl & Indexation JavaScript & Technique Nom de domaine Pagination & Structure

🎥 De la même vidéo 9

Autres enseignements SEO extraits de cette même vidéo Google Search Central · durée 56 min · publiée le 12/06/2018

🎥 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.