Sensibilité des URL à la casse

Pourquoi /Apple et /apple sont deux URL distinctes pour Google, comment Linux et Windows/IIS les traitent, le piège de casse dans robots.txt, les corrections pour Apache, Nginx et IIS, et la détection des doublons.

Première publication : 3 juil. 2026 · Dernière mise à jour : 21 août 2026 · Advanced
Langues
1 indice probant sur cette page

Pour Google, les chemins, noms de fichiers et paramètres de requête sont sensibles à la casse, contrairement au nom d’hôte. /Apple et /apple peuvent donc créer des doublons, et Disallow: /Private/ ne bloque pas /private/. Linux/Unix traite généralement les chemins comme sensibles à la casse, tandis que Windows/IIS les ignore par défaut : une même requête peut ainsi renvoyer 404 sur l’un et 200 sur l’autre. Choisissez une convention, généralement les minuscules, puis imposez-la par redirection au niveau du serveur ; rel=canonical reste une solution de repli.

TL;DR — Les noms d’hôte ne sont pas sensibles à la casse ; la comparaison des chemins et des requêtes peut l’être et dépend finalement du routage du serveur et de l’application. Les valeurs par défaut du système de fichiers influencent souvent ce comportement sans définir, à elles seules, la sémantique des URL. Google peut explorer comme des URL distinctes des chemins qui ne diffèrent que par la casse et les canoniser ensemble lorsque le contenu correspond, mais “usually… not always ideal” (traduction) « généralement… pas toujours idéal » ne constitue pas une stratégie. Les valeurs de robots.txt sont elles aussi sensibles à la casse : un Disallow visant une casse ignore les autres. Priorité : empêcher les variantes à la source, puis appliquer une 301 vers les minuscules au niveau du serveur (Apache RewriteMap tolower, Nginx map, IIS URL Rewrite), avec rel=canonical en solution de repli.

Evidence for this claim URI schemes and hosts are case-insensitive, while path and query components may be case-sensitive depending on the server and application. Scope: Generic URI comparison rules. Confidence: high · Verified: IETF RFC 3986: Syntax-based normalization Evidence for this claim Google recommends consistent URL casing and treats URLs that differ by path case as potentially distinct crawlable URLs. Scope: Current Google URL consistency guidance. Confidence: high · Verified: Google Search Central: URL structure best practices

Ce qui est sensible à la casse — et ce qui ne l’est pas

Commençons par tracer précisément la frontière, car la formule vague « les URL sont sensibles à la casse » est souvent mal comprise. John Mueller l’a formulée ainsi : “URL path, filename, and query parameters are case-sensitive, the hostname / domain name aren’t. Case-sensitivity matters for canonicalization, so it’s a good idea to be consistent there.” (traduction) « Le chemin, le nom de fichier et les paramètres de requête sont sensibles à la casse ; le nom d’hôte ou de domaine ne l’est pas. La casse compte pour la canonicalisation : mieux vaut donc rester cohérent. »

En résumé :

