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)