301跳转多用于旧网址在废弃前转向新网址以保证用户的访问,以及旧网址权重的传递。rel="canonical"的主要作用是对几个完全相同或高度相似的页面,为其指定唯一的URL,同时权重也将集中指向这个URL可以避免多个页面分散权重,同时也避免重复收录。rel="canonical"的详细用法可参考之前的一篇文章:关于rel=”canonical”标签的用法
通过这两次词的说明我们也可以看出两者的区别,一个是永久跳转,是命令,一个是地址指向,只是建议。
Google对301跳转权重的传递还是有损失的,可参考matt的一个访谈:Matt 谈301跳转对权重传递的影响
301,永久重定向。意思是告诉搜索引擎,我改名了,我现在不叫张三,我叫李四,以后所有关于张三的东西,都由李四这个名字来继承。
所以,如果你有100个页面301向了一个,那么,这100个页面,基本就只是相当于一个页面。如果只是重复的内容倒还罢了,但是如果不重复......
而Rel=Canonical则不同。Rel=Canonical本身的页面会被收录。也就是说,张三还是张三、李四还是李四,是两个人,而不是张三改名成为李四。只不过是说,以李四为主,张三为铺,这其中,张三还是在起作用,只不过所有的功劳都属于李四罢了。
所以,如果你有100个页面301向了一个,那么,这100个页面,基本就只是相当于一个页面。如果只是重复的内容倒还罢了,但是如果不重复......
而Rel=Canonical则不同。Rel=Canonical本身的页面会被收录。也就是说,张三还是张三、李四还是李四,是两个人,而不是张三改名成为李四。只不过是说,以李四为主,张三为铺,这其中,张三还是在起作用,只不过所有的功劳都属于李四罢了。
301用法:
PHP转向版本
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://你的网址/");
exit();
ASP转向版本
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://你的网址/"
Response.End
canonical用法:
可通过在每个非规范版本的 HTML 网页HEAD的部分中,添加一个link rel="canonical" 链接来进行指定规范网址。
举例子:如http://www.leranl.com/wordpress-global-translator/
这两个URL指向的是同一个页面,我们可以在http://www.leranl.com/?p=679
这个页面的head标签中,创建 <link> 元素:<link rel="canonical" href=" http://www.leranl.com/wordpress-global-translator/"/>