Ajax et Adsense

La combinaison d'Adsense et des technologies modernes comme Ajax est la source de dilemmes pour les webmasters. Adsense fournit des annonces contextuelles, graphiques ou en texte, qui sont choisies pour correspondre au contenu de la page. Pour arriver à cela, le robot parse la page quand il arrive et qu'elle est fournie par le serveur, extrait les mots-clés et choisit dans sa base de données quels mots-clés (définis dans le panel d'administration d'Adwords, pas dans le texte de l'annonce), correspondent à ceux de la page, et ainsi assigne les publicités qui conviennent à la page.

D'un autre coté, Ajax est une technologie (objet XMLHttpRequest JavaScript, DOM, CSS) qui permet de changer partiellement le contenu de la page après qu'elle soit chargée.

Le Web 2.0 complique la vie aux robots: le texte n'est pas scanné

Quand les robots scannent la page, soit pour l'indexer soit pour choisir les annonces contextuelles les plus pertinentes, le contenu dynamique n'est pas disponible pour eux. Les annonces contextuelles sont pertinentes seulement avec la partie statique de la page.

Le texte chargé dynamiquement et non visible aux moteurs de recherche n'est pas le seul inconvénient d'Ajax, des pages ou même une partie entière d'un site peuvent être totalement inconnus des robots et absents des résultats de recherche si la navigation sur le site est entièrement dynamique. Or il se trouve que les liens sont aussi importants pour le robot adsense que le contenu de la page, dans la recherche de la pertinence.

C'est l'inconvénient du Web 2.0, le contenu est dynamique, généré par des CMS, par des scripts en JavaScript, cela dans une optique de présentation enjolivée et d'accès facilité pour l'utilisateur mais sans tenir compte des robots.

Le JavaScript rend la navigation quasi impossible pour les crawlers même si Matt Cutts nous apprend que Googlebot peut être capable quelquefois de retrouver les liens dans le code, ce n'est pas toujours possible.

Un lien JavaScript à généralement la forme suivante:

<p onclick="mafonction()"> ...texte... </p>

Pour le rendre visible aux robots, il suffit de le transformer en lien HTML:

<a href="mapage.html" onclick="mafonction()"> ...texte... </p>

Cela ne fait aucune différence pour l'internaute, c'est toujours la valeur de onclick qui sera prise en compte par le navigateur, mais le lien, lui, pourra être pris en compte par le robot qui interpréte le contenu de href et ignore la valeur de onclick. Le nom du fichier participera maintenant à la détermination des mots-clés pour la page cible.

Comment résoudre le problème

Il existe un moyen pour avoir le contenu indexé par les moteurs de recherche même s'il est chargé dynamiquement dans une page. L'idée est d'avoir un attribut responseHTML dans l'objet XMLHttpRequest qui permet d'ajouter dynamiquement dans une page, un texte extrait d'autres pages HTML qui sont elles, indexées par les moteurs de recherche.
Je ne sais pas trop si c'est applicable ici puisque nous voulons que le texte soit scanné DANS la page pour que les annonces soient pertinentes avec le contexte. Cela peut se faire seulement si tout le texte est présent quand la page est chargée.

Les moteurs de recherche savent maintenant indexer un contenu Ajax, comme expliqué dans l'article Ajax scannable. Ce n'est pas simple à faire pour le non programmeur.

La question des liens internes

Les robots ignorent les liens internes, dénotés par le symbole # suivi du lien sur le chapitre ou la section de page.

Un lien sur une section d'une autre page aura cette forme:

<a href="mapage.html#masection"> </a>

Le robot ne verra que le lien sur mapage.html, pas la section. Ce serait pareil avec un lien dynamique (qui peut être, rappelons le, quelquefois pris en compte, quelquefois ignoré par les robots).

<p onclick="mafonction('mapage.html#anchor=masection')">   </p>

Dans ce cas, le lien interne sur la section équivaud à un paramètre. On le transformera de la façon suivante:

<a href="mapage.html?anchor=masection">...ancre...</a>

Et le lien sera indexé comme un tout avec le nom de page et le paramètre. Le lien sera alors vu par le robot adsense et les mots-clés contenus dans le lien et dans l'ancre seront pris en compte ce qui amènera des annonces plus pertinentes dans la page cible.

Conclusion

Vous devez d'emblée concevoir vos pages et aussi votre site, non pas pour les moteurs de recherche, mais en intégrant toutefois le concept de suivi de liens. Il faut qu'à partir de chaque page il soit possible, en suivant les liens, d'atteindre toute autre page du site, que ce soit pour les visiteurs comme pour les robots.
Utiliser Ajax peut demander des sacrifices et cette technologie doit être utilisée principalement pour présenter des données qui ne devraient pas être indexées dans le contexte de la page Ajax, mais devraient plutôt être indexée dans d'autres documents.

Adsense Tutoriel Adsense - Optimisation - Ajax et Adsense - A éviter - Comportements - FAQ générale