All in one seo 是一款非常出名的 SEO 插件,其字面意思可以理解為“ 一鍵優化” 。在我的 WordPress 3.01 常用插件使用記錄 這篇文章裏已經提到過 All in one seo 是一款非常具有爭議的插件,一方面它的確具有非常強大的功能,另一方面其強大的功能導致了一些被搜索引擎 K 掉、消耗資源、中文內容丟失等問題。有鑑於此,我已經停用了插件,並按照一些高手的提示自己進行了一些 SEO,但遇到了一個問題,有可能是版本的差異引起的。自己解決後,發出來,希望對遇到同樣問題的朋友有所幫助。

1. 為什麼停用 All in one seo?

根據水煮魚、煎蛋等人的説法,All in one seo 插件具有以下的一些問題

一、 noindex 導致百度不收錄內容

noindex 標籤表示拒絕 Robot 索引本頁,但可跟蹤該頁上的鏈接。百度爬蟲看到 noindex 就 k 掉全部只留一個首頁或者不收錄最近的內容。這就是傳説中所謂百度不收錄 WordPress 的根源,我沒有去試。

二、自動描述導致丟失描述

All in one seo 插件具有自動生成描述的功能,但該功能對中文支持不好。因此,會導致生成空白的 description,這樣有了空白的 description 標籤後,google 就不會再去生成描述了,因此你的網頁在搜索引擎裏的搜索存檔信息裏除了標題就剩下文章信息 (日期作者什麼的),然後就是評論,而不會有正文內容。

三:All in One SEO 很耗資源

煎蛋提出這點只是根據插件開啓與關閉狀態下打開頁面速度的比較效果,並沒有確實依據。

2. 停用該插件後自定義的 SEO

SEO 總是要做的,如果不用插件的話,那就只有 DIY 了。很多博友都提出了一些簡單實用的優化方法,但總體來説都是一樣的三條,我不清楚哪是原創,故無法表示其版權了。

一、 title 結構

All in one seo 插件生成的 title 結構是“ 標題 | 站點”,據博友説該結構莫要修改,否則會被搜索引擎懲罰。在 Header.php 文件中添加如下代碼:

<?php if (is_home() ) {  ?> 寫意互聯網 <?php } else {?><?php wp_title(''); ?> | 寫意互聯網<?php } ?></title>

二、關鍵字和描述

關鍵字和描述對 SEO 意義重大,是必不可少的。 All in one seo 插件的一個主要功能就是添加關鍵字和描述,停用該插件後我們當然也要自己實現了。由於下面我要發出我自己的代碼,這裏就不轉出他人的代碼了。

三、解決存檔頁、作者頁、標籤和分類頁的 noindex 問題

shawn 大師的解決辦法是針對 Google 爬蟲寫 noindex,用 meta 標籤就可以有針對性對待搜索引擎了,在 header.php 里加這麼一句:

<?php if ( !(is_home()) and !(is_single()) ) { ?><meta name= “Googlebot” content=”noindex,follow” /><?php }?>

意思就是除了首頁和文章,其它頁面最好不要 index 。另外還建議這句話前面最好加個空行。

3. 我遇到的問題及解決

我把添加關鍵字和描述的那段代碼放入 header.php 後,發現首頁和文章都顯示正常,只是在分類頁的頭部會顯示出一部分 HTML 標籤來,如“ 搜索引擎優化,seo" />” 。通過查看源代碼,我發現是文章的描述裏竟然左右有<p></p 標籤,我不清楚為什麼描述裏會出現這個標籤,這個並不是程序的問題而可能是數據庫的問題。遇到問題當然要解決問題了,只需要把標籤過濾下就行了,我用的 strip_tags() 函數,代碼如下所示,當然還有一點其它修改,使用時請注意全半角字符。

<?php
 if (is_home()){
    $description = “ 寫意互聯網,關於搜索引擎、搜索引擎優化、網站建設、域名空間、 php 、 WordPress 等”;
    $keywords = “ 搜索引擎, 搜索引擎優化, 網站建設, 域名空間,php,WordPress”;
 }elseif(is_single()){
    $description = $post->post_title ;
    $keywords = “”;
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag ) {
       $keywords .= $tag->name.”,”;
    }
    $keywords=trim($keywords,”, “);
  }elseif(is_category()){
    $description = category_description();
  }else{}
  $description=strip_tags($description); ////過濾 HTML 、 PHP 標籤
?>
<meta name=”keywords” content=”<?=$keywords?>” />
<meta name=”description” content=”<?=$description?>” />

寫意互聯網:ucooper.com,歡迎交流