Le support de l'AJAX a toujours été compliqué pour les moteurs de recherche dont Google. La firme vient de confirmer sur son blog officiel que la méthode recommandée de l'headless browser ne doit plus être appliquée et qu'il faudra trouver d'autres moyens pour indexer des contenus générés en AJAX.
En 2009, Google avait mis en avant la technique dite du headless browser, qui permettait d'ajouter un paramètre dynamique dans les URL pour indiquer à GoogleBot des pages "différentes" générées en AJAX. Cela avait pour avantage de pouvoir mieux indexer les pages construites en AJAX, grâce au paramètre d'URL _escaped_fragment_ notamment.
Rappel sur l'indexation des contenus en AJAX
Sans vouloir rentrer dans les détails hyper technique qui pourrait vous perdre, retenez l'essentiel des problèmes causés par les pages en AJAX : les appels AJAX vont chercher des contenus dans les bases de données de manière asynchrone (sans rechargement de page). Pour un robot, ces contenus agrégés au fur et à mesure ne sont pas visibles à l'origine, donc non indexés.
Prenons l'exemple d'une page d'actualités de 10 résultats avec un trigger AJAX (bouton "voir plus de résultats") qui génère automatiquement l'ajout de 5 nouveaux résultats à la suite des 10 premiers, et ainsi de suite. Pour GoogleBot (et autres robots), seuls les 10 premiers résultats, chargés initialement sont vus et connus ! Tous les autres passent à la trappe...
De fait, Google a présenté dès 2009 la technique du headless browser qui permettait techniquement de générer des URL différentes pour ces blocs de 5 résultats en plus. Cela avait pour conséquence la possibilité d'indexer l'ensemble des "pages" de résultats, malgré les failles originelles de l'AJAX en termes d'indexation.
Qu'est-ce qui change pour l'indexation de l'AJAX en 2015 ?
Google ne supporte plus la technique de 2009, c'est aussi simple que ça, et la première phrase du blog officiel est sans concession :
Nous ne recommandons plus la technique d'indexation de l'AJAX que nous avons présentée en 2009.
La bonne nouvelle, c'est que Google a confirmé par le biais de son communiqué officiel que GoogleBot est désormais capable de lire le Javascript et le CSS, et donc d'interpréter les pages web comme un navigateur moderne (je reprends les mots de la firme ici...). Par conséquent, il ne faut absolument pas bloquer l'indexation et le crawl des fichiers Javascript et CSS pour GoogleBot si vous avez un site web conçu avec AJAX... :D
Dans une mini FAQ postée à la fin de l'article de blog, Google a répondu à trois questions redondantes que nous risquons de nous poser :
- Si nous utilisons la technique de l'headless browser, est-ce que Google indexe encore les contenus ?
Oui, mais il est fortement conseillée d'oublier cette technique et de repasser les URL contenant le paramètre _escaped_fragment_ vers des URL en AJAX classique (paramètre #!). - Est-ce que le passage de l'ancienne technique vers les nouvelles méthodes est considérée comme une migration ? De fait, devons-nous faire des redirections ?
Google dit que non, il ne faudrait rien changer, mais juste éviter d'utiliser encore l'ancienne technique. Tout devrait rentrer dans l'ordre... - Si un site utilise un framework Javascript et présente une page de pré-rendu, est-ce encore valide ?
Oui, à condition que la page de pré-rendue soit vraiment utile pour l'utilisateur (et donc pour Google) et qu'elle ne soit pas utilisée pour masquer d'autres techniques assimilables à du cloaking.
Pour résumer, Google sait désormais mieux indexer l'AJAX, et sans effort de notre part, mais nous risquons tout de même de voir quelques soucis d'indexation à venir tant les architectures de sites en AJAX ne sont pas parfaites dans certains cas (les développeurs me comprendront...^^). Au final, l'arrêt du support de l'headless browser cache plutôt une bonne nouvelle, essayons donc d'être optimistes pour l'indexation de nos contenus. :D