对于大多数个人博客来说,似乎All in One SEO Pack插件并不是一个有效率的SEO解决方案(具体可查看这篇文章)。
在软件开发中,有一个说法: “约定优于配置”,众多的配置选项是以性能的降低为代价的,作为一个通用型插件,All in One SEO Pack必不可少的需要照顾到方方面面,而很多耗时巨大的功能,对于个人小型博客来说,并不是很需要。
默认情况下,WordPress已经可以很到的做到“Search Engine Friendly”。原创而且有意义的文章内容,才能让个人博客获得更好的SEO评价,下面的优化方法只是锦上添花而已。而且相对于All in One SEO Pack插件,本篇文章提供的方法在一些低流量的博客上,性能的提高可能不那么“显而易见”。但是对于我这样对代码有着“洁癖”的人来说,在自己的博客上 加上一堆不是自己写的插件,总是让自己如坐针簪。
我们需要All in One SEO Pack插件的哪些功能?
在寻找All in One SEO Pack插件的替代方案前,首先要弄明白这个问题。下面几个功能是最有价值的,也是wordpress默认无法提供的:
1、博客的标题(title)应当写成内容 | 博客名的形式;
2、head部分添加充足的meta说明;
3、让搜索引擎不要索引存档页面,存档页面都是重复内容,这会降低博客的评分。
4、为每一篇文章以及博客首页,加上独特的关键词(keywords);
下面就会针对这些问题,给出解决方案。如果你不大了解php语言,只需要按照说明复制粘贴到自己的wordpress模板中就可以了。
修正博客的标题
在模板文件夹中找到header.php文件,打开后修改title标签:
<title><?php wp_title(' | ', true, 'right'); ?><?php bloginfo('name'); ?></title> /**或者干脆把博客的名字写死,你总不会时常换博客名字吧**/ <title><?php wp_title(' | ', true, 'right'); ?>Cogipard Playground</title>
添加充足的meta说明
还是修改header.php文件,在head标签中酌情加入如下内容:
/**博客的描述性内容,你可以像我这样写死,也可以采用wordpress的副标题(用bloginfo("description")获得)**/ <meta name="description" content="A personal online home, portfolio and journal." /> /**博主的名字**/ <meta name="author" content="dotswing" /> /**版权信息**/ <meta name="copyright" content="Cogipard Playground" />
不索引存档页面
修改header.php文件,紧接着上述的meta标签,加入:
<?php if (is_single() || is_page() || is_home() ) : ?> <meta name="robots" content="index,follow" /> <?php else : ?> <meta name="robots" content="noindex,follow" /> <?php endif; ?>
这样对于存档页面,搜索引擎就不会去索引这些重复的内容了。
个性化输出页面文章的关键词
在模板文件夹下的functions.php文件中,加入如下的函数:
function keywords() { $keywords = ''; if( is_single() || is_page() ){ $terms = get_the_terms( get_the_ID(), 'post_tag' ); if ( is_wp_error( $terms ) ) return $terms; if ( emptyempty( $terms ) ) return false; foreach ( $terms as $term ) { $keywords .= $term->name; $keywords .= ', '; } } else { $tags = get_tags('orderby=count&order=DESC'); foreach ($tags as $tag){ $keywords .= $tag->name; $keywords .= ', '; } } $keywords = substr($keywords, 0, strlen($keywords)-2); echo $keywords; }
这个函数的作用是,如果访客浏览的是单独的某文章页面,就会把该文章对应的tag提取出来,作为关键词;如果是其它页面,则把博客所有的tag一起输出成关键词。关键词用逗号隔开。
在header.php中调用这个函数:
<meta name="keywords" content="<?php keywords();?>" />
functions.php中的代码,可以在模板页中直接使用,wordpress已经为我们做好了include操作,不需要自己来写include_once(‘functions.php’);了。