从今天开始,薇晓朵推出 WordPress 主题模板优化技巧。稍微知道一点 SEO 的网友都知道大量重复的页面内容被搜索引擎索引,是很危险的事情。而 WordPress 本身对重复内容的控制是比较弱的,辛好我们找到了几个方法去处理这个问题。其中之一就是 nofollow 。最开始 nofollow 是用来控制权重分散的技术,例如有人不想让权重分散到友情链接的页面,就可以通过 rel=”nofollow” 来控制。现在我们使用 nofollow 来控制重复内容。
一、元 noindex 和 nofollow 标签
元 nofollow 标签位于 WordPress 页面的<head> 区,例如在你的博客 「header.php」 文件内,你可能会发现下面的代码:
<meta name="googlebot" content="index,archive,follow" /> <meta name="msnbot" content="all,index,follow" /> <meta name="robots" content="all,index,follow" />
这段代码告诉搜索引擎特别是谷歌,必应和其它复杂的搜索引擎,所有的页面都是被索引的,跟进的和归档的。反过来,我们可以告诉搜索引擎不要索引、不要跟进和不要归档。一般情况下,我们都希望我们的主要内容出现在搜索引擎的结果中。而另一些重复的内容不希望出现,所以我们可以通过下面的代码进行控制:
<meta name="googlebot" content="noindex,noarchive,follow" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" />
这告诉搜索引擎,不要包括我的页面在搜索引擎中,与此同时告诉他们要跟进页面,也就是说在我们不索引的页面中有链接,跟进这些链接,也就是让蜘蛛沿着超级链接进行爬行。
同样的道理,我们也可以告诉搜索引擎完全不理会我的页面:
<meta name="googlebot" content="noindex,noarchive,nofollow" /> <meta name="robots" content="noindex,nofollow" /> <meta name="msnbot" content="noindex,nofollow" />
因此,通过这些元标签技术,我们可以较好的仿制重复内容被索引、归档和跟进。在 「header.php」 文件中,可以通过条件语句来控制。下面的代码是个不错的选择:
<?php if(is_home() && (!$paged || $paged == 1) || is_single()) { ?> <meta name="googlebot" content="index,archive,follow,noodp" /> <meta name="robots" content="all,index,follow" /> <meta name="msnbot" content="all,index,follow" /> <?php } else { ?> <meta name="googlebot" content="noindex,noarchive,follow,noodp" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" /> <?php } ?>
上面的代码的意思是首页、文章页全部索引和跟进,而其它的就不要。
二、如果控制 WordPress 主题模板单页面
一般情况下,在 WordPress 主题模板中有 single.php 这个模板文件,它是用来控制文章显示的。现在的问题是,我们要控制单独一篇文章,而不是整个文章。我们都知道,每篇文章都有一个 ID 号,这是唯一的。所以我们可以通过这个 ID 号进行控制:
<?php if ($post->ID == 77) { echo '<meta name="robots" content="noindex,noarchive">'; }
这个 77 就是文章 ID 号,修改成你自己想控制的文章 ID 号。
三、如何控制评论分页在搜索引擎中的显示
在 WordPress2.7 开始,WordPress 支持评论分页。如果评论出现的分页,这就有可能同一篇文章出现在搜索引擎中,这就要可能被判断为重复内容。因此我们要防止出现这样的情况,正所谓 「防患于未然」:
// prevent duplicate content for comments function noDuplicateContentforComments() { global $cpage, $post; if($cpage > 1) { echo "n".'<link rel="canonical" href="'.get_permalink($post->ID).'" />'."n"; } } add_action('wp_head', 'noDuplicateContentforComments');
把上面的代码放进你的函数文件 functions.php 内即可。