人类可读的URL:最好也是分层的?

jen*_*ram 6 url seo hierarchical human-readable url-modification

在一个关于人类可读URL 的现在迁移的问题中,我允许自己详细描述我的一个爱好:

当我遇到像http://www.example.com/product/123/subpage/456.html我这样的URL时,我总是认为这是尝试创建有意义的分层URL,但这并不是完全分层的.我的意思是,你应该能够一次切掉一个级别.在上面,URL有两个违反此原则的违规行为:

  1. /product/123一个表示为两个级别的信息.它会被更正确地表示为/product:123(或者你喜欢的任何分隔符)
  2. /subpage很可能本身并不是一个实体(即,你不能去了一个从水平456.html作为http://www.example.com/product/123/subpage是"无").

因此,我发现以下更正确:

http://www.example.com/product:123/456.html
Run Code Online (Sandbox Code Playgroud)

在这里,您始终可以一次向上导航一个级别:

  • http://www.example.com/product:123/456.html - 子页面
  • http://www.example.com/product:123 - 产品页面
  • http://www.example.com/ - 根

遵循相同的理念,以下内容将有意义[并提供产品列表的附加链接]:

http://www.example.com/products/123/456.html
Run Code Online (Sandbox Code Playgroud)

哪里:

  • http://www.example.com/products/123/456.html - 子页面
  • http://www.example.com/products/123 - 产品页面
  • http://www.example.com/products - 产品清单
  • http://www.example.com/ - 根

我对这种方法的主要动机是,如果每个"路径元素"(由分隔符/)是自包含的1,您将始终能够通过简单地删除URL的最后一个元素来导航到"父".这是我(有时)在我想要转到父目录时在我的文件浏览器中执行的操作.遵循相同的逻辑线,用户(或搜索引擎/爬虫)也可以这样做.我觉得很聪明.

另一方面(这是问题的重要部分):虽然我永远无法防止用户试图访问他自己截断的URL,但我错误地断言(并且尊重)搜索引擎可能会做同样的事情?也就是说,期望没有搜索引擎(或者真的:Google)会尝试访问http://www.example.com/product/123/subpage(上面的第2点)是否合理?(或者我真的只考虑人为因素吗?)

这不是关于个人偏好的问题.这是关于我对爬虫/索引器的期望以及在设计URL时我应该考虑非人类URL操作的范围的技术问题.

此外,结构"深度" http://www.example.com/product/123/subpage/456.html是4,其中http://www.example.com/products/123/456.html只有3.有传言说这个深度影响搜索引擎排名.至少,所以我被告知.(现在很明显,搜索引擎优化并不是我最了解的.)这是(仍然?)真的:层次深度(目录数量)是否会影响搜索排名?

那么,我的"预感"在技术上是合理的还是我应该把时间花在其他事情上?


示例:这样做(差不多)正确的
好,所以这几乎是正确的.例证:个人资料,例如http://stackoverflow.com/users/52162:

  • http://stackoverflow.com/users/52162 - 单个档案
  • http://stackoverflow.com/users - 用户列表
  • http://stackoverflow.com/ - 根

但是,配置文件的规范URL实际上http://stackoverflow.com/users/52162/jensgram似乎是多余的(在两个层次级别上表示相同的端点).替代方案:( http://stackoverflow.com/users/52162-jensgram或一直使用的任何其他分隔符).


1)携带不依赖于"更深层"元素的完整信息.

Ath*_*ari 4

这种层次结构的url“http://www.example.com/product:123/456.html”和“http://www.example.com/product/123/subpage”一样没用,因为当用户看到你的网址,他们不关心你数据库中的标识符,他们想要有意义的路径。这就是 StackOverflow 将问题标题放入 URL 中的原因:“http://stackoverflow.com/questions/4017365/ human-read-urls-preferously-hierarchical-too”。

\n\n

Google 建议不要替换“http://www.example.com/?product=123&page=456”等常见查询,因为当每个网站都开发自己的方案时,抓取工具不知道每个部分的含义,是否重要。Google 发明了复杂的机制来查找重要参数并忽略不重要的参数,这意味着您将在索引中获得更多页面,并且重复项会更少。但当网络开发人员发明自己的方案时,这些算法常常会失败。

\n\n

如果您同时关心用户和爬虫,您应该使用这样的网址:

\n\n\n\n

此外,搜索引擎会对网址中包含关键字的页面给予更高的评级。

\n