赶紧了,抛弃 All in One SEO


All in One SEO 一度被认为是必备 WordPress 插件,它的标准化 title 结构、自动用 tag 作为关键字(keywords)自动生成页面描述(description)和分类等页面的 noindex 功能几乎是大家的标准化设置。但是恰恰是这些,让你的 blog 在 SEO 上减分。

原因一:noindex 导致百度不收录内容
百度爬虫很傻的,看到 noindex 就 k 掉全部只留一个首页,或者最近的内容不收录。这就是坊间流传的所谓百度不收录 wordpress 的根源,其实罪在 All in One SEO。我在煎蛋和其它一些 bog 测试过,去掉 noindex 设置选项以后,百度收录就迅速恢复了。

原因二:自动描述导致丢失描述
煎蛋一度的 google 搜索存档信息里除了标题就剩下文章信息(日期作者什么的),然后就是评论。原因是启用了 All in One SEO 的自动 description,但是英文还好,对于大部分页面它压根无法生成中文 description,而你有一个空白 description 在这里搜索引擎就不给你自动 description 了。

原因三:All in One SEO 很耗资源
这个有待验证。但是对于大流量的煎蛋来说,昨天我去掉它以后,很多人包括我自己在内都感觉到马上速度快了很多

SEO

那么,去掉以后,如何保证必要的 SEO 措施

之一:title 结构
这个很重要,如果你一直用“标题 | 站名”这样的结构千万别改,否则可能被搜索引擎惩罚。保持原有结构我们在 header.php 里加了(或替换原有 title 部分)这么一句:
<title><?php if (is_home() ) { ?>煎蛋 | digg digest<?php } else {?><?php wp_title(''); ?> | 煎蛋<?php } ?></title>
意思很简单。blog 名和描述直接写的目的是尽量减少执行函数。

之二:关键字和站点描述
可以参考水煮鱼同学写的这篇,可以用下面这段代码来代替:
<?if (is_home()){
$description = "你的站点描述";
$keywords = "你的关键字";
} elseif (is_single()){
$description = $post->post_title ;
$keywords = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords . $tag->name . ", ";
}
} elseif(is_category()){
$description = category_description();
}
?>
<meta name="keywords" content="<?=$keywords?>" />
<meta name="description" content="<?=$description?>" />

之三:文章描述
这个有两个办法,一是用截断文章前多少字(貌似有相应插件)的摘要作为描述,另一个就是利用 All in One SEO 的原理,利用自定义关键字(custom field)定义 description 然后调用,具体操作可参考这篇,代码是:
<?php if ( is_single() ) { ?>
<meta name="description" content="<?php $key="description"; echo get_post_meta($post->ID, $key, true); ?>" />
<?php } ?>

如果没用过 All in One SEO 插件的,可以先新建一个 description 关键字,下次就可以选择了。

之四:NoIndex
这个是 shawn 大师的解决办法。既然百度爬虫太傻逼,那就针对 Google 爬虫写,在 header.php 里加这么一句:
<?php if ( !(is_home()) and !(is_single()) ) { ?><meta name="Googlebot" content="noindex,follow" /><?php }?>
意思就是除了首页和文章,其它页面最好不要 index。另外据我个人的经验,这句话前面最好加个空行。

之五:修改All in One SEO 方法

Use noindex for Categories:(對類別存檔頁使用noindex)

Use noindex for Archives:(對時間存檔頁使用noindex)

Use noindex for Tag Archives:(對標籤存檔頁使用noindex)

把这几个选项的勾去掉,然后添加文章时自己手动添加摘要.

2011-02-19更新。

其实这是一篇老文章了。All in One SEO只要使用得当,是不会有什么问题的。 现在是可正常使用的,按 之五 里的方法 修改就行了。 耗资源问题,什么插件都一样的了。


46条回应:“赶紧了,抛弃 All in One SEO”

  1. 我用了,好像一点问题都没有。。不过看了这里还是改改。。我这人比较懒。。还是用插件吧。。 :cy:

    • 这个插件现在应该没有这个问题了~~ 都是老早前的文章了. 不要在no follow前打勾就没事了

  2. 不看不知道..一看吓我一跳…我首页天天更新,内容只会少掉..不会多起来,,就这个家伙搞怪啊… [擦汗]

  3. 之前一直用这个插件,感觉百度收录的确实不理想,后来删除之后还是那样,谷歌几乎即时收录的,好郁闷!

  4. 不是不用的这个插件在删除后还有残留?怎么查看文章是否含有noindex标签?菜鸟了~~呵呵

  5. 正在抛
    用了一年了
    的确发现不是很好对于seo
    你这个方法我在别处也见过
    今天终于动手改过去了

  6. […] 你是不是在开始卸载All in One SEO呢?先被着急,占资源是WordPress插件共有的弱点,但是All in One SEO本身能为我们解决诸如标题,重复内容等重点问题,问题其实出在noindex身上,解决方法参考《赶紧了,抛弃 All in One SEO》,大家别被标题迷惘了,笔者在文章结尾修改了最合理的解决办法,就是在All in One SEO设置去掉noindex的所有选项noindex参考Google的一段解释: 如果 Google 看到某一页上有 noindex 元标记,就会将此页从我们的搜索结果中完全丢弃,而不管是否还有其他页链接到此页。但是,其他搜索引擎可能会以不同的方式解译此指令。因此,指向相关网页的链接可能仍会显示在搜索结果中。 […]

  7. 我是今天看日志才发现百度只爬首页的,赶紧把All in One SEO关了。看来我就是传说的杯具! [抱拳]