Cet article fait partie des archives de WebRankInfo : certes, il est ancien, mais complet et détaillé pour son époque. Si vous cherchez d'autres informations, faites une recherche sur le site ou participez au forum. Contactez-moi si besoin.
Indexation du Javascript (et d'AJAX)
Il y a maintenant plusieurs années, c'était correct de dire que Google ignorait tout du code Javascript. Mais petit à petit, Googlebot s'est amélioré, commençant à exécuter des codes Javascript tant qu'ils restaient simples (liens Javascript pris en compte par Google depuis 2009). On peut citer l'exemple des redirections Javascript, utilisées jadis à l'époque des fameuses pages satellites.
Aujourd'hui, surtout depuis l'annonce officielle de Pawel Aleksander Fedorynski (ingénieur Google de l'équipe Indexation) et Maile Ohye, on ne peut plus dire que Google n'interprète pas JavaScript. Même des cas relativement complexes comme les technologies AJAX sont prises en charge par Google. D'ailleurs, cette annonce sonne comme une confirmation d'une autre actualité de la semaine : l'indexation par Google des commentaires Facebook générés pourtant en Javascript.
A l'inverse, je pronostique même que dans de nombreux cas, des développeurs de site se demanderont comment interdire à Google de parcourir telle ou telle partie de leur site. Comme je le conseille à mes clients ou en formation SEO, la méthode la plus simple pour empêcher Google d'exécuter du code Javascript est de stocker la fonction dans un fichier .js interdit de crawl par le fichier robots.txt (c'est d'ailleurs la méthode officiellement recommandée par Google).
Indexation des formulaires en POST
On apprend également que Google peut décider dans certains cas de crawler le résultat d'une validation d'un formulaire en POST. Ce qui ne me semble pas encore clair, c'est avec quelle URL le contenu qui en résulte va être indexé chez Google. En effet, au contraire de la méthode GET qui transmets les variables et leurs valeurs dans l'URL, la méthode POST ne modifie pas l'URL. Imaginons que les mots A B C apparaissent sur la page de résultat du formulaire en POST (et qu'ils ne soient pas présents dans la page sans la validation du formulaire). Peut-être que la page peut sortir dans les résultats Google pour la requête A B C avec la même URL ? N'hésitez pas à me donner votre avis.
Egalement, on peut se demander quelles valeurs Googlebot va attribuer aux différents champs du formulaire au moment de crawler la page de résultats de soumission du formulaire. Google fait ça depuis déjà 3 ans donc ça sera sans doute dans la même lignée (pour plus d'infos lisez mon dossier de 2008 sur l'indexation Google des formulaires). Dites-moi si j'interprète mal les annonces de Google…
Il est maintenant courant que des pages web fassent des post automatiques (sans clic de la part du visiteur) vers d'autres URL pour récupérer des données et les inserer dans la page de départ. C'est par exemple le cas pour remplir un tableau jqgrid (un des widgets en Jquery). Je pense que ce sont ces liens que Google peut desormais suivre pour indexer les données retournées par ces URL. Il n'est donc pas besoin de montrer dans les SERP autre chose que l'URL initiale.
Je ne sais pas d'où vient l'image montrant un bout de code jQuery utilisée en illustration de l'article, mais elle montre clairement dans quels cas les formulaires automatiques sont utilisés, sans modifier l'url, et où un captcha n'est pas souhaité par le créateur de la page.
La page affiche par défaut un contenu A (destiné aux spiders/crawlers) automatiquement remplacé dès le chargement de la page par un contenu B (destiné au visiteur) récupéré par une requête post en ajax.
Alors ça va peut-être aider les créateurs de sites en ajax "honnêtes", mais ça va certainement mettre des bâtons dans les trous des autres.
@Olivier
"je vois assez mal google effectuer des 10 aines de requêtes sur chaque formulaire en le remplissant avec des données jugées pertinentes. Peut-être le fera-t-il, mais ça me semble être très souvent inutile et même peu souhaitable (tenter de remplir ds formulaires de contact,...)."
Je vois aussi assez mal google tenter ce genre de truc. Surtout lorsqu'on constate une volonté d'optimiser aux mieux sa bande passante et se ressources CAD ne pas crawler pour rien, en l'occurrence, ça parait un peu inutile. En plus, quel intérêt pour la pertinance d'indexer des pages de destination de formulaires ?
Olivier,
je n'ai pas non + de réponse à la question des formulaires (il faudrait regarder l'évolution des requêtes ds des access logs pr cela), mais je vois assez mal google effectuer des 10 aines de requêtes sur chaque formulaire en le remplissant avec des données jugées pertinentes. Peut-être le fera-t-il, mais ça me semble être très souvent inutile et même peu souhaitable (tenter de remplir ds formulaires de contact,...).
Par contre, ce qui serait pertinent, c'est qu'ils détectent juste les choix proposés sous forme de liste (liste déroulante, radio,..) et poster avec ces choix.
Ca permettrait d'éviter de poster des demandes de contact (car il y aura tjs bien une contrainte de champ obligatoire qui traîne).
Et ça permettra de pouvoir indexer le contenu de sites web qui n'affichent certaines données qu'après un choix (une thématique,...), sans penser spécialement que de ce fait les données ne seront pas indexées.
Dans ce sens et sans aller bcp + loin ds la démarche, ça me semble intéressant.
J'en profite pour te remercier de la qualité de tes articles.
Comme je l'ai indiqué, ça fait longtemps que Google sait indexer les formulaires mais jusqu'à présent c'était uniquement pour les formulaires GET. Notamment, ça peut arriver que Google indexe des formulaires contenant des balises select (liste déroulante).
mettre un captcha pour le formulaire c'est une idée mais par contre pas terrible pour l'utilisateur qui doit être la priorité.
" Our POSTs are primarily for crawling resources that a page requests automaticall ".
est-ce quelqu'un pourrait me donner un exemple de cas où une page déclenche automatiquement l'envoi d'un formulaire ? je ne vois pas ?
google donne aussi l'exemple :
Je ne suis pas vraiment d'accord avec "la méthode POST ne modifie pas l'URL.", on peut en effet très bien envoyer le formulaire sur une autre url en exploitant l'attribut ACTION de la balise FORM. Et c'est cette url qui pourrait ouvrir la voie à Google sur une partie "cachée" du site.
Ca ne change pas grand chose au problème, car l'URL de l'action ne suffit pas à récupérer tout le contenu, il manque les données du formulaire...
Pour empêcher la validation des formulaires par le GoogleBot, on peut simplement afficher un code de vérification à saisir.
M'enfin, peut-être qu'un jour googlebot sera capable de reconnaitre les captchas...
Oui c'est vrai, mais pour ma part je déteste les captchas