Vérifiez si vos hashbangs pour rendre l'ajax crawlable… fonctionnent encore !

Ecrit par
le

Google a promu et recommandé en 2009 une méthode pour rendre l’ajax crawlable : la méthode des hashbangs.
En octobre 2015, Google a déclaré cette méthode obsolète. Et a annoncé en début d’année 2018 qu’au deuxième trimestre 2018, Googlebot allait gérer ces URLs différemment.
Qu’en est-il ? Google a-t’il changé sa méthode de crawl ? Et qu’est-ce que cela change pour vous ?

Pardon, mais c’est quoi la méthode des hashbangs ?

Les moteurs de recherche ne veulent pas indexer des contenus générés en Javascript avec la technologie AJAX. Certains moteurs ne savent pas crawler et indexer ces contenus, Google peut y parvenir dans des cas simples mais ne veut pas indexer ces contenus. Pourquoi ? Parce que le moteur préfère traiter des couples URLs/ pages de contenus, et non des dizaines, voire des centaines d’états d’une page.
Pour rendre ces contenus crawlables, les moteurs, et en premier lieu Google ont imaginé la méthode dite des « hashbangs » : si dans l’URL, un bot (par exemple Googlebot) trouve la séquence #! (les caractères se lisent hash et bang en anglais), alors le bot sait qu’il doit aller crawler la même URL en remplaçant #! par ?_escaped_fragment_. Il suffit de prévoir une copie statique du code HTML généré en ajax, accessible avec cette URL alternative, pour permettre aux moteurs de crawler et d’indexer les contenus générés en AJAX.

C’est confirmé : Google a changé sa méthode de prise en compte des urls avec hashbangs

John Mueller l’a confirmé, Google a bien changé sa méthode de crawl des URLs contenant #! : il ne va plus chercher l’URL alternative ! S’il rencontre une URL avec hashbang, il cherche à exécuter le Javascript et capture le premier état de la page, le HTML ainsi généré est crawlé et indexé.

La confirmation de John Mueller : dans la plupart des cas, Google essaie désormais de rendre les pages dont l’url contient en #! et ignorent l’url en ?_escaped_fragment_. Les exceptions proviennent des urls en ?_escaped_fragment qui ont des backlinks, car il est logique que google les crawle toujours.

Que faire suite à ce changement

Si vous avez un site présent à l’international, ne jetez pas à la poubelle vos « fragments » HTML, accessible via l’url alternative en ?_escaped_fragment_
Car si Google a changé de méthode, ce n’est pas le cas de ses concurrents !
Et si vous avez des URLs en #!, vérifiez bien que le contenu généré sur vos pages utilisant la technologie AJAX est bel est bien crawlable par Google, car cela ne fonctionne pas à tous les coups :
– tester la rendition dans la search console (fonctionnalité « fetch as google »)
– tester la rendition dans Chrome 41 via Puppeteer (pour les techniciens, je vous conseille de lire le billet d’Aymen Loukil 
– ou tester via Screaming Frog en mode Javascript par exemple.

Les paramètres pour crawler en mode Javascript sur Screaming Frog. On peut trouver toutes les explications pour tester votre site AJAX avec SF ici : https://www.screamingfrog.co.uk/crawl-javascript-seo/

Vous pouvez aussi abandonner les #! pour passer à la méthode recommandée aujourd’hui par Google  et dont la démo est ici :
Elle marche aussi avec les principaux moteurs concurrents…
Lien utile :
La recommandation initiale de Google pour rendre l’ajax crawlable