WordPress 是大家熟知的一款建站程序。它功能强大、模板丰富、插件充足、安装简单以及定制性强的特点使得我们在建立个人博客,甚至企业网站
或其他类型网站使用也会选择 WordPress 。我对 WordPress
SEO 有一些了解和经验,以下就来说说过去 7 天,我对它做了些什么。 WordPress 模板的 SEO 大同小异,希望能够通过本文给有需要的朋友开拓一些思
路。

在 《网站整体标准化对 SEO 的影响》 一文中,我介绍了网站的四个层面:基础层、结构层、内容层和表现层。

WordPress-SEO

在进行 WordPress SEO 时,我也是基本遵守着这个网站标准化的步骤去进行的。当然基础层的东西不属于 WordPress SEO 的范畴,我们跳过这一部分,从结构层面开始:

WordPress 结构层 SEO

WordPress SEO 在结构层面比较重要的地方有:网站栏目及结构划分,URL 标准化,模板 header 优化,以及微数据的少许应用。

网站栏目及结构划分

做为一个主题于 SEO 相关的博客,不以 SEO 做为关键词有些说不过去了。在选取好模板后,就需要开始栏目的划分。按照初步规划,我将栏目分为:

SEO:

SEO 人物:介绍一些著名的 SEO 从业人员,学习经典 SEO 案例

SEO 学习:学习 seo 基础知识,免费的 SEO 培训

SEO 工具:介绍一些对 SEO 有用的工具

……等:随着内容的增加,还会有其他的板块出现

根据中文分词的原理 「SEO 学习」 可以区分为 「SEO」 和 「学习」 。套用 TF-IDF 框架的 SEO 衍生应用可以得出 「学习」 一词的权值要低于
「SEO」 。由于它们都是作为导航出现在各个页面,所以整站做 「SEO」 这个词的优化,可以自然的带动 「SEO 学习」 、 「SEO 工具」 等。

在结构方面,我运用了同百度百科相同的结构方式。将栏目做为一个页面去处理,而不是做为一个目录去处理。其作用是可以提高传递给栏目的权重。这块的内容比较复杂,以后我会专门用一篇文章去解释。这里我想用一张图来说明结构方面的部署:

网站扁平结构

同时 Sidebar 和 Footer 放置一些对 SEO 帮助不大但对真实用户的体验有帮助的东西。

最后在 nofollow 的使用上,选择了将 Sidebar 和 Footer 区域的一些外链加入了 nofollow 标签。

WordPress-URL 标准化

在 WordPress 中做 URL 的标准化不难。如果是 PHP 主机或虚拟空间,且支持.htaccess,那么在其中加入一段代码即可打开伪静态设置:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

然后在 WordPress 后台的 「固定链接」 中选择自定义结构,然后填入:

/%postname%.html

最终的效果就是类似:http://baiduseoguide.com/1.html

或者可以写成:

/%category%/%postname%.html

那么最终的结果就类似于:http://www.easthv.cc/lanzhouseo/trustrank-and-reserse-trustrank/

我们可以通过这个链接获得更多的 URL「样式」:http://codex.WordPress.org/zh-cn:%E4%BD%BF%E7%94%A8%E5%9B%BA%E5%AE%9A%E9%93%BE%E6%8E%A5

此外,如果发现 URL 中有一个.(点),从而影响到了 SEO 和美观,那么我们可以使用 WP No Category Base 这个插件来去除,非常方便。

模板 header 优化

出于适用人群广和每个人使用目的不同的原因,在 WordPress 的各种模板的 header 中,都基本含有了一切能够放进去的东西。

有些东西是必要的,如 title/Meta Description/canonical 标签等,有些东西则不是必须,甚至是无用的,如:Meta
Keywords 等。我个人的处理方式比较平和,只是优化和清理了我不会用到的东西。具体 WordPress header 优化如下:

