Mes URL doivent-elles être en minuscules?

17

Selon ce blog ("Comprendre les pratiques de syntaxe des URL optimisées pour le référencement"), je devrais changer

http://example.com/Hello-Dolly

À

http://example.com/hello-dolly

Les raisons invoquées sont les suivantes:

  • Les URL, en général, sont sensibles à la casse
  • il simplifiera tous les rapports SEO et analytiques sensibles à la casse

Selon ce GIF que j'ai trouvé dans l'article de Wikipédia sur la normalisation des URL, je devrais convertir mes URL de n'importe quelle majuscule en minuscule.

Cependant j'utilise ASP.NET MVC et par défaut mes URL sont structurées comme ceci ( CamelCase ):

http://www.example.com/Controller/Action/Parameter

http://www.example.com/Categories/List/Bicycles

J'ai parcouru le RFC1738 mais je n'ai vu aucune réponse définitive à cela.

Dois-je faire tout mon possible pour forcer le cadre à tout changer en minuscules? Pourquoi Microsoft a-t-il choisi de concevoir son framework comme ceci si tout le monde me dit d'utiliser des minuscules?

Rowan Freeman
la source
3
Grande question et merveilleuse présentation de votre requête à la communauté ici sur webmasters.stackexchange.com! Vous avez vraiment fait vos «devoirs» sur cette question avant de demander!
dvnkiss
J'ai rencontré un problème où un proxy a changé l'URL demandée en minuscules - et a provoqué un 404 sur les demandes à un serveur Linux qui a hébergé une page dans mon sous-répertoire ./SO/ (où j'ai mis des exemples de stackoverflow). C'est un cas d'utilisation où les minuscules font la différence (vous pouvez dire que le proxy était mal codé mais c'est la vraie vie ...)
Floris

Réponses:

10

Should I go out of my way to force the framework to change everything to lower case?

Non, ce n'est pas nécessaire. Les systèmes d'exploitation Windows sont insensibles à la casse, y compris leurs OS de serveur et leurs applications de framework. Les systèmes d'exploitation Linux / Unix sont cependant sensibles à la casse.

Les applications Internet (par exemple, les navigateurs) devraient normaliser les URL, comme indiqué dans la section 6 de la RFC 3986 :

L'une des opérations les plus courantes sur les URI est la comparaison simple: déterminer si deux URI sont équivalents sans utiliser les URI pour accéder à leurs ressources respectives. Une comparaison est effectuée chaque fois qu'un cache de réponses est accédé, un navigateur vérifie son historique pour colorer un lien ou un analyseur XML traite les balises dans un espace de noms. Une normalisation approfondie avant la comparaison des URI est souvent utilisée par les araignées et les moteurs d'indexation pour tailler un espace de recherche ou pour réduire la duplication des actions de demande et du stockage des réponses.

Comme vous utiliserez sans aucun doute un serveur Windows, les URL et URI demandés seront très bien renvoyés aux applications clientes.


En ce qui concerne les moteurs de recherche, comme indiqué dans le RFC ci-dessus, et dans votre lien Wikipedia sur la normalisation des URL :

Les moteurs de recherche utilisent la normalisation des URL afin d'attribuer de l'importance aux pages Web et de réduire l'indexation des pages en double.

Et comme sources comme ce rapport sur le sujet:

Plus récemment, Google a commencé à mieux comprendre que /page1.html et /Page1.html n'étaient que deux instances du même contenu.


Why did Microsoft choose to design their framework like this if everybody is telling me to use lowercase?

Il est compatible avec leur système d'exploitation et techniquement pas incorrect selon les RFC. Ils ont aussi leur propre façon de faire, ce qui empêche les webmasters de deviner :-)

dan
la source
1
Excellente réponse, j'allais poster une réponse très similaire mais tu m'as battu dessus! "Pourquoi Microsoft a-t-il choisi de concevoir son framework de cette manière si tout le monde me dit d'utiliser des minuscules? ... Ils ont aussi leur propre façon de faire, ce qui empêche les webmasters de deviner." - J'adore ça. Aussi loin que je me souvienne, Microsoft a eu ses propres moyens pour «faire» plier les développeurs / webmasters à leurs règles rigides!
dvnkiss
4

Je ne sais pas si vous devriez le changer mais vous devez vous assurer d'être cohérent.

J'ai étudié la question il y a quelques années et la norme de Google était ce cas avant que le TLD ne compte, mais après le TLD.

À l'époque, je travaillais sur un ancien site appelé BusinessForPhotographers.com; apparemment, cela est systématiquement traité comme insensible à la casse.

Après .comc'est une autre affaire. Google /Great-Articleest différent de /great-article, même si votre serveur les achemine au même endroit.

Cela peut avoir un impact sur la canonisation et les problèmes de contenu en double. Je pense que la méthode la plus sûre serait de forcer une redirection 301 vers la bonne version.

Bien que cela puisse sembler inutile de penser à un service comme YouTube, /A1B2C3la même URL est-elle /a1b2c3?

Pas aux yeux de Google.

adam-asdf
la source
3

Les chemins URI sont sensibles à la casse (s'ils ne sont pas définis autrement). Voir la norme URI STD 66, section 6.2.2.1. Normalisation de cas :

Les autres composants de syntaxe générique sont supposés être sensibles à la casse, sauf indication contraire du schéma

Si les majuscules des chemins URI HTTP posaient problème pour certains utilisateurs, Wikipédia serait rompu pour eux. Ces deux URI HTTP (qui ne diffèrent qu'en minuscules oet en majuscules O) conduisent à des pages différentes:

Donc non, vous ne devez changer vos URIs.

Cependant, si possible (si vous n'utilisez pas le cas, comme le fait Wikipedia), il serait bon d'autoriser toutes les variantes de cas et de rediriger 301 vers une variante canonique.

unor
la source