Partie de l’URLSensible à la casse ?Pourquoi
Schéma (https://)NonJetons de protocole fixes
Nom d’hôte (example.com)NonLa résolution DNS ignore la casse au niveau du protocole
Chemin (/Products/Shoes)OuiRésolu par un système de fichiers ou un routeur qui compare la casse
Nom de fichier (/Logo.png)OuiMême principe : il fait partie du chemin
Chaîne de requête (?Color=Red)OuiLes clés et valeurs des paramètres sont comparées telles quelles

EXAMPLE.com/page et example.com/page sont la même URL. example.com/Page et example.com/page ne le sont pas. C’est le même problème « une page, plusieurs URL » que celui créé par les slashs finaux, www contre non-www et les paramètres de requête. La casse ajoute simplement un axe à cette grille de doublons.

Ce tableau décrit le comportement par défaut que suivent les moteurs comme Google selon la norme ; il ne garantit pas ce que renverront votre serveur d’origine, votre CDN ou votre application. Utilisez-le comme point de départ : demandez le chemin avec les deux casses et lisez la réponse réelle — l’onglet Scripts propose une commande curl — avant de conclure que la règle s’applique à votre pile.

Autre cas limite à ne pas ignorer : les slugs Unicode. Deux caractères visuellement identiques — par exemple un « a » latin et un « а » cyrillique — peuvent correspondre à des points de code différents qu’une conversion ASCII en minuscules ne modifie pas. Si vos slugs proviennent de titres non anglophones, définissez dès le départ une politique d’encodage et de normalisation au lieu de supposer que .toLowerCase() règle tous les cas internationaux.

Pourquoi cela se produit : le système de fichiers

La plupart des explications répètent que « les URL sont sensibles à la casse » sans aller plus loin. Le pourquoi éclaire pourtant le symptôme le plus déroutant : une même URL fonctionne sur un serveur et renvoie 404 sur un autre.

Les systèmes de fichiers Linux/Unix sont sensibles à la casse. Sur ext4, XFS et les systèmes similaires qui font fonctionner l’essentiel du Web, Apple et apple sont littéralement deux entrées de répertoire, avec deux inodes distincts. Quand Apache ou Nginx associe un chemin demandé à un fichier ou à une route, il compare la casse octet par octet. Demandez /Apple alors que seul /apple existe : vous obtenez une véritable réponse 404.

Windows/NTFS n’est pas sensible à la casse par défaut, mais il la conserve. Il stocke Apple avec sa majuscule, tout en ignorant la casse lors de la recherche du nom. IIS, le serveur web de Microsoft, hérite de ce comportement : /Apple, /APPLE et /apple servent le même fichier. Cela ne corrige pas le problème SEO — Google voit toujours des URL distinctes — mais le serveur renvoie volontiers 200 pour chacune.

Conséquence : le bug classique entre développement et production. Un développeur sous Windows/IIS saisit un chemin avec la mauvaise casse ; tout fonctionne en local, puis la même requête renvoie 404 sur un serveur Linux/Apache/Nginx en production. Ni le CMS ni le plugin SEO n’en sont responsables : les systèmes d’exploitation ne traitent simplement pas la casse de la même façon. Microsoft documente ce comportement dans son guide sur la sensibilité à la casse sous Windows.

Ce point est crucial lors d’une migration de plateforme : en passant d’un hébergement insensible à la casse à un hébergement sensible, des URL à casse mixte qui « ont toujours fonctionné » peuvent soudain casser ou se dupliquer.

Le système de fichiers est le bas de la pile, pas toute la pile. Un reverse proxy, un CDN, un répartiteur de charge ou le routeur de l’application peut normaliser, réécrire ou interrompre la requête avant qu’elle atteigne le disque de l’origine. Une origine Linux ne garantit donc pas que l’URL publique sera sensible à la casse si une couche en amont fusionne déjà les variantes. « Linux + Apache/Nginx = sensible à la casse » est une bonne hypothèse de départ, pas un substitut au test de la réponse réelle de votre pile.

Comment Google traite réellement les différences de casse

Google n’invente pas la sensibilité à la casse : il suit la norme URL appliquée par tout client HTTP conforme. La documentation dit : “Like any other HTTP client following IETF STD 66, Google Search’s URL handling is case sensitive (for example, Google treats both /APPLE and /apple as distinct URLs with their own content).” (traduction) « Comme tout autre client HTTP suivant IETF STD 66, Google Search traite les URL comme sensibles à la casse ; /APPLE et /apple sont deux URL distinctes avec leur propre contenu. » Il s’agit d’un comportement normalisé, pas d’une particularité de Google.

Google recommande de normaliser : “If upper and lower case text in a URL is treated the same by your web server, convert all text to the same case so it’s easier for Google to determine that URLs reference the same page.” (traduction) « Si votre serveur traite de la même manière les majuscules et les minuscules d’une URL, convertissez tout dans une même casse afin que Google identifie plus facilement la même page. » Le « si » vise précisément les serveurs insensibles à la casse, comme IIS, qui servent toutes les variantes et créent ainsi le risque de doublon.

Google peut-il regrouper seul ces doublons ? Souvent oui, par canonicalisation : la casse fait partie des motifs courants qu’il rassemble. Mueller a déclaré : “If a website still shows the same content in these cases, search engines will try to figure it out on their own and usually that works out well. But it’s not always ideal.” (traduction) « Si le site affiche toujours le même contenu, les moteurs essaieront de s’en sortir seuls et cela fonctionne généralement bien, mais pas toujours de façon idéale. » À propos de canoniques incohérentes, il a ajouté : “If it serves the same content, it’ll probably be seen as a duplicate and folded together, but ‘hope’ should not be a part of an SEO strategy.” (traduction) « Si le contenu est identique, il sera probablement regroupé comme doublon, mais l’espoir ne doit pas faire partie d’une stratégie SEO. »

Voilà le cadre honnête : ce n’est pas une urgence absolue, mais inutile de demander à Google de deviner correctement quand une règle de redirection peut lever l’ambiguïté.

L’efficacité de l’exploration en pâtit aussi. Mueller : “Search engines will try to crawl all variations of the URL that they find. This can make it a bit slower for them to find other useful content on your website.” (traduction) « Les moteurs essaieront d’explorer toutes les variantes trouvées, ce qui peut ralentir la découverte d’autres contenus utiles. » Si le graphe de liens diffuse plusieurs casses, les robots réexplorent le même contenu au lieu de découvrir les vraies pages : la casse devient un multiplicateur de gaspillage du budget d’exploration.

Comment Bing traite les URL qui ne diffèrent que par la casse

Bing se comporte différemment, et il importe d’être transparent sur les sources : il n’existe pas de page de documentation Bing consacrée à la sensibilité à la casse des URL qui soit comparable au rappel de la norme STD 66 par Google. Cette section repose donc sur des témoignages de webmasters et des échanges de la communauté Microsoft, et non sur une spécification officielle.

Ces témoignages décrivent de façon récurrente le comportement suivant : Bingbot a tendance à normaliser les URL en minuscules. Il explore et indexe la version en minuscules d’une URL découverte, et Bing Webmaster Tools a été observé convertissant automatiquement en minuscules des URL soumises dans des sitemaps. Des webmasters ont signalé ces deux comportements sur le Microsoft Community Hub. Bing semble donc regrouper davantage les variantes de casse de lui-même que Google, qui traite strictement les différentes casses comme des URL distinctes.

Réserve : il s’agit du comportement observé de Bing d’après des témoignages de webmasters et des échanges communautaires, pas d’une politique officielle. Je ne vais pas inventer une citation d’un porte-parole de Bing : il n’en existe aucune sur ce sujet précis. Retenez “behaves differently, less formally documented,” (traduction) « Bing agit autrement et sa documentation officielle est plus limitée », puis vérifiez vos propres données Bing Webmaster Tools si cet aspect est important pour vous.

Dans tous les cas, la correction est la même. L’adoption systématique des minuscules respecte le modèle d’URL distinctes de Google et va dans le sens de la normalisation observée chez Bing : vous n’optimisez pas pour un moteur au détriment de l’autre.

Le piège de la casse dans robots.txt

Ce point mérite sa propre section, car il s’agit d’un type de défaillance différent du contenu dupliqué. Le contenu dupliqué répartit les signaux ; une règle robots.txt incorrecte constitue une défaillance du contrôle d’accès : les robots explorent malgré tout un chemin que vous vouliez leur interdire.

La règle est énoncée directement dans la spécification robots.txt de Google : le nom de la directive est insensible à la casse, mais sa valeur y est sensible. “The field name (disallow) is case-insensitive, but its value is case-sensitive.” (traduction) « Le nom du champ disallow est insensible à la casse, mais sa valeur y est sensible. » Et : “The path value must start with / to designate the root and the value is case-sensitive.” (traduction) « La valeur du chemin doit commencer par / pour désigner la racine et elle est sensible à la casse. » L’exemple de Google est explicite : une règle pour /fish “Matches any path that starts with /fish. Note that the matching is case-sensitive.” (traduction) « Correspond à tout chemin commençant par /fish. Notez que la correspondance est sensible à la casse. »

Ainsi, Disallow, disallow et DISALLOW fonctionnent de façon identique : la casse du nom de la directive n’a aucune importance. En revanche, la valeur du chemin doit correspondre exactement. Mueller en a confirmé directement la conséquence : “The robots.txt file also uses exact URLs, so if you have entries there which refer to one version of a URL they would not apply to other versions.” (traduction) « Le fichier robots.txt utilise lui aussi des URL exactes ; une entrée visant une version d’une URL ne s’applique donc pas aux autres versions. »

Deux exemples concrets montrent le problème ; le second est le plus dangereux :

Exemple 1 — le cas classique. Votre robots.txt contient :

User-agent: *
Disallow: /Private/

Cette règle bloque /Private/, mais ne fait rien pour /private/. Si un élément de votre site pointe vers la version en minuscules, celle-ci reste entièrement explorable malgré la règle.

Exemple 2 — le décalage après une migration. Vous changez de plateforme et le nouveau CMS génère les chemins du panier et de l’administration en minuscules. Votre ancien robots.txt, recopié tel quel, contient toujours :

Disallow: /Checkout/
Disallow: /Admin/

Les URL actives sont désormais /checkout/ et /admin/. Les interdictions ne les visent plus, sans produire d’erreur, et des chemins pauvres, sans valeur — voire sensibles — sont explorés et peuvent finir indexés. C’est exactement le piège qui attend les équipes de migration, car la casse réelle des nouvelles URL est rarement comparée à celle des règles robots.txt.

(Pour être clair, ce problème produit rarement des conséquences catastrophiques en pratique : Mueller a indiqué que les décalages de casse dans robots.txt causent rarement de vrais problèmes. Mais un défaut « rare et silencieux » peut justement rester invisible pendant des mois ; une vérification de cinq minutes en vaut la peine.)

La correction repose sur la même discipline qu’ailleurs : écrivez les règles robots.txt avec la casse réellement utilisée par vos URL et imposez une casse unique, afin qu’il n’existe qu’une seule version à bloquer.

Corriger les URL dupliquées par la casse

Voici la hiérarchie habituelle des corrections en SEO technique, de la plus à la moins recommandée :

1. Empêcher la création de variantes à la source

La meilleure solution consiste à ne jamais générer d’URL à casse mixte. Cela relève du CMS ou de la couche qui produit les URL, et le comportement varie selon la plateforme : vérifiez votre propre pile au lieu de vous fier à une affirmation générale.

  • Shopify convertit automatiquement en minuscules les handles de produits et de collections. Les URL natives sont donc largement protégées, mais les URL générées par une application ou importées depuis un ancien système peuvent encore introduire des variantes de casse.
  • WordPress utilise par convention des permaliens en minuscules, mais les types de contenus personnalisés, les étiquettes et les slugs saisis manuellement peuvent introduire une casse mixte ; Yoast et RankMath n’imposent pas nativement les minuscules dans les URL.
  • Les plateformes d’entreprise, sur mesure ou fondées sur Java/.NET sont les plus exposées. La casse dépend souvent du framework de routage et du système d’exploitation de l’hébergement, sans politique explicite, surtout sur les piles Windows/IIS où rien n’impose localement une casse donnée.

2. Redirection vers les minuscules au niveau du serveur — la correction définitive

Une redirection 301 vers l’URL canonique en minuscules constitue la correction ferme : elle consolide les signaux et envoie utilisateurs et robots vers une seule adresse. La mise en œuvre dépend du serveur ; des configurations complètes à adapter figurent dans l’onglet Scripts.

  • Apache dispose d’un outil natif de conversion en minuscules : RewriteMap avec int:tolower. Une règle de réécriture peut ainsi convertir un chemin entier.
  • Nginx ne possède aucune fonction intégrée de conversion d’une chaîne en minuscules. La solution est réellement plus complexe que la règle unique d’Apache : il faut employer le module njs ou Lua pour convertir l’URI, ou construire une table map explicite qui détecte les majuscules. Une simple règle map équivalente à celle d’Apache n’existe pas.
  • IIS utilise le module URL Rewrite, une condition de règle et la fonction {ToLower:...}. Comme IIS sert toutes les variantes de casse par défaut, c’est sur ce serveur que l’application de la règle est la plus importante.

Ne déployez pas à l’aveugle une règle générale sur tout le site. Les minuscules sont la bonne convention pour les nouveaux chemins, mais rediriger automatiquement toute casse mixte sur un site existant n’est pas toujours sûr. Commencez par inventorier les variantes réelles — export d’exploration, journaux d’accès, sitemap et liens internes — puis recherchez les chemins dont la casse est légitime et indispensable : noms de fichiers téléversés, jetons générés ou toute valeur produite volontairement avec une casse mixte par un CMS ou une application. Vérifiez que chaque route renvoie réellement un contenu équivalent dans les deux casses avant de l’intégrer à la règle. Déployez la redirection sur un périmètre limité plutôt que de modifier tous les chemins d’un coup, puis surveillez le taux d’erreurs et le rapport d’indexation des pages dans GSC. Rien ne garantit qu’un nettoyage des casses récupérera les positions ou la couverture d’exploration perdues ; il empêchera seulement une nouvelle répartition des signaux.

3. rel=canonical comme solution de repli

Lorsque vous ne pouvez pas modifier la configuration du serveur — hébergement mutualisé, plateforme qui interdit les règles de réécriture ou variantes de casse légitimes qui doivent rester accessibles — un rel=canonical pointant chaque variante vers la version en minuscules sert de filet de sécurité. Il s’agit d’un indice, pas d’une directive, moins fort qu’une 301, mais nettement préférable à l’absence de mesure. Mueller recommande : “Using internal linking to link to a consistent version makes your preference clear. Adding a link rel=“canonical” element also helps to confirm that.” (traduction) « Des liens internes vers une version cohérente rendent votre préférence claire. L’ajout d’un élément link rel=“canonical” contribue aussi à la confirmer. »

Cela dit, la canonical ne fonctionne qu’après confirmation que les variantes servent réellement un contenu dupliqué. Si une variante renvoie un contenu véritablement différent ou une erreur, un élément rel=canonical ne peut pas les fusionner : un indice ne transforme pas deux ressources distinctes en une seule. Vérifiez la réponse avant de désigner une URL canonique, pas après.

4. Harmoniser les liens internes et les sitemaps

Quelle que soit la casse choisie, vos propres liens doivent la respecter. Chaque lien interne, entrée de navigation et URL de sitemap doit utiliser la version canonique en minuscules. Même parfaite, une règle de redirection est affaiblie si les menus pointent encore vers /Products/ : elle impose simplement aux robots un détour inutile.

Comment trouver les URL dupliquées par la casse sur votre site

Trois méthodes complémentaires : GSC montre ce que Google a réellement fait, tandis que les robots d’exploration permettent de repérer les variantes avant qu’elles ne deviennent un problème d’indexation.

  • Google Search Console → rapport d’indexation des pages. Recherchez les états “Duplicate without user-selected canonical” et “Duplicate, Google chose different canonical than user”, puis examinez les paires d’URL signalées pour repérer les différences de casse. GSC n’indique pas « casse » comme cause : toutes les formes de duplication sont signalées de la même manière. Vous devez donc identifier vous-même les paires qui ne diffèrent que par la casse.
  • Ahrefs Site Audit. Une exploration fait ressortir les URL presque identiques. Les différences de casse apparaissent comme des URL explorées séparément, avec un contenu identique ou quasi identique ; recoupez-les avec le rapport sur le contenu dupliqué.
  • Screaming Frog. Exportez l’exploration complète, convertissez la colonne des URL en minuscules, puis triez ou filtrez pour trouver les paires qui ne diffèrent que par la casse. Vous pouvez aussi tester des chemins connus dans les deux casses afin de confirmer le comportement du serveur : /Apple renvoie-t-il 200, 301 ou 404 ? Ce test indique si le serveur est insensible à la casse — 200, comme IIS —, impose déjà les minuscules — 301 — ou est sensible à la casse sans variante — 404.

Place de ce problème dans l’ensemble

La sensibilité à la casse est l’un des axes du problème plus large des URL dupliquées. Elle se combine aux slashs finaux, à www contre l’absence de www et aux paramètres de requête ; elle fait partie des quelque 40 signaux qui alimentent la canonicalisation. Le guide sur la structure des URL, les analyses consacrées au slash final et aux paramètres d’URL, ainsi que l’article sur la canonicalisation couvrent chacun leur propre axe. La discipline reste identique : choisir une version propre et l’imposer au moyen de redirections, de canonicals, de liens internes cohérents et de sitemaps concordants.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.