WordPress SEO一些技巧
我一直都不是一个喜欢搞SEO的人,也很少去做一些SEO的优化,但是去年的时候看到的同事钊钊写的一片文章《Wordpress SEO 技巧》,也就对自己的博客做了一下SEO的优化,没想到效果竟是十分的明显,下图是我的博客在百度收录的一个情况,标红的时间点是我进行SEO优化的时间。
下面我就一些我觉得不错的点给大家分享一下,当然如果你是资深SEO人士,请忽略这篇文章。
区分页面标题
页面的标题不要包含博客名称。 WordPress 标题一般会用到 bloginfo(‘name’) 和 wp_title() 两部分,前者是博客名称,后者是文章标题 (如果标题不存在则不显示)。经典主题和默认主题输出标题用的代码如下。1
<title><?php wp_title('&laquo;', true, 'right'); ?> <?php bloginfo('name'); ?></title>`
输出的标题结构是“文章标题 » 博客名称”。
除非你的标题和文章内容相关度比较高,否则这样的标题对 SEO 显然是不好的。标题是爬虫认为重要的内容之一,如果标题中包含了与文章内容无关的信息,多少会对该页面有所影响。
那应该怎么弄呢?我们可以对不同类型的页面进行区分,我的实现代码如下。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36// 如果是首页和文章列表页面, 显示博客标题
if(is_front_page() || is_home()) {
bloginfo('name');
// 如果是文章详细页面和独立页面, 显示文章标题
} else if(is_single() || is_page()) {
wp_title('');
// 如果是类目页面, 显示类目表述
} else if(is_category()) {
printf('%1$s 类目的文章存档', single_cat_title('', false));
// 如果是搜索页面, 显示搜索表述
} else if(is_search()) {
printf('%1$s 的搜索结果', wp_specialchars($s, 1));
// 如果是标签页面, 显示标签表述
} else if(is_tag()) {
printf('%1$s 标签的文章存档', single_tag_title('', false));
// 如果是日期页面, 显示日期范围描述
} else if(is_date()) {
$title = '';
if(is_day()) {
$title = get_the_time('Y年n月j日');
} else if(is_year()) {
$title = get_the_time('Y年');
} else {
$title = get_the_time('Y年n月');
}
printf('%1$s的文章存档', $title);
// 其他页面显示博客标题
} else {
bloginfo('name');
}
Keywords 和 Description
Keywords 为搜索引擎提供网页包含的核心内容,Description 则为搜索引擎提供网页的描述信息。以下是我对 keywords、description 和页面标题的处理规则,实现方法可以参考上一段关于页面标题的说明。
页面类型 | Keywords | Description | Title |
---|---|---|---|
首页 (front page) | 自定义 keywords | 自定义 description | 博客标题 |
文章列表页面 (index) | 自定义 keywords | 自定义 description | 博客标题 |
文章详细页面 (single) | 标签组合 | 摘要或者文章前 220 个字符 (截取文章需要特殊处理全角字符) | 文章标题 |
独立页面 (page) | 标签组合 | 文章前 220 个字符 (截取文章需要特殊处理全角字符. 独立页面不支持摘要, 有特殊需要可以创建页面模板) | 文章标题 |
类目存档页面 | 类目名称 | XXX 类目的文章存档 | XXX 类目的文章存档 |
搜索页面 | 搜索关键字 | XXX 的搜索结果 | XXX 的搜索结果 |
标签存档页面 | 标签名称 | XXX 标签的文章存档 | XXX 标签的文章存档 |
日期存档页面 | 日期 | XXX 的文章存档 | XXX 的文章存档 |
其他页面 | 留空 | 页面标题 | 博客标题 |
文章详细页面的描述一般取文章的前 220 个字符即可,特别重要的页面和文章可以自定义摘要,使其信息准确度更高。如果存在摘要信息则使用摘要,没有则使用前 220 个字符,实现代码如下。1
2
3
4
5
6
7if($post->post_excerpt) {
$description = $post->post_excerpt;
} else {
// utf8_trim 方法是为了在截取字符之前对字符串进行转义, 避免出现截取半个汉字的情况
// 参考文档: http://php-utf8.61924.nl/documentation/functions/utf8_trim.html
$description = utf8_trim(substr(strip_tags($post->post_content), 0, 220));
}
将 Related Post 改为 More posts about XXX
其中 XXX 是关键字及其链接,本人建议使用分类或者标签链接代替。从 SEO 优化的角度来说,因为 Related 一词与几个文章的链接没有任何关系,但标签与之相关度很高。(一般相关文章是通过相似标签来确定的。)从用户体验的角度来说,没有太多人留意你的 Tags 是什么,不如将标签和相关文章结合现实。