SEO实战密码-4.10 网址规范化 - 高飞网

4.10 网址规范化

2016-07-27 07:40:29.0

    网址规范化(URL canonicalization)指的是搜索引擎挑选最合适的URL作为真正(规范化的)网址的过程。

4.10.1 为什么出现不规范网址

    举例来说,下面这几个URL一般指的是同一个文件:
    http://www.domainname.com
    http://domainname.com
    http://www.domainname.com/index.html
    http://domainname.com/index.httml

    但是从技术上来讲,这几个URL都是不同的网址,搜索引擎也确实把它们当做不同的网址。虽然在绝大部分情况下,这些网址上所返回的是相同的文件,也即网站首页,但从技术上说,主机完全可以对这几个网址返回不同的内容。

    除了上面因为带与不带www造成的,以及结尾是否带index.html文件造成的不规范,网址化问题还可能由于如下原因出现:

  1. CMS系统原因,使同一篇文章可以通过几种不同的URL访问
  2. URL静态化设置错误,同一篇文章中有多个静态化URL
  3. URL静态化后,静态和动态URL共存,都有链接,也都可以访问
  4. 目录后带与不带斜杠:http://www.domainname.com和http://www.domainname.com/
  5. 加密网址:http://www.domainname.com和https://www.domainname.com
  6. URL中有端口号:http://www.domainname.com:80http://www.domainname.com
  7. 跟踪代码。有的联署计划或广告服务在URL后面加跟踪代码,http://www.domainname.com/?affid=100
  8. 显示的都是首页内容

4.10.2 网址规范化问题

    网址规范化造成的几个问题:

  1. CMS系统在不同地方链接到不同的URL,分散了页面权重,不利于排名
  2. 外部链接也可能指向不同URL,分散权重
  3. 搜索引擎判断的规范化网址不是站长想要的那个网址
  4. 如果网址规范化问题太严重,也可能影响收录。一个权重不很高的域名,能收录的总页面数和蜘蛛爬行时间是有限的。搜索引擎把资源花在收录不规范的网址上,留下给独特内容的资源就减少了
  5. 复制内容过多,搜索引擎可能认为有作弊嫌疑

4.10.3 解决网址规范化问题

    要解决URL规范化问题有很多方法,比如:

  1. 确保使用的CMS系统只产生规范化网址,无论是否静态化。
  2. 所有内部链接保持统一,都指向规范化网址。以带与不带www为例,确定一个版本规范化网址,网站内链统一使用这个版本。这样搜索引擎也就明白哪一个是站长希望的规范化网址。由于用户习惯,通常选择带www的版本为规范化网址
  3. 在Google管理员工具中设置首选域
  4. 使用301转向,把不规范化URL全部转向到规范化URL
  5. 使用canonical标签
  6. 提交给搜索引擎的XML网站地图中全部使用规范化网址

    但这些方法各有局限:

  1. Google管理员工具不适用于其他搜索引擎
  2. 有的网址因为技术原因做不了301转向
  3. CMS系统经常不受自己控制
  4. 内部链接自己可以控制,但外部链接不受控制

4.10.4 301转向

  1. 什么是301转向
    301转向(或叫301重定向、301跳转)是用户或蜘蛛向网站服务器发出访问请求时,服务器返回的HTTP数据流中头信息(header)部分状态码的一种,表示本网址永久性转移到另一个地址。
    其他常见的状态码还包括
    200 表示一切正常
    404 网页不存在
    302 临时跳转
    500 服务器内部程序错误
  2. 301转向传递权重
    网页A用301重定向到网页B,搜索引擎可以肯定网页A永久性改变地址,或者说实际不存在了,搜索引擎就会把页面B当做唯一有效目标,这是搜索引擎唯一推荐的不会产生怀疑的转向方法,更重要的是,网页A积累的页面权重,将被传到网页B
    目前Google会传输大部分权重,但不是百分之百权重。百度会传输所有权重。Google对301的识别、反应、完成权重传递,需要1~3个月时间。百度对301处理则比较保守,新旧URL会同时存在数据库很长时间,经常看到做了301转向一年的URL还出现在百度结果中。
  3. 怎样做301转向
    如果网站使用LAMP主机,可以使用.htaccess文件做301转向,如果使用Windows主机,可以控制面板做301转向设定。
    目前多数使用的linux上的nginx反向代理,也可以转跳转;如果是在应该代码中做,javaWeb推荐使用urlwritefilter类库。
  4. 301转向的其他用途
    除了解决网址规范化问题,还有很多需要做301转向的情形。比如,为保护版权,公司拥有不同TLD的多个域名:
    company.com/company.net/company.org/company.com.cn/company.cn
    为避免造成大量复制内容,应该选定一个为主域名,比如company.com,其他域名做301转向到company.com

4.10.5 Canonical 标签

    2009年2月,Google、雅虎、微软共同发布了一个新的标签canonical tag,用于解决网址规范化问题。简单说,就是在HTML文件的头部加上这样一段代码:

    <link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish">

    意义就是这个网页的规范化网址应该是:

    http://www.example.com/product.php?item=swedish-fish

    下面这些URL都可以加上这段canonical标签:

    http://www.example.com/product.php?item=swedish-fish&category=gummy-candy
    http://www.example.com/product.php?item=swedish-fish&trackingid=1234&sessionid=5678

    这些URL的规范化网址就都成为:

    http://www.example.com/product.php?item=swedish-fish

    Canonical标签相当于一个页面内的301转向,区别在于用户并不被转向,还是停留在原网址上,而搜索引擎会把它当做是301转向处理,把页面权重集中到标签中指明的规范化网址上。

△ 另外有几个细节需要注意:

· 这个标签是一种建议或暗示,而不是指令,它不像robots文件那样是个指令。所以被搜索引擎在很大程度上考虑这个标签,但并不是百分之百。搜索引擎还会考虑其他情况来判断规范化网址。这也防止站长有可能把网址弄错。

· 标签既可以使用绝对地址,也可以使用相对地址。通常使用绝对地址比较保险。

· 指定的规范化网址上的内容,与其他使用这个标签的非规范化网址内容可以有一些不同,不一定完全一样。

· 指定的规范化网址可以是不存在页面,返回404,也可以是还没有被收录的页面,但是不建议这么做。

· 这个标签可以用于不同域名之间。

    目前Google、雅虎、必应都支持canonical标签,不过雅虎和必应收录页面后做出反应的时间非常长。百度还不支持canonical标签。

上一篇:4.9 URL设计
下一篇:4.13 网站地图