为 WordPress 添加 rel=canonical 标记,获取wordpress当前页面的URL

发布于 2012-07-01 作者 [重庆SEO]

本文来自百度空间博客搬家

2007年开始使用的是 hi.baidu.com/udjy
后来百度空间强制升级为轻博客 hi.baidu.com/imnoco
2015年百度关闭了百度空间

如果要获取wordpress当前页面的URL,同一个道理

 

谷歌中文黑板报在题为 "指定 URL 范式" 文 章中详细阐述了关于一个新的网页 head 标记 rel=canonical 对于搜索引擎处理站内重复内容时的参考作用。之后包括 微软必应 (Bing.com)雅虎搜索(Yahoo.com) 在内的一些搜索引擎也开始支持这个标记,这里提供一段代码为 WordPress 添加该标记……

网站重复内容通常是多个 URL 地址内容相同或指向同一页面,这将导致页面权重(PR)分散等负面影响。体现在 WordPress 中最常见的就是诸如以下类型的链接:

http://nan.im/blog/744.html

http://nan.im/blog/744.html/comment-page-2#comments

上 面两个链接一个是文章的正文页面,另一个是评论翻页之后的地址,但其正文部分两个页面是相同的,这种情况体现在"谷歌网站管理员工具"里面会被提示"重复 的标题标记"建议,如果使用 rel=canonical 标记主体页面的话将可以避免这种情况并利于页面权重的积累,具体修改方法如下:将以下内容添加 至你的主题的 functions.php 文件(如果没有则创建一个):

// for add canonical to WordPress head ...
function any_head_canonical( $output = '' ){
 if( is_home() ){$output = home_url( '/' ); }
 if( is_category() ){ global $cat; $output = get_category_link($cat); }
 if( is_tag() ){ global $tag_id; $output = get_tag_link($tag_id); }
 if( is_page() ){ global $page_id; $output = get_page_link($page_id); }
 if( is_single() ){ $output = get_permalink(); }
 if( $output != '' ){ echo '<link rel="canonical" href="',$output,'">'; }
}
add_action('wp_head', 'any_head_canonical');

这样在 WordPress 分别处于 分类页面 标签页面 文章页面 时将添加诸如以下的代码到所有重复页面的 head 标签里面:

<link rel="canonical"href="http://nan.im/YourURL.html">

另外这里有一些摘自谷歌文章的有用内容:

从强制性与否来说,请问 rel="canonical" 是一个建议,还是一个指令? 是一个建议。这是一个我们非常自豪的功能,您可以以此提示搜索引擎考虑您对URL格式的喜好。

我能用相对路径来指定我的URL规范么? 可以,在这里使用相对路径是可以被正确识别的,如果您在代码中指定了link,那么相对路径都会以此base URL为基础。

我可以将URL范式使用在不是完全相同内容的其他网页上吗? 我们允许这些网页之间有些细微差别,比如归在不同类目下的同一产品网页。

如果被指定为规范格式的URL返回404,怎么办呢? 我们会继续访问和抓取您的内容,并应用一些联想功能去寻找一个URL范式,但是我们强烈建议您将一个可访问的URL设置成URL范式。

如果我指定的URL范式并没有被索引会怎样? 就像网络上所有的公共内容一样,我们会努力发现和寻找您指定的URL范式,一旦我们索引到它,我们就会立即将您的rel="canonical"付诸考虑。

我的URL范式可以是一个重定向URL么? 可以,您可以指定一个发生重定向的URL作为URL范式,谷歌会继续跟踪这个重定向并尝试去抓取它。

如果我不小心指定了互相矛盾的URL范式怎么办? 不用担心,我们的算法是很聪明并宽容的,我们会跟踪抓取这个URL范式链,但是我们还是强烈建议您尽快将URL范式指定为特定单一URL形式,从而确保您的搜索结果早日得到优化。

这 个link tag可以被用来建议一个在其他域名上的URL么? 不可以。如果您需要转移到一个不同的域名上,那么301永久重定向对您来说更合适。谷歌 现在只能认可在不同子域名下的URL范式的指定。所以,站长们可以 将 www.example.com 和 example.com 及 help.example.com 互相指定为范式,但是不能将 example.com和example-widgets.com互相指定为范式。

补充:目前该 Link Tag 也被 Ask.com 微软 Bing 及雅虎 Yahoo! 等搜索引擎所支持。