Attention à la casse pour les urls crawlables par Googlebot, et surtout avec le robots.txt

Si vous avez l’habitude de travailler sur des OS qui sont stricts à propos des majuscules dans les noms de fichier vous le savez :

  • https://www.domaine.com/Monurl.html est une url différente de :
  • https://www.domaine.com/monurl.html !

Cela signifie que ces deux urls sont censées appeler deux ressources différentes (deux pages de contenu différentes).

Donc si vous appelez cette url :

  • https://www.domaine.com/Monurl.html
  • et que vous n’avez pas prévu de ressource à renvoyer pour cette variante de l’url alors :

    https://www.domaine.com/Monurl.html renverra un code serveur 404, tandis que la version en minuscule renverra une page.

    Comme c’est le comportement par défaut sur la majorité des serveurs utilisés en 2021, Googlebot part du principe que la casse (le fait d’utiliser des majuscules ou des minuscules) doit être prise en compte. Pour lui, les versions avec des minuscules sont différentes des versions avec des majuscules parce que le code derrière chaque version des caractères est différent. Il en est de même avec les versions accentuées versus les versions sans accent. Et aussi pour les versions avec des « / » à fin et sans les « trailing slashes ».

    How to change between lowercase and uppercase
    Quelques cas de « casses » différentes que l’on trouve sur les pages web

    Mais il existe aussi des serveurs web comme les serveurs IIS de Microsoft. Dans le monde de Microsoft il doit être possible d’écrire les noms de fichier (et les urls) en utilisant des majuscules ou des minuscules indifféremment. Et là cela signifie qu’un moteur comme Google (ou Bing, le moteur de Microsoft qui ironiquement fonctionne aussi comme cela) risque d’avoir des problèmes avec toutes les variations possibles de casse sur les caractères des urls ! Le risque, c’est qu’ils voient des doublons partout…

    Ooops ! Quelqu’un a tapé une majuscule au lieu d’une minuscule

    Par contre, les équipes de Google sont bien conscientes de la fréquence des fautes de frappe, sans compter les effets des correcteurs orthographiques qui ajoutent des majuscules intempestives.

    Si la syntaxe avec une casse différente renvoie 404, cela crée un lien brisé. Il n’y aura pas de conséquence comme la création intempestive de pages doublons et c’est très facile à interpréter par Googlebot.

    Si par contre le serveur web fonctionne sur le modèle des serveurs IIS, là cela peut évidemment poser problème. Sauf que le cas est suffisamment fréquent pour que Google ait appris à le gérer correctement dans la plupart des cas.

    Si Googlebot crawle la version avec majuscule et la version normale en minuscule, il va se rendre compte très vite (merci les hash MD5 et leurs dérivés) que les deux contenus sont identiques, et va canonicaliser les deux variantes et n’en garder qu’une seule. Si la page contient une autocanonical, ou une autre indication (la syntaxe figure dans le sitemap, les liens internes pointent vers une version et pas l’autre, etc.), il choisira en plus la bonne version, celle que vous présentez normalement dans l’arborescence.

    Bref, dans la plupart des cas, cela n’aura pas de conséquences funestes.

    Mais attention : ne montrez pas d’urls avec des erreurs de casse sur les pages de votre site : si vous faites cela souvent, vous empêcherez le moteur de comprendre la « bonne » syntaxe, et vous avez créé une structure sous optimale. Donc faites la chasse aux problèmes de casse sur votre site, y compris dans les zones « contribuées » c’est à dire les zones ou les urls peuvent avoir été saisies ou copié-collées manuellement.

    La bonne pratique c’est de n’utiliser que des minuscules dans les urls, comme cela c’est clair et les erreurs de casse sont faciles à identifier !

    L’endroit où cela ne pardonne pas : dans le robots.txt

    Par contre, il y’a un endroit dans lequel les erreurs de casse ne pardonnent pas, c’est dans le robots.txt, dont les directives sont sensibles à la casse.

    Donc si vous avez ajouté cette directive dans votre robots :

    disallow : /backoffice/template

    cette url ne peut pas être téléchargée par les bots :

     /backoffice/template/home.html

    Par contre celles-ci sont parfaitement crawlables (Aïe) :

    /backoffice/template/Home.html 
    /backoffice/Template/home.html 
    /backoffice/template/home.Html 

    Conclusion : soit vous pensez à mettre toutes les syntaxes dans le fichier robots.txt, soit vous faites la chasse aux majuscules dans les urls et cela simplifiera le problème !

    Un épisode de AskGooglebot dans lequel John Mueller explique tout cela en deux minutes !

    Laisser un commentaire