为WordPress添加canonical标签

2016年4月20日 建站技术 浏览 3,202 抢沙发 A+

为WordPress添加canonical标签

谷歌中文黑板报在题为“指定URL范式”文章中详细阐述了关于一个新的网页head标记rel=canonical对于搜索引擎处理站内重复内容时的参考作用。之后包括微软必应、雅虎搜索以及百度搜索在内的一些搜索引擎也开始支持这个标签。那如何为WordPress添加rel=canonical标签呢?

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

https://www.kimsom.com/118

https://www.kimsom.com/118/comment-page-2#comments

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

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

或者用下面的代码也可以:

// for add canonical to WordPress head ...
remove_action( 'wp_head', 'rel_canonical' );
function my_rel_canonical() {
global $post;
if (is_single() || is_page()) {
echo "<link rel=\"canonical\" href=\"" . get_permalink( $post->ID ) . "\" />\n";
}
if (is_home() && is_paged()) {
echo "<link rel=\"canonical\" href=\"".home_url("/")."\" />\n";
}
if (is_category() || is_category() && is_paged()) {
echo "<link rel=\"canonical\" href=\"".get_category_link(get_query_var('cat'))."\" />\n";
}
if (is_tag() || is_tag() && is_paged()) {
echo "<link rel=\"canonical\" href=\"".get_term_link(get_query_var('tag'), 'post_tag')."\" />\n";
}
if (is_search() || is_search() && is_paged()) {
echo "<link rel=\"canonical\" href=\"".get_search_link(get_query_var('search'))."\" />\n";
}
if (is_author()) {
echo "<link rel=\"canonical\" href=\"".get_option('home')."\" />\n";
}
if (is_date()) {
echo "<link rel=\"canonical\" href=\"".get_option('home')."\" />\n";
}
}
add_action('wp_head', 'my_rel_canonical');

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

<link rel="canonical" href="https://www.kimsom.com/118" />

对一组内容完全相同或高度相似的网页,如栏目分页。通过使用Canonical标签可以告诉搜索引擎哪个页面为规范的网页,能够避免搜索结果中出现多个内容相似的页面,帮助解决wordpress重复内容收录问题,避免分散网站权重。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: