Portrait Olivier Duffez

Olivier Duffez

Créateur de WebRankInfo,
consultant en référencement

SEO : les nouvelles directives de Google pour l'indexation AJAX

Même si le support des sites en AJAX continue, Google ne recommande plus la technique conseillée en 2009 (escaped fragment) mais une nouvelle. Lisez bien ce dossier pour optimiser votre référencement naturel AJAX sur Google.

SEO Google : indexation AJAX

Remarque : je ne suis pas un développeur AJAX, merci donc de me signaler toute erreur ou approximation que vous pourriez relever dans cet article.

Conseils SEO pour un site en AJAX

L'info a été fournie par Kazushi Nagayama sur le blog officiel de Google pour les webmasters le 14 octobre 2015 :

Le support des sites en AJAX continue mais Google ne recommande plus la technique Escaped FragmentClick to Tweet

A la place du fameux _escaped_fragment_, du headless browser et des snapshots HTML (détails), Google conseille d'utiliser des méthodes modernes comme l'amélioration progressive (progressive enhancement). Par exemple, vous pouvez utiliser la fonction pushState() introduite par HTML5 (détails).

Concrètement, Google assure que :

A condition de ne pas bloquer le crawl de Googlebot (JS, CSS), Google peut indexer les contenus AJAXClick to Tweet

Cas particuliers d'indexation AJAX

Si votre site est actuellement basé sur les recommandations de 2009 de Google (_escaped_fragment_), votre site continuera d'être indexé par Google. Par contre, Google vous conseille de changer de technologie au cours de votre prochaine refonte et d'utiliser les bonnes pratiques en vigueur actuellement. Concrètement, au lieu de crawler les URL en _escaped_fragment_, Google crawle, génère l'affichage et indexe les pages avec #! dans l'URL.

Si vous migrez des URL en _escaped_fragment_ aux URL avec #!, il ne semble pas nécessaire de mettre en place des redirections. Ce point sera précisé dans mon article dès que j'aurai pu obtenir toutes les clarifications nécessaires de la part de Google.

Si vous utilisez un framework Javascript et que votre serveur web fournit un pré-rendu des pages, faites attention de ne pas faire de traitement spécifique pour Google. Google recommande de ne pas fournir de pré-rendu des pages seulement pour Google, mais de le faire pour que les internautes bénéficient de meilleures performances. D'ailleurs, Google conseille de suivre les consignes de l'amélioration progressive. Si vous fournissez un pré-rendu des pages, assurez-vous que le contenu fourni à Googlebot correspond bien à la même expérience utilisateur que celle de l'internaute (aussi bien sur le rendu visuel que sur l'interaction possible). A l'inverse, si le contenu fourni à Googlebot diffère de celui fourni à un utilisateur standard, c'est considéré comme du cloaking qui enfreint les consignes de Google aux webmasters...

En résumé

Google ne recommande plus la technique d'indexation AJAX qu'il avait proposée en 2009.

Google annonce savoir crawler, rendre et indexer les pages en AJAX aussi bien qu'un navigateur moderne.

Néanmoins, j'ai cru comprendre que seules les URL avec #! pourront être indexées.

Pour ma part, je continue de recommander de faire un site en HTML5 quand c'est possible, ça sera plus simple et efficace.

Pour l'instant nous ne disposons pas d'autres informations de la part de Google. Si un point n'est pas clair, relisez la source officielle ou postez vos questions dans les commentaires.

Source de l'image : Shutterstock (sous licence)

Cet article vous a-t-il plu ?

Note : 3.0 (3 votes)
Cliquez pour voter !

Laisser un commentaire

Remarques :

  • Si vous souhaitez poser une question ou détailler un problème technique, il ne faut pas utiliser le formulaire ci-dessous qui est réservé aux avis. Posez votre question directement dans le forum Gmail de WebRankInfo. L'inscription est gratuite et immédiate.

  • En postant un avis, vous acceptez les CGU du site WebRankInfo. Si votre avis ne respecte pas ces règles, il pourra être refusé. Si vous indiquez votre adresse email, vous serez informé dès que votre avis aura été validé (ou refusé...) ; votre adresse ne sera pas utilisée pour vous envoyer des mailings et ne sera pas revendue ou cédée à des tiers.

9 commentaires

Olivier Duffez

@Kekoblo : je ne m'y connais pas assez, mais ça ressemble vraiment à une "rustine", c'est-à-dire une mauvaise solution "faute de mieux". Ca ressemble à un système de cache ?

Répondre
JM

L'objectif pour référencer des pages en ajax est certainement d'avoir des urls distinctes (système d'ancre), sinon je ne vois pas trop comment c'est possible.
Le tout est de savoir quelle nomenclature est préférable : #! ou #/ (vue sur certains sites), ...

Répondre
Julien

Alors attention, il y a quelques informations qui selon moi sont manquantes...

Si on demande à charger du contenu en AJAX dans la zone d'une page, donc imaginons on chope via une API des informations d'un flux RSS et qu'on affiche en Javascript son contenu dans une sidebar.
Dans ce cas là, on se fiche d'avoir du #!, Google fera un rendu correct de la page...

Par contre, si par exemple, on a une sorte de système qui affiche des informations différentes sur la page selon l'url, alors oui il faudra utiliser ce système pour avoir toutes les pages référencées...

Imaginons on a un annuaire d'utilisateur, il faudra par exemple avoir "#!hector" pour qu'Hector soit référençable avec le bon contenu.

D'ailleurs Google préconise ce "nouveau" système depuis les débuts d'AngularJS, je ne connais pas la date de départ de son développement mais on parle en années.

Répondre
Olivier Duffez

Merci Julien pour ces précisions intéressantes

Répondre
joey

"Néanmoins, j'ai cru comprendre que seules les URL avec #! pourront être indexées."
Ca c'était avant. Les ancres pour distinguer les pages chargées en AJAX, c'est du passé ou presque : http://caniuse.com/#search=pushstate.
oh tiens, une URL qui se fiche des (anciennes) recommendations de Google, qui n'utilise pas pushState et qui est pourtant bien référencée ! ;-)

Répondre
Olivier Duffez

@joey : merci pour l'exemple, même si dans ce cas particulier Google n'indexe pas cette URL à 100% correctement, mais c'est sans doute dû au fait que cette URL n'a peut-être pas de lien interne (c'est un résultat de recherche). Je dis ça car avec la commande info:http://caniuse.com/#search=pushstate Google m'indique avoir indexé l'URL, pourtant l'URL indiquée en résultat est une autre. Par ailleurs, j'ai du mal à accéder à la version en cache des pages indexées de ce genre.

Répondre
JM

Hello,

Donc pour résumer, plus besoin de pages alternatives avec ?query&_escaped_fragment_=...
Google indexe les pages chargées avec ajax directement si elle utilise la solution du #! dans l'url.

C'est bien ça ?

Répondre
Olivier Duffez

@JM : je ne suis pas certain qu'il soit réellement obligatoire d'avoir #! dans l'URL.

Répondre