jblzg的技术园

关注基于.Net的Web解决方案,高性能数据库设计,高性能Web服务解决方案,关注移动开发

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  22 随笔 :: 0 文章 :: 356 评论 :: 3 引用

Yahoo!, Live & Google 支持一个新的标签:"canonical url tag",来帮助网站管理员确定自己创建的重复内容。

如何操作

 这个标签被<head>标签包含,和<meta>标签的区域是一致的。这并不是一个新的标签,和nofollow一样,只是具有一个新的rel参数。如:

<link rel="canonical" href="http://www.seomoz.org/blog" />


 这个标签的意思是当前页面是 http://www.seomoz.org/blog 的一个拷贝,有几种情况可以利用这个标签:

1、通过不同参数来显示相同内容的不同样式,如:http://www.seomoz.org/blog?color=blue

2、通过不同参数来显示相同内容的不同版本,如:http://www.seomoz.org/blog?printversion

3、通过不同参数来显示相同内容的不同SESSION,如:http://www.seomoz.org/blog?SessionID=xxxxxx

当然使用这个"canonical url tag"不只上面的几种情况,具体情况可以具体对待。

搜索引擎提供的一些资料

Google

  • 问:我可以使用相对路径指定canonical么?
    答:可以。
  • 问:canonical指定的页面内容可以与当前页面内容不同么?
    答:我们允许轻微的不同,如排列在表格中的产品数据。而且我们的爬虫也可能在不同时间去抓取canonical与当前的页面,爬虫可能会看到不同的内容版本,这些都是允许的。
  • 问:如果canonical指定的页面不存在会怎样?
    答:我们会继续索引你的内容,但强烈建议用存在的页面作为canonical的内容。
  • 问:canonical可以是一个重定向页面么?
    答:可以。

Yahoo

  • canonical可以是绝对或相对路径,但我们强烈建议使用绝对路径来避免一些不可预知的问题。
  • canonical指定的URL只能与当前页面处于同一个域,如test.example.com的canonical可以是www.example.com,但不能是www.yahoo.com 
  • A作为B的canonical,B作为C的canonical时,Yahoo会把A当作B、C的canonical。但会中断无限的canonical链。

基于ASP.NET的示例代码

using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;

public partial class Products : Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        HtmlLink canonicalTag 
= new HtmlLink();
        canonicalTag.Href 
= "http://www.seomoz.org/blog";
        canonicalTag.Attributes[
"rel"= "canonical";
        Page.Header.Controls.Add(canonicalTag);
    }

}

参考

 

posted on 2009-03-02 10:45  jblzg  阅读(...)  评论(...编辑  收藏