谷歌中文黑板报在题为“指定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重复内容收录问题,避免分散网站权重。