停用All in one seo pack后分类页面描述出错解决方法

All in one seo是一款非常出名的SEO插件,其字面意思可以理解为“一键优化”。在我的 WordPr…

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,欢迎交流

类别:WordPress经验

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册