從今天開始,薇曉朵推出 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 內即可。