打开模板目录下的 functions.php 文件,在?> 前加入以下代码:

remove_action('wp_head', 'wlwmanifest_link');

remove_action('wp_head', 'rsd_link');

remove_action('wp_head', 'index_rel_link');

remove_action('wp_head', 'feed_links_extra', 3 );

remove_action('wp_head', 'feed_links', 2 );

remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0 );

remove_action('wp_head', 'wp_generator');

保存,更新,即可。

微数据的应用

做这一步工作的原因仅仅是因为我个人比较重视版权,所以希望在谷歌的搜索结果中出现我的名字等信息;此外就是出于 SEO 研究的目的 (网站或页面权重达到什么样的值后,谷歌会显示微数据信息) 。注意百度是不支持微数据。除非是大型网站加入百度开放平台。

关于微数据的解释和使用方式,请参考谷歌站长工具中的相关介绍 《关于丰富网页摘要和结构化数据》 。

WordPress 内容层 SEO

内容层方面的 WordPress SEO,主要涉及 Title, Meta Description, robots.txt Sitemap 等方面。至于内容创作方面的因素,不在 WordPress SEO 的范畴之内。

WordPress 标题和描述 SEO

这个应该没什么好说的,采用 「文章名-网站名」 或 「文章名-目录名-网站名」 的方式进行。 WordPress 默认和部分模板所采用的 Title 标签需要改动,直接替换 header.php 中的相关 Title 信息即可。改动的代码网上有很多,可自行查询。

同理,为了防止搜索引擎自己抓取网站描述,从而影响用户在搜索结果页面看到的文字,我们也需要对 Meta Description 做自定义处理,代码如下:

<?php

if (is_home()) {

$description = "这里写你网站首页的描述";

} elseif (is_single() || is_page()){

$description = get_post_meta($post->ID, "description", true);

}

?>

上段代码的意思是,如果是首页,则显示 「这里写你网站首页的描述」;而如果是文章页或者页面,则按照子定义栏目中输入的指显示。

那么如何在自定义栏目中输入值呢?怎样找到输入自定义 description 的地方呢?

1. 在后台的撰写新文章页面下,找到右上方的 「显示选项」,点击,勾选 「自定义栏目」;

2. 在文章编辑区下方会出现 「自定义栏目」,选择 「输入新栏目」,然后输入」description」;

3. 在右方的 「值」 中输入你文章的描述,注意保持在 70 个汉字之内。

robots 正确写法

WordPress 的通用 robots.txt 写法为:

User-agent: *

Disallow: /feed

Disallow: /trackback

Disallow: /comments/feed

Disallow: /wp-content/

Disallow: /wp-includes/

Disallow: /wp-admin/

Disallow: /author

Disallow: /*.css$

Disallow: /*.js$

sitemap: 替换为你网站的 sitemap.xml 地址

可以根据自己实际需求进行添加和删减。

此外应该注意:robots.txt 文件的编码格式应该为 ANSI

sitemap

直接使用 Google XML Sitemaps 这个插件创造 sitemap.xml 即可。同时也需要有一份 html 格式的网站地图。我个人是使用 PS Auto Sitemap 这个插件来实现的。

WordPress 内容层 SEO

这里的优化主要牵扯到 CSS 和 JS 的整合及优化,从而提高网站相应速度和加载速度。下面的图表示的是优化后的 WordPress 在 YSlow 中的得分,以及在谷歌管理员工具中网站性能中的速度测试。

优化后WordPress速度

由于网站速度这快的优化已经超出了 WordPress 的优化范畴,且相关要介绍和解释的内容太多。我会在以后的文章中做专门的介绍。

以上就是杨帆对 WordPress 优化的一些见解,SEO 工作每个人针对每一个网站,都有不同的操作思路和具体做法。笔者也仅仅是抛砖引玉希望能够给大家一些 WordPress SEO 上的思路。文章内容不当之处请多多包涵并指出。