Meus URLs devem estar em minúsculas?

17

De acordo com este blog ("Entendendo as práticas de sintaxe de URL amigável para SEO") , devo mudar

http://example.com/Hello-Dolly

Para

http://example.com/hello-dolly

As razões apresentadas são:

  • URLs, em geral, diferenciam maiúsculas de minúsculas
  • simplificará qualquer relatório de análise e SEO que diferencia maiúsculas de minúsculas

De acordo com este GIF que encontrei no artigo da Wikipedia sobre Normalização de URL , devo converter meus URLs de maiúsculas para minúsculas.

No entanto, eu uso o ASP.NET MVC e, por padrão, meus URLs estão estruturados desta maneira ( CamelCase ):

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

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

Examinei o RFC1738, mas não vi respostas definitivas para isso.

Devo me esforçar para forçar a estrutura a mudar tudo para minúsculas? Por que a Microsoft escolheu projetar sua estrutura como esta se todo mundo está me dizendo para usar letras minúsculas?

Rowan Freeman
fonte
3
Ótima pergunta e maravilhosa apresentação da sua consulta à comunidade aqui em webmasters.stackexchange.com! Você realmente fez sua 'lição de casa' sobre esse assunto também antes de perguntar!
dvnkiss
Encontrei um problema em que um proxy alterava a URL solicitada para todas as letras minúsculas - e causava um 404 nas solicitações para um servidor Linux que hospedava uma página no meu subdiretório ./SO/ (onde coloquei exemplos de stackoverflow). Isso é um caso de uso em letras minúsculas faz a diferença (você pode argumentar o proxy foi mal codificado mas é a vida real ...)
Floris

Respostas:

10

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

Não, isso não é necessário. Os sistemas operacionais Windows não diferenciam maiúsculas de minúsculas, incluindo os SOs de servidor e aplicativos de estrutura. Os sistemas operacionais Linux / Unix, no entanto, diferenciam maiúsculas de minúsculas.

Aplicativos baseados na Internet (por exemplo, navegadores) devem normalizar URLs, conforme abordado na seção 6 da RFC 3986 :

Uma das operações mais comuns nos URIs é a comparação simples: determinar se dois URIs são equivalentes sem usar os URIs para acessar seus respectivos recursos. Uma comparação é realizada sempre que um cache de resposta é acessado, um navegador verifica seu histórico para colorir um link ou um analisador XML processa tags em um espaço para nome. A normalização extensiva antes da comparação de URIs é frequentemente usada por aranhas e mecanismos de indexação para remover um espaço de pesquisa ou reduzir a duplicação de ações de solicitação e armazenamento de respostas.

Como você estará usando um servidor Windows sem dúvida, os URLs e URIs solicitados serão retornados aos aplicativos clientes.


Em relação aos mecanismos de pesquisa, conforme declarado na RFC acima, e no seu link da Wikipedia em Normalização de URL :

Os mecanismos de pesquisa empregam normalização de URL para atribuir importância às páginas da web e reduzir a indexação de páginas duplicadas.

E como fontes como este relatório sobre o assunto:

Mais recentemente, o Google começou a entender melhor que /page1.html e /Page1.html eram apenas duas instâncias do mesmo conteúdo.


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

É compatível com o sistema operacional e tecnicamente não está incorreto, de acordo com as RFCs. Eles também têm sua própria maneira de fazer as coisas, o que mantém os webmasters adivinhando :-)

dan
fonte
1
Ótima resposta, eu ia postar uma resposta muito parecida, mas você me venceu! "Por que a Microsoft escolheu projetar sua estrutura como esta se todo mundo está me dizendo para usar letras minúsculas? ... Eles também têm seu próprio modo de fazer as coisas, o que mantém os webmasters adivinhando." - Amo esse pouco. Desde que me lembro, a Microsoft tinha seus próprios meios para 'fazer' desenvolvedores / webmasters se curvarem às regras rígidas!
dvnkiss
4

Não sei se você deve alterá-lo, mas certifique-se de ser consistente.

Analisei isso há alguns anos e o padrão do Google era o caso antes que o TLD não importasse, mas depois que o TLD importasse.

Na época, eu estava trabalhando em um site extinto chamado BusinessForPhotographers.com; aparentemente, isso é tratado consistentemente como não faz distinção entre maiúsculas e minúsculas.

Após o .comé outra questão. O Google vê /Great-Articlecomo diferente /great-article, mesmo se você o rotear para o mesmo local.

Isso pode afetar a canonização e duplicar problemas de conteúdo. Eu acho que o método mais seguro seria forçar um redirecionamento 301 para a versão correta.

Embora isso possa parecer inútil, pense em um serviço como o YouTube, /A1B2C3o mesmo URL é /a1b2c3?

Não aos olhos do Google.

adam-asdf
fonte
3

Os caminhos de URI diferenciam maiúsculas de minúsculas (se não definidos de outra forma). Consulte o padrão URI STD 66, seção 6.2.2.1. Normalização de Caso :

Os outros componentes genéricos da sintaxe são considerados sensíveis a maiúsculas e minúsculas, a menos que especificamente definido de outra forma pelo esquema

Se letras maiúsculas nos caminhos de HTTP URI fossem um problema para alguns usuários, a Wikipedia seria quebrada para eles. Esses dois URIs HTTP (diferindo apenas em letras minúsculas oe maiúsculas O) levam a páginas diferentes:

Portanto, não, você não precisa alterar seus URIs.

No entanto, se possível (se você não usar o caso, como a Wikipedia faz), seria uma boa prática permitir todas as variantes de casos e redirecionar 301 para uma variante canônica.

unor
fonte