Robots.txt et URL avec des caractères spéciaux: le test
Transcription
Robots.txt et URL avec des caractères spéciaux: le test
Blog SEO - Y'a pas de quoi // Le SEO côté technique http://www.yapasdequoi.com Robots.txt et URL avec des caractères spéciaux: le test Author : admin Date : 25 mars 2015 Bien que le robots.txt ne soit pas toujours respecté, c'est malgré tout un élément indispensable pour éviter que Google crawl des URL sans intérêt pertinentes, et provoque des dommages collatéraux. J'ai récemment eu un problème bien particulier pour un client, des URL bloquées par le fichier robots.txt et qui malgré tout se sont retrouvées crawlées, et indexées. Cela était du à l'encodage des URL, mais sur une portion bien spécifique de l'URL: la chaîne de paramètres (query_string pour les intimes). J'ai donc réalisé un test grâce à GoogleWebmaster Tools pour voir comment Google traitait les URL encodées. Le CMS utilisé était RBSChange (plateforme Ecommerce) Traitement des URL sans chaîne de paramètres Sans revenir sur l'origine des URL encodées, voici le test que j'ai effectué pour voir la manière dont Googlebot traitait ce type d'URL avec le fichier robots.txt. En l’occurrence, cela concerne des URL contenant des crochets: "[ ]". Supposons une URL de ce type: http://www.yapasdequoi.com/categorie[19]/mapage.html Caractères non encodés: Disallow: /categorie[19]/mapage.html --> ça fonctionne, l'URL est bien bloquée. 1/6 Blog SEO - Y'a pas de quoi // Le SEO côté technique http://www.yapasdequoi.com Caractères encodés: Disallow: /categorie%5B19%5D/mapage.html --> ça ne fonctionne pas, l'URL n'est pas bloquée... Traitement des URL avec chaîne de paramètres J'ai cette fois-ci utilisé une URL avec une chaîne de paramètres et des crochets dans les 2/6 Blog SEO - Y'a pas de quoi // Le SEO côté technique http://www.yapasdequoi.com paramètres, puisque cela peut se produire sur RBSChange par exemple. Voici l'URl testée: http://www.yapasdequoi.com/categorie?id=[19] Caractères non encodés: Disallow: /categorie?id=[19] --> ça ne fonctionne pas, l'URL n'est pas bloquée... Caractères encodés: Disallow: /categorie?id=%5B19%5D --> ça fonctionne, l'URL est bloquée! 3/6 Blog SEO - Y'a pas de quoi // Le SEO côté technique http://www.yapasdequoi.com Robots.txt et caractères spéciaux Drôle de comportement entre l'URL de la requête et sa chaîne de paramètres! Quand on a des caractères [ ] dans la REQUEST_URI, il ne faut pas les encoder; quand on en a dans la chaîne de paramètres, il faut les encoder... [ devient alors %5B, et ] devient %5D. J'ai testé d'autre caractères spéciaux afin de voir si ils étaient les seuls concernés par ce problème, et il semblerait que oui... - voici les caractères spéciaux qui n'ont pas besoin d'être encodés, où qu'ils se trouvent: + & (),./:;=?@'~%! Cela parait assez logique pour le slash et les sous répertoires ainsi que le point d'interrogation et le signe & qui sont utilisés pour passer les paramètres d'URL. - à l'inverse, voici les caractères spéciaux qu'il faut encoder systématiquement: espace, ", , \, ^, {, }, | - et ceux qu'il faut encoder uniquement quand ils sont présents dans la chaîne de paramètres: [ ] Récapitulatif: Caractère Espace ! " Codage URL %20 %21 %22 %20 ! %22 REQUEST_URI QUERY_STRIN G %20 ! %22 4/6 Blog SEO - Y'a pas de quoi // Le SEO côté technique http://www.yapasdequoi.com % & ( ) + | . / : ; %25 %26 %28 %29 %2B %2C %2E %2F %3A %3B % & ( ) + | . / : ; % & ( ) + | . / : ; %3E ? @ [ | ] ^ ' { | } ~ %3E %3F %40 %5B %5C %5D %5E %60 %7B %7C %7D %7E %3E ? @ [ %5C ] %5E ' %7B %7C %7D ~ ? @ %5B %5C %5D %5E ' %7B %7C %7D ~ Et les caractères accentués? Le test vient d'être complété pour les caractères accentués: il faut les encoder où qu'ils se trouvent, sinon les URL seront crawlées par Google d'après ce test: 5/6 Blog SEO - Y'a pas de quoi // Le SEO côté technique http://www.yapasdequoi.com http://www.yapasdequoi.com/wp-admin/a?èéàùô est bien bloqué avec la ligne suivante: Disallow:/wp-admin/a?%C3%A8%C3%A9%C3%A0%C3%B9%C3%B4 mais pas avec cette ligne: Disallow:/wp-admin/a?èéàùô What else? Alors, bug du parser de Google? En tout cas, mes URL avec crochets dans la chaîne de paramètres sont maintenant bien bloqués. Vérifiez donc vos fichier robots.txt et les URL qui contiendraient des caractères à encoder Je vous recommande également ce billet de Sacha Tyzon de l'agence SeoH qui est très complet sur cet outil de test de robots.txt proposé par Google: http://www.seoh.fr/blog/test-outil-robots-txt-gwt.html 6/6 Powered by TCPDF (www.tcpdf.org)