一日一折腾之 WordPress SEO 优化

哈哈,参照 WordPress SEO 技巧 把博客给优化优化,受益匪浅,匪浅啊。

折腾也挺多的,分开来说。

1.标题优化
title 使用文中的方法,代码如下:

<title><?php if ( is_single() || is_page() || is_category() || is_tag() ) { wp_title(''); } else { bloginfo('name'); } ?></title>

去掉标题前的预留空格,看图识字,左为修正前,右为修正后:
标题优化

代码,放进模板 function.php ,格式为 <?php 代码 ?> :

function titledespacer($title) {
	return trim($title);
}
add_filter('wp_title', 'titledespacer');

2.为 Read more 加上 nofollow
方法跟上面的一样,也是加到 function.php。

add_filter('the_content_more_link','nofollowReadMore' ,0);
function nofollowReadMore($link) {
	return str_replace('class="more-link"', 'class="more-link" rel="nofollow"', $link);
}

3.Keywords & Description
类似的插件很多,我只用过 Simple Tags,觉得不太如意。后来移植了某个主题的代码,再后来在某个博客看到的代码,现在是根据上文的技巧改写的代码,只是还没完成页面的 Description ,加上我只有‘关于’一个页面,那就暂时忽略了,呵呵。经过折腾,代码已基本完美了,分类页的 description 是分类描述,要后台添加。完整代码,放到 head 中:

<?php if (is_home()){
$description = "Ygs' blog以民间折腾为主,个人生活为辅,前端设计为目的的个人博客";
$keywords = "YGS,WordPress,前端设计,交互设计,用户体验";
} elseif (is_single()){
if ($post->post_excerpt) {
$description = $post->post_excerpt;
} else {
$description = mb_substr(strip_tags($post->post_content),0,220,'utf-8');
$description = str_replace(array("rn", "r", "n"," ","	"), " ", $description);
}
$keywords = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ){
$keywords = $keywords . $tag->name . ", ";
}$keywords = substr($keywords,0,-2);
} elseif(is_category()){
$description = strip_tags(category_description());
} elseif(is_tag()){
$description = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ){
$description = $description . $tag->name . ", ";
}$description = substr($description,0,-2);
} elseif(is_page()){
$description = $post->post_title ;
} else {
$description = "";}?>
<?php if (is_single()||is_home()) {?>
<meta name="keywords" content="<?=$keywords?>" />
<meta name="description" content="<?=$description?>" />
<?php } ?>
<?php if (!is_single()&&!is_home()) {?>
<meta name="keywords" content="" />
<meta name="description" content="<?=$description?>" />
<?php } ?>

发现最后的 elseif 不会用,只能分开两个判断语句,效果一样,囧。
此代码基本符合以下规则:

页面类型 Keywords Description
首页 自定义 keywords 自定义 description
文章页面 标签组合 摘要或者文章前 220 个字符
(截取文章需要特殊处理全角字符)
搜索页面 搜索关键字
分类存档页面 分类
标签存档页面 标签
日期存档页面 日期
其他页面 页面标题

4.将 Related Post 改为 More posts about XXX
也就是将“相关文章”改为“与XX有关的文章”,我使用了文章的标签代替XX,具体模板具体分析
获取标签函数 the_tags(”, ‘, ‘, ”);

基本就这么多了~使用愉快~