URLs legíveis por humanos: de preferência hierárquica também?
-
26-09-2019 - |
Pergunta
Em um agora uma pergunta migrada Sobre URLs legíveis por humanos, eu me permiti elaborar um pequeno cavalo de hobby:
Quando eu encontro URLs como
http://www.example.com/product/123/subpage/456.html
Eu sempre acho que isso é uma tentativa de criar URLs hierárquicos significativos que, no entanto, não são inteiramente hierárquicos. O que quero dizer é que você deve ser capaz de cortar um nível de cada vez. No exposto, o URL tem duas violações sobre esse princípio:
/product/123
é 1 Informações representadas como dois níveis. Seria mais corretamente representado como/product:123
(ou qualquer delimitador que você quiser)/subpage
Muito provavelmente não é uma entidade em si (ou seja, você não pode subir 1 nível de456.html
Comohttp://www.example.com/product/123/subpage
é nada").Portanto, acho o seguinte mais correto:
http://www.example.com/product:123/456.html
Aqui, você sempre pode navegar um nível de cada vez:
http://www.example.com/product:123/456.html
- A subpagemhttp://www.example.com/product:123
- A página do produtohttp://www.example.com/
- A raizSeguindo a mesma filosofia, o seguinte faria sentido [e forneceria um link adicional para a lista de produtos]:
http://www.example.com/products/123/456.html
Onde:
http://www.example.com/products/123/456.html
- A subpagemhttp://www.example.com/products/123
- A página do produtohttp://www.example.com/products
- A lista de produtoshttp://www.example.com/
- A raiz
Minha principal motivação para essa abordagem é que se todo "elemento de caminho" (delimitado por /
) é auto -contido1, você sempre poderá navegar para o "pai" simplesmente removendo o último elemento do URL. É isso que eu (às vezes) faço no meu explorador de arquivos quando quero ir ao diretório pai. Seguindo a mesma linha de lógica, o usuário (ou um mecanismo de pesquisa / rastreador) pode fazer o mesmo. Muito inteligente, eu acho.
Por outro lado (E essa é a parte importante da pergunta): Embora eu nunca possa impedir que um usuário tenta acessar um URL que ele próprio amputou, Estou afirmando injustamente (e honrando) que um mecanismo de pesquisa pode fazer o mesmo? Ou seja, é razoável esperar que nenhum mecanismo de pesquisa (ou realmente: Google) tente acessar http://www.example.com/product/123/subpage
(Ponto 2, acima)? (Ou estou realmente levando em consideração o fator humano aqui?)
Esta não é uma pergunta sobre preferência pessoal. É uma pergunta técnica sobre o que posso esperar de um rastreador / indexador e, em consideração, devo levar em consideração a manipulação de URL não humana ao projetar URLs.
Além disso, a "profundidade" estrutural de http://www.example.com/product/123/subpage/456.html
é 4, onde http://www.example.com/products/123/456.html
é apenas 3. Há rumores de que essa profundidade influencia a classificação dos mecanismos de pesquisa. Pelo menos, então me disseram. (Agora é evidente que o SEO é não O que eu mais sei.) É isso (ainda?) É verdade: A profundidade hierárquica (número de diretórios) influencia a classificação de pesquisa?
Então, meu "palpite" é tecnicamente sólido ou devo passar meu tempo em outra coisa?
Exemplo: fazer isso (quase) certo
Bom velho, então fica quase certo. Caso em questão: perfis, por exemplo, http://stackoverflow.com/users/52162
:
http://stackoverflow.com/users/52162
- Perfil únicohttp://stackoverflow.com/users
- Lista de usuárioshttp://stackoverflow.com/
- Raiz
No entanto, o URL canônico para o perfil é realmente http://stackoverflow.com/users/52162/jensgram
que parece redundante (o mesmo ponto final representado em dois níveis hierárquicos). Alternativo: http://stackoverflow.com/users/52162-jensgram
(ou qualquer outro delimitador usado consistentemente).
1) Carrega uma informação completa que não depende de elementos "mais profundos".
Solução
Os URLs hierárquicos desse tipo "http://www.example.com/product:123/456.html" são tão inúteis quanto "http://www.example.com/product/123/subpage", porque quando os usuários vêem Seus URLs, eles não se importam com identificadores do seu banco de dados, eles querem caminhos significativos. É por isso que o StackOverflow coloca títulos de perguntas nos URLs: "http://stackoverflow.com/questions/4017365/human-reable-urls-preferlavelmente hierarquical-too".
O Google aconselha contra a prática de substituir consultas usuais como "http://www.example.com/?product=123&page=456", porque quando todo site desenvolve seu próprio esquema, Crawler não sabe o que cada parte significa, se é importante ou não. O Google inventou mecanismos sofisticados para encontrar argumentos importantes e ignorar sem importância, o que significa que você obterá mais páginas no índice e haverá menos duplicatas. Mas esses algoritmos geralmente falham quando os desenvolvedores da Web inventam seu próprio esquema.
Se você se preocupa com usuários e rastreadores, você deve usar URLs assim:
- http://www.example.com/products/greatest-keyboard/benefits - A subpagem
- http://www.example.com/products/greatest-keyboard - A página do produto
- http://www.example.com/products - A lista de produtos
- http://www.example.com/ - a raiz
Além disso, os mecanismos de pesquisa oferecem uma classificação mais alta nas páginas com palavras -chave no URL.