很久没写 WordPress 的 seo 教程了,难得小编今天有闲空正好更上一贴。百度知道相信广大站站一定非常熟悉,作为百度旗下第一问答平台其 SEO 做的非常好,而且百度知道本身在各大搜索引擎的权重都非常之高。百度知道在广大站长的眼中也是一个非常好的外链以及网站的宣传平台,但是最近在百度知道的广告越来越难发了。嘿嘿差点跑题了,先上一张截图:

对没错就是 rel="canonical" 这个标签,我们来看看百度官方中是怎么解释 canonical 标签的作用:

Canonical 标签有什么作用?

对一组内容完全相同或高度相似的网页,通过使用 Canonical 标签可以告诉搜索引擎哪个页面为规范的网页,能够规范网址并避免搜索结果中出现多个内容相同或相似的页面,帮助解决重复内容的收录问题,避免网站相同内容网页的重复展示及权重的分散,提升规范网页的权重,优化规范网页的排名。 《百度站长平台》

如何在 WordPress 中使用 canonical 标签呢?方法如下:

首先在 functions.php 文件中添加分类目录分页链接获取函数,代码如下:

function wxd_archive_link( $paged = true ) {
        $link = false;

        if ( is_front_page() ) {
                $link = home_url( '/' );
        } else if ( is_home() && "page" == get_option('show_on_front') ) {
                $link = get_permalink( get_option( 'page_for_posts' ) );
        } else if ( is_tax() || is_tag() || is_category() ) {
                $term = get_queried_object();
                $link = get_term_link( $term, $term->taxonomy );
        } else if ( is_post_type_archive() ) {
                $link = get_post_type_archive_link( get_post_type() );
        } else if ( is_author() ) {
                $link = get_author_posts_url( get_query_var('author'), get_query_var('author_name') );
        } else if ( is_archive() ) {
                if ( is_date() ) {
                        if ( is_day() ) {
                                $link = get_day_link( get_query_var('year'), get_query_var('monthnum'), get_query_var('day') );
                        } else if ( is_month() ) {
                                $link = get_month_link( get_query_var('year'), get_query_var('monthnum') );
                        } else if ( is_year() ) {
                                $link = get_year_link( get_query_var('year') );
                        }
                }
        }

        if ( $paged && $link && get_query_var('paged') > 1 ) {
                global $wp_rewrite;
                if ( !$wp_rewrite->using_permalinks() ) {
                        $link = add_query_arg( 'paged', get_query_var('paged'), $link );
                } else {
                        $link = user_trailingslashit( trailingslashit( $link ) . trailingslashit( $wp_rewrite->pagination_base ) . get_query_var('paged'), 'archive' );
                }
        }
        return $link;
}

然后打开主题的头部文件 (一般情况下为 header.php) 在其中添加以下代码:

<?php
if(is_home()) { ?>
<link rel="canonical" href="<?php%20echo%20wxd_archive_link();?>"/>
<?php } ?>
<?php
if(is_category()) { ?>
<link rel="canonical" href="<?php%20echo%20wxd_archive_link();?>"/>
<?php } ?>
<?php
if(is_single())  { ?>
<link rel="canonical" href="<?php%20the_permalink();%20?>"/>
<?php }?>
<?php
if(is_tag()) { ?>
<link rel="canonical" href="<?php%20echo%20wxd_archive_link();?>"/>
<?php }?>

这样就实现了在 WordPress 网站上添加了 canonical 标签,集中网站权重。