Portrait Olivier Duffez

Olivier Duffez

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

Référencement d’un site en AJAX : techniques de base

Développer un site en AJAX, ça peut être bien pour le confort des internautes, mais pas toujours pour son référencement… Voici quelques conseils (basiques) fournis directement par Google. Consultez également une proposition de Google pour indexer AJAX.

Michael Wyszomierski et Greg Grothaus nous donnent quelques explications :

  • Indexation : pour qu’un site en AJAX soit indexable par Google, il faut qu’il contienne des liens HTML classiques (balise a avec un attribut href valide) et non pas uniquement des liens JavaScript. En effet, à part quelques rares exceptions, Google ne tient pas compte du code Javascript.
  • Accessibilité : Google recommande de tester son site en utilisant un navigateur comme Lynx (ou un outil en ligne basé sur Lynx). Il est également possible de faire ce genre de tests en désactivant le JavaScript dans son navigateur classique (avec Firefox c’est très simple surtout avec l’extension Web Developer). En résumé, il faut que votre site reste consultable même sans JavaScript. L’expérience utilisateur peut être enrichie par des fonctions JavaScript (par exemple en AJAX) mais le contenu du site doit reste accessible sans JavaScript.
  • Double compatibilité : il est possible de faire des liens qui exploitent les fonctionnalités d’AJAX et qui restent compatibles avec les moteurs de recherche. Il suffit d’utiliser la même astuce que celle qui permet d’indexer des pages affichées en pop-up (ce qui n’est pas une pratique recommandée, mais c’est une autre histoire). Cette astuce consiste à définir à la fois un attribut href qui contient une URL valide et une action JavaScript (par exemple avec la commande onclick). Les utilisateurs qui ont un navigateur qui gère le JavaScript profiteront des fonctionnalités prévues par le développeur JavaScript, et les autres (notamment les moteurs) suivront le lien classique (lien en dur). Voici un exemple de code :
<a href="ajax.htm" onclick="une_fonction_javascript('ajax.htm');
 return false”>lien test</a>

ou un peu mieux :

<a href="ajax.htm" onclick="une_fonction_javascript('this.href');
 return false”>lien test</a>

Au passage, Michael Wyszomierski rappelle que Google ignore ce qui suit le symbole # dans les URL.

Parmi les exemples que j’utilise en formation, je montre parfois le site browsegoods.com qui est l’exemple parfait de ce qu’il ne faut pas faire si on veut optimiser le référencement d’un site en AJAX… L’interface utilisateur est assez bluffante, mais elle est totalement hermétique aux robots des moteurs de recherche !

Et vous, que pensez-vous du référencement d’un site en AJAX ? Avez-vous rencontré des problèmes ou trouvé des solutions spécifiques à ce type de site, ou bien est-ce comme tout site qui utilise du JavaScript ?

Cet article vous a-t-il plu ?

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.

3 commentaires

Victor BRITO

Quelles sont les rares exceptions prises en compte par Google en matière de JavaScript ? Les codes concernant AdSense et Analytics ?

Répondre
soon7

Bonjour,

généralement, plutot que de faire : <a href="ajax.htm" onclick="une_fonction_javascript(‘ajax.htm’); return false”>lien test</a>
je préfère faire :<a href="ajax.htm" onclick="une_fonction_javascript(this.href); return false”>lien test</a>
Comme ça si jamais je change mon lien, je ne le change que dans le href, pas à la fois dan le href ET dans l’appel de la fonction.

Répondre