转载地址:http://www.popotang.com/blog/?p=287
一个通过server查询数据库动态输出内容的CGI、ASP、PHP这样的动态网页,可能接受多个参数,但是有些参数无论怎么变化,不会影响网页实质内容的展示,比如某个参数控制列表排序方式,只是把输出内容的排序方式改变了,内容还是没变。
另外现在很多向静态html传url参数,更不会改变网页内容,无非是传递给JS来异步获取内容或者控制某个元素的展现方式,比如QQLive官网播放页面http://live.qq.com/cover/1/10cbs5uji9ys1ms.html?vid=7yfKAzz9nzv ,通过vid参数来默认选中当前播放的分集,只是选中的分集样式变了,其他内容一点都没变。但是一个20集的电视剧,一个内容完全相同的网页就产生了20+1种url,那么搜索引擎怎么收录?
类似情况还有QQLive官网是http://live.qq.com,但是对于内部链接方式,经常出现“http://live.qq.com/” “ http://live.qq.com/index.html ” ,对于外部合作网站,也经常添加一些额外的参数以统计来源。同样这些各式各样的链接,也会被搜索引擎“分权”。
大多数情况下,搜索引擎发现这些网页内容相同,只会将搜索结果的一个版本编入索引,那么选择哪一个?
搜索引擎算法会选择认为可以最好地回答用户查询的网页。但是开发者也可以通过将 <link> 元素和 rel=”canonical” 属性添加到该网页非规范版本的 <head> 部分,为搜索引擎指定规范网页,从而向搜索引擎 提出建议:”在内容相同的所有网页中,此网页最有用。请将该网页排在搜索结果中靠前的位置。”
以下内容来自Google:
—————————-
如何指定规范网页?
要指定指向网页 http://www.example.com/product.php?item=swedish-fish 的规范链接,请按以下形式创建 <link> 元素:
<link rel=”canonical” href=”http://www.example.com/product.php?item=swedish-fish”/>将上述链接复制到该网页所有非规范版本的 <head> 部分,如 http://www.example.com/product.php?item=swedish-fish&sort=price。
如果您在 http://www.example.com/product.php?item=swedish-fish 和 https://www.example.com/product.php?item=swedish-fish 上都发布了内容,则可以指定该网页的规范版本。创建 <link> 元素:
<link rel=”canonical” href=”http://www.example.com/product.php?item=swedish-fish”/>将上述链接添加到 https://www.example.comproduct.php?item=swedish-fish 的 <head> 部分。
rel=”canonical” 是建议还是指令?
通过此新选项,网站拥有者可以建议 Google 应将哪个网页版本视为规范版本。在确定哪些网址包含相同的内容以及计算其中关联性最强而要显示在搜索结果中的的网页时,Google 会结合其他信息考虑此建议。
此链接可以是相对的或是绝对的吗?
rel=”canonical” 属性可与相对链接或绝对链接一起使用,但我们建议使用绝对链接,以减少可能出现的混乱或问题。如果您的文档指定了一个基础链接,则所有相对链接都会相对于该基础链接。
一组网页上的内容必须与规范版本的上内容相似吗?
是的。rel=”canonical” 属性只能用来指定包含相同内容(即使存在微小差异,比如排列顺序,也无关紧要)的大量网页的首选版本。
例如,如果某网站有一组网页显示了相同型号的舞蹈鞋,只是每个网页图片中鞋的颜色有所不同,那么您可以将能突出当下最流行色彩的网页设置为规范版本,这样 Google 就比较容易将该网页显示在搜索结果中。不过,如果该网站只是想把凝胶鞋垫的网页排在鞋的网页之前,那么使用 rel=”canonical” 就不合适了。
如果 rel=”canonical” 指向了不存在的网页会怎样?或者如果将一组网页中的多个网页指定为规范版本会怎样?
我们会尽力使用算法确定适当的规范网页,就像我们以前所做的那样。
Google 能遵守 rel=”canonical” 的一系列规定吗?
在一定程度上可以,但为了确保达到最佳规范化,我们强烈建议您将链接更新为指向单个规范网页。
rel=”canonical” 可以用来在完全不同的域中建议规范网址吗?
有些情况下,设置重定向网址并非易事。如果需要迁移到新域名,而使用的网络服务器又不能创建服务器端重定向网址,就可能发生这种情况。这种情况下,可以使用 rel=”canonical” 链接元素指定想要编入索引的域的确切网址。虽然 rel=”canonical” 链接元素被视为一种建议而不是需要绝对服从的指令,但我们确实会尽可能予以遵循。
如何指定规范网页?
要指定指向网页 http://www.example.com/product.php?item=swedish-fish 的规范链接,请按以下形式创建 <link> 元素:
<link rel=”canonical” href=”http://www.example.com/product.php?item=swedish-fish”/>将上述链接复制到该网页所有非规范版本的 <head> 部分,如 http://www.example.com/product.php?item=swedish-fish&sort=price。
如果您在 http://www.example.com/product.php?item=swedish-fish 和 https://www.example.com/product.php?item=swedish-fish 上都发布了内容,则可以指定该网页的规范版本。创建 <link> 元素:
<link rel=”canonical” href=”http://www.example.com/product.php?item=swedish-fish”/>将上述链接添加到 https://www.example.comproduct.php?item=swedish-fish 的 <head> 部分。
rel=”canonical” 是建议还是指令?
通过此新选项,网站拥有者可以建议 Google 应将哪个网页版本视为规范版本。在确定哪些网址包含相同的内容以及计算其中关联性最强而要显示在搜索结果中的的网页时,Google 会结合其他信息考虑此建议。
此链接可以是相对的或是绝对的吗?
rel=”canonical” 属性可与相对链接或绝对链接一起使用,但我们建议使用绝对链接,以减少可能出现的混乱或问题。
如果您的文档指定了一个基础链接,则所有相对链接都会相对于该基础链接。
一组网页上的内容必须与规范版本的上内容相似吗??是的。rel=”canonical” 属性只能用来指定包含相同内容(即使存在微小差异,比如排列顺序,也无关紧要)的大量网页的首选版本。
例如,如果某网站有一组网页显示了相同型号的舞蹈鞋,只是每个网页图片中鞋的颜色有所不同,那么您可以将能突出当下最流行色彩的网页设置为规范版本,这样 Google 就比较容易将该网页显示在搜索结果中。不过,如果该网站只是想把凝胶鞋垫的网页排在鞋的网页之前,那么使用 rel=”canonical” 就不合适了。
如果 rel=”canonical” 指向了不存在的网页会怎样?或者如果将一组网页中的多个网页指定为规范版本会怎样?
我们会尽力使用算法确定适当的规范网页,就像我们以前所做的那样。
Google 能遵守 rel=”canonical” 的一系列规定吗?在一定程度上可以,但为了确保达到最佳规范化,我们强烈建议您将链接更新为指向单个规范网页。
rel=”canonical” 可以用来在完全不同的域中建议规范网址吗?有些情况下,设置重定向网址并非易事。如果需要迁移到新域名,而使用的网络服务器又不能创建服务器端重定向网址,就可能发生这种情况。这种情况下,可以使用 rel=”canonical” 链接元素指定想要编入索引的域的确切网址。虽然 rel=”canonical” 链接元素被视为一种建议而不是需要绝对服从的指令,但我们确实会尽可能予以遵循。