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.