Ajax et SEOIl y a quelques temps, j’avais réalisé un test sur la duplication des liens et ancres multiples. Je m’étais  demandé quels sont les différents types de liens qui existent sur Internet. Les ancres et boutons qui génèrent du contenu de manière dynamique me sont donc venu en tête. A la suite de ce premier test, j’ai mis en place un test de référencement avec l’aide de Johan Bleuzen.

L’Ajax peut-il être référencé par Google ? La réponse est plutôt équivoque : Oui, mais non…

L’Ajax, c’est quoi ?

L’Ajax est l’abréviation d’un terme technique : Asynchronus Javascript and XML. Cette technologie permet de créer, générer, modifier ou supprimer des contenus de manière dynamique, sans changer de page. Cette technologie va rendre possible la création de sites très dynamiques. On va ainsi pouvoir modifier ou ajouter du contenu d’un simple clic.

En résumé, au lieu de recharger la page en entier, le clic va juste charger un élément spécifique, la plupart du temps en faisant appel à du javascript. Le rendu est donc plus rapide et fluide pour l’utilisateur. En d’autres termes, chaque action de l’utilisateur va prendre moins de temps, car le site ne doit pas recalculer les éléments communs comme le footer, le menu ou encore une éventuelle sidebar.

Le fonctionnement de l'Ajax
Le fonctionnement de l’Ajax

Pour prendre un exemple, le site d’un ami le fait très bien : il s’agit de Wabeo. Cliquez tout simplement sur le bouton Offre pour voir les possibilités donnés par l’utilisation de l’Ajax.

Le problème de cette technologie, c’est que normalement, aucun moteur de recherche ne sait traiter et indexer ce genre de données…

Référencement naturel de l’Ajax

Non, Google ne peut pas le référencer

De base, il est tout simplement impossible de référencer de l’Ajax auprès de notre vieil ami Google. Pour le démontrer, j’ai mis en place un test dans le laboratoire SEO. Un page affiche deux liens qui génèrent un contenu unique lors du clic. Les termes qui sont ajoutés dans la page sont:

  • « ritalikanichoytivar« 
  • « gozourtynaxefirou« .

L’un des deux liens est une ancre simple, et l’autre une ancre suivi d’un lien d’exclamation comme le fait actuellement Twitter.

  • http://labo.seomix.fr/test-duplication-lien.php#!cze
  • http://labo.seomix.fr/test-duplication-lien.php#cze

Après plusieurs mois d’attente, aucun de ces deux contenus n’a été indexé par Google.

L'Ajax ne peut pas être référencé
L’Ajax ne peut pas être référencé

La raison en est simple. Sans configurer le serveur sur lequel est placé le site Internet, il est impossible pour un moteur de recherche de trouver votre contenu dynamique !

Oui, Google peut le référencer

Pour pallier ce problème, Google a une solution expliquée pas à pas. Le concept est simple : on ajoute un point d’exclamation aux URLs qui disposent d’une ancre (#). Cela indique à Google qu’il doit le transformer le « #! » en « ?_escaped_fragment_=« . L’url que j’ai utilisé dans mon test deviendrait donc :

  • http://labo.seomix.fr/test-duplication-lien.php?_escaped_fragment_=cze

Avec ce type d’adresse, il faut configurer son serveur pour qu’il envoie à Google le contenu déjà généré de la page en Ajax afin que celui-ci puisse être indexé. Cela est rendu possible avec ce qu’on appelle un HeadLess Browser, c’est à dire un navigateur sans interface.

J’ai donc complété mon test initial en faisant appel à leur méthodologie. J’ai donc contacté Johan Bleuzen pour qu’il m’aide à mettre en place la solution présentée par le moteur de recherche, puisque non seulement il faut pouvoir agir sur la configuration de son serveur, mais il faut en plus maîtriser plusieurs éléments techniques qui me dépassent, notamment :

  • Apache (Configuration et htaccess)
  • Jetty (Installation et Configuration)
  • Webapp (Code, Librairie et Packaging)

Le test a donc eu lieu sur un site dédié, et est strictement identique au précédent. On retrouve donc les mêmes expressions inconnues « ritalikanichoytivar » et « gozourtynaxefirou » avec un système d’ancre identique (une avec et une sans point d’exclamation). Sauf que cette fois-ci, le serveur est configuré selon le guide de Google. Autrement dit, le serveur détecte les urls du type #! pour les rediriger vers des pages « mises en cache » après génération du contenu en Ajax.

Sans surprise, l’url qui ne possède pas le point d’exclamation n’est pas indexée, tandis que l’autre se référence très bien (en moins de 7 jours pour être exact). Google renvoie d’ailleurs une URL propre pour l’utilisateur.

On peut référencer l'Ajax avec un HeadLess Browser
On peut référencer l’Ajax avec un HeadLess Browser

On peut donc référencer des contenus en Ajax, mais sous certaines conditions, et uniquement sur Google puisque je n’ai trouvé aucun résultat positif sur Yahoo et Bing…

Comment référencer l’Ajax ?

On peut donc tout référencer sur Google, à condition de savoir comment faire. Et c’est là où le bât blesse : le référencement de contenus dynamiques n’est pas à la portée de tout le monde, loin de là. En gros, il faut :

  • Installer et configurer Jetty,  un serveur d’application léger pour développer et déployer des applications JEE rapidement
  • Savoir mettre en place une webapp, en l’occurrence ici un headless browser, c’est à dire un navigateur sans interface que Google va utiliser pour obtenir le rendu final du contenu généré grâce à l’Ajax
  • Pouvoir configurer correctement son serveur Apache pour que tout cela fonctionne correctement…
Le référencement naturel de l'Ajax
Le référencement naturel de l’Ajax

Autrement dit, c’est loin d’être gagné…

Je remercie encore Johan pour son aide lors de la mise en place du test. Vous aurez bientôt le plaisir de le lire sur le blog avec un article complet qui va expliquer comment installer et paramétrer un serveur pour le référencement de l’Ajax.

Pour conclure cet article, je vais reprendre une expression tirée de l’un des emails qu’il m’a envoyé, et qui convient parfaitement aux résultats obtenus:

J’ai quand même l’impression que c’est une bombe nucléaire pour tuer une mouche…