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

时间:2010-10-25 17:48:31

标签: url seo hierarchical human-readable url-modification

在关于人类可读网址的now migrated question中,我允许自己详细说明我的一点爱好:

  

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

     
      
  1. /product/123一条信息,表示为两个级别。它将更准确地表示为/product:123(或您喜欢的任何分隔符)
  2.   
  3. /subpage很可能本身不是一个实体(也就是说,你不能从456.html上升一个级别,因为http://www.example.com/product/123/subpage是“没有”)。
  4.         

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

    http://www.example.com/product:123/456.html
    
         

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

         
        
    • 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
    
         

    其中:

         
        
    • 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的最后一个元素即可。这是我(有时)在我想要转到父目录时在我的文件浏览器中执行的操作。遵循相同的逻辑线,用户(或搜索引擎/爬虫)也可以这样做。我觉得很聪明。

另一方面(这是问题的重要部分):虽然我永远无法防止用户试图访问他自己截断的网址,但我是错误的断言(并尊重)搜索引擎可能会这样做吗?即,期望没有搜索引擎(或者真的: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/ - Root

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


1)携带一整套不依赖于“更深层”元素的信息。

1 个答案:

答案 0 :(得分:4)

此类“http://www.example.com/product:123/456.html”的分层网址与“http://www.example.com/product/123/subpage”一样无用,因为当用户看到您的网址时,他们不关心数据库中的标识符,他们需要有意义的路径。这就是StackOverflow将问题标题放入网址的原因:“http://stackoverflow.com/questions/4017365/human-readable-urls-precellent-hierarchical-too”。

Google建议不要更换常见的查询,例如“http://www.example.com/?product=123&page=456”,因为当每个网站开发自己的方案时,抓取工具都不知道每个部分是什么意味着,如果重要或不重要。谷歌已经发明了复杂的机制来查找重要的参数并忽略不重要的,这意味着你将获得更多的页面到索引,并且将会有更少的重复。但是,当Web开发人员发明自己的方案时,这些算法通常会失败。

如果你关心用户和抓取工具,你应该使用这样的网址:

此外,搜索引擎会为网址中包含关键字的网页提供更高的评分。