Google crawl désormais l’Ajax

Cet article est un résumé de l'article publié sur Search Engine Land en Janvier 2010.

En Octobre 2009, Google annonçait sur son blog la volonté de proposer un nouveau standard pour l'implémentation de l'Ajax qui permettrait aux moteurs de recherche d'extraire le contenu.
Ce standard a finalement été adopté puisque Google a annoncé début mars qu'il était désormais en mesure de crawler les pages utilisant ce standard.

Le problème avec l'Ajax

Les moteurs de recherche ont toujours eu des problèmes pour accéder au contenu généré par l'Ajax et cette proposition faite par Google devrait permettre à Google (et probablement à d'autres moteurs de recherche qui adopteraient le standard) d'indexer plus de contenu.

L'un des principaux problèmes pour les moteurs de recherches c'est que l'Ajax génère des URLs qui contiennent un marqueur représenté par le caractère Dièse (#). Ce même marqueur est également utilisé en tant qu'ancre dans la page elle-même (HTML) et on sait que les moteurs de recherche ignoren complètement la partie après le dièse dans l'url.

Par exemple, Google voit ces 2 URLs de façon identique:

  • http://www.oseox.com/blog
  • http://www.oseox.com/blog#traffic

D'un point de vue SEO, jusqu'à présent, la recommandation générale pour l'implémentation de l'Ajax était de suivre les règles d'accessibilité.

Que propose Google?

Google propose la chose suivante: Une Url générée par Ajax qui contiendrait le marqueur Dièse (#) serait alors remplacée par "#!" à la place de "#". La seconde URL au dessus deviendrait donc: http://www.oseox.com/blog#!traffic

Selon le standard, lorsque Googlebot rencontrerait le point d'exclamation après le marqueur "#", il devrait alors demander l'Url au serveur en utilisant une syntaxe qui remplacerait le "#!" par "?_escaped_fragment_="

Concrètement cela veut dire que lorsque Googlebot rencontre:
"http://www.oseox.com/blog#!traffic" il devra demander l'url suivante au serveur: http://oseox.com/blog?_escaped_fragment_=traffic

Qu'indexera Google?

Google n'indexera pas l'Url avec les paramètres "?_escaped_fragment_=". Il demandera l'Url utilisant cette syntaxe mais va traduire ensuite de nouveau "?_escaped_fragment_=" en "#!"

Comment l'implémenter ?

Cette implémentation requiert plusieurs actions :

  • Modifiez votre implémentation Ajax pour que les Urls qui contiennent le marqueur Dièse (#) soient également disponibles avec le marqueur Dièse et le point d'exclamation (#!) (ou que vous remplaciez la version avec le # avec celle avec le #!)
  • Configurez un "headless browser" sur votre serveur web qui lit les Urls avec "?_escaped_fragment_=", exécute le Javascript sur la page et retourne une page statique.

Pour plus de détails sur l'implémentation d'un point de vue technique, je vous suggère de vous référer à la documentation proposée par Google code.

Il semble que peu de sites aient implémenté ce standard à l'heure actuelle, mais si votre site utilise beaucoup d'Ajax, il peut être utile d'apporter ces modifications en vue d'augmenter le nombre de pages indexées et ainsi votre visibilité sur les moteurs de recherche.

Ne manquez pas les futurs articles via Twitter

A propos de l'éditeur d'Oseox.fr

Aurélien Bardon est un passionné de SEO. Il crée Outil-Referencement.com en 2005, Oseox.fr en 2008, fonde en 2009 l'agence SEO Aseox à Lille et lance en 2016 Oseox Software, une plateforme de logiciels SEO.

Oseox Monitoring