Canonical 标签以及在 WordPress 中的应用
Canonical 标签,中文叫做 URL 范式,是 Google,雅虎,微软等搜索引擎在2009年一起推出的一个标签(百度在2013年也终于支持),它主要用来解决由于 URL 形式不同而造成的重复内容的问题。
Canonical 标签简介和使用
如下面这两个 URL:
http://blog.wpjam.com/article/canonical-tag-and-wordpress/
http://blog.wpjam.com/article/canonical-tag-and-wordpress/trackback/
这两个 URL 的形式不同,第一个是日志 的 URL,第二个是日志 Trackback 的 URL,不过他们的内容都是相同的,都是“Canonical 标签以及在 WordPress 中的应用”这篇日志的内容,对于搜索引擎来说,这样两个不同的 URL 是无法判断是同一篇日志的,搜索引擎为了更多收录内容,就会同时收录这两个链接,这样就造成了搜索引擎收录重复内容的问题,所以 Canonical 标签就是用来解决这个问题的。
简单说就是在网页的 html 加上这样一段代码:
<link rel='canonical' href='http://blog.wpjam.com/article/canonical-tag-and-wordpress/' />
那么任何含有这个标签的网页,不管他最终的 URL 是怎么样的形式,搜索引擎最终都会只收录 Canonical 标签指定的那个。
使用跟踪参数等等原因造成 URL 形式不同是不可避免的,所以 Canonical 对于搜索引擎来说就非常重要了,对一组内容完全相同或高度相似的网页,通过使用 Canonicl 标签可以告诉搜索引擎哪个页面为规范的网页,能够规范网址并避免搜索结果中出现多个内容相同或相似的页面,帮助解决重复内容的收录问题,避免网站相同内容网页的重复展示及权重的分散,提升规范网页的权重,优化规范网页的排名。
所以强烈建议站长们都在自己的网站上使用 Canonical 这个标签。
WordPress 默认支持 Canonical 标签
在 WordPress 2.9 之前,让 WordPress 博客支持 Canonical 标签是需要通过插件或者手工修改主题的 header.php
文件来实现。如在主题中加如下的代码:
<?php if(is_single()){?>
<link rel="canonical" href="<?php echo get_permalink($post->ID);?>" />
<?php } ?>
在 WordPress 2.9 发布之后,WordPress 已经默认支持这一标签了,我们无需做任何动作,主题就支持这一标签。我们可以在 WordPress 的源文件 wp-includes/default-filters.php
看到如下的代码:
add_action( 'wp_head', 'rel_canonical' );
因此 WordPress 是调用 rel_canonical()
这个函数来输出 rel="canonical" 标签的 HTML 代码。 如果你还想使用以前自己的方法,那么你可以通过下面代码屏蔽掉它:
remove_action( 'wp_head', 'rel_canonical' );
不过要指出的是:如果使用插件来输出 Canonical 标签,而又没有在 WordPress 中屏蔽默认的 filter 的话,则会输出重复的 Canonical 标签。个人建议使用 WordPress 默认输出的 Canonical 标签已经足够了。