为大家分享WordPress的SEO优化技巧

  本文为大家分享一些WordPress的SEO优化技巧,因为之前没时间做搜索引擎优化,所有收录效果不是很好,虽然我不是什么SEO高手,但作为一个搞搜索前端开发的,或多或少还是了解一些,高手绕道。

  优化博客副标题

  副标题 (slogan), WordPress 中称为 tagline. 它与博客标题不一样, 可能会承载一些描述博客的文字, 如我的副标题是 "DEFCON笔记 - Just Another WordPress Blog", 其中的 WordPress Blog 被我设置为 h1. 因为我想告诉爬虫, 这是一个关于 WordPress 的博客。

  区分显示页面标题

  页面的标题不要包含博客名称.,WordPress 标题一般会用到 bloginfo("name") 和 wp_title() 两部分, 前者是博客名称, 后者是文章标题 (如果标题不存在则不显示). 经典主题和默认主题输出标题用的代码如下:

<title><?php wp_title("«", true, "right"); ?> <?php bloginfo("name"); ?></title>

  输出的标题结构是 "文章标题 » 博客名称".

  除非你的标题和文章内容相关度比较高, 否则这样的标题对 SEO 显然是不好的。标题是爬虫认为重要的内容之一, 如果标题中包含了与文章内容无关的信息, 多少会对该页面有所影响。

  那应该怎么弄呢? 我们可以对不同类型的页面进行区分, 实现代码如下:

<title><?php
// 如果是首页和文章列表页面, 显示博客标题
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");
}
?></title>

  Keywords (关键词)和 Description(描述)

  Keywords 为搜索引擎提供网页包含的核心内容, Description 则为搜索引擎提供网页的描述信息。

  以下是我对 keywords, description 和页面标题的处理规则, 实现方法可以参考上一段关于页面标题的说明.

  页面类型KeywordsDescriptionTitle首页 (front page)自定义 keywords自定义 description博客标题文章列表页面 (index)自定义 keywords自定义 description博客标题文章详细页面 (single)标签组合摘要或者文章前 220 个字符

  (截取文章需要特殊处理全角字符)文章标题独立页面 (page)标签组合文章前 220 个字符

  (截取文章需要特殊处理全角字符. 独立页面不支持摘要, 有特殊需要可以创建页面模板)文章标题类目存档页面类目名称类目描述XXX 类目的文章存档搜索页面搜索关键字XXX 的搜索结果XXX 的搜索结果标签存档页面标签名称标签描述XXX 标签的文章存档日期存档页面日期XXX 的文章存档XXX 的文章存档其他页面留空页面标题博客标题

  文章详细页面的描述一般取文章的前 220 个字符即可, 特别重要的页面和文章可以自定义摘要, 使其信息准确度更高. 如果存在摘要信息则使用摘要, 没有则使用前 220 个字符, 实现代码如下:

<?php
if($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));
}
?>

  定义面包屑

  面包屑在网站中起到导航的作用, 便于搜索引擎进行索引。如果一个网站存在面包屑, 在 Google 中看到的是路径索引, 而不是文章链接。

  使用 h1, h2, h3, strong 标签

  h1 给予文章标题或者与网站相关性高的推广性内容, 而不是博客标题. 比如: 文章详细页面的 h1 给文章标题, 因为相关度最高;

  h2 是跟文章有关的描述式信息, 如面包屑, 分类和标签;

  h3 是其他类似内容, 如相关文章, 小标题;

  strong 给文章内的关键字. 比如: 本文第一段将 strong 放在 "WordPress SEO 技巧" 这个词组上。

  将 Related Post 改为 More posts about XXX

  其中 XXX 是关键字及其链接, 本人建议使用分类或者标签链接代替。从 SEO 优化的角度来说, 因为 Related 一词与几个文章的链接没有任何关系, 但标签与之相关度很高。(一般相关文章是通过相似标签来确定的 从用户体验的角度来说, 没有太多人留意你的 Tags 是什么, 不如将标签和相关文章结合现实. 阿里巴巴速卖通的产品详细页面也类似这样做的, 这是我 2009 年操刀搞上去的。

  在类目页面和标签页面的添加概要描述

  类目页面和标签页面都是用户呈现某写有相似内容的文章, 但是文章肯定有其独有的侧重点, 它们之间也存在一些差异。在文章列表之前放一段关于某该分类的描述, 告诉爬虫这是一个归类为 XXX 的页面, XXX 指的是什么,关键位置增加描述信息, 可以让该分类获得更好权值。

  WordPress 的分类和标签都是可以添加描述信息的, 在分类页面和标签页面, 我建议在文章列表前先展示描述信息. 一些网站标签超过, 根本没有办法逐个填写, 那么可以套用固定的语句, 加上对应的标签作为其关键字.

  与文章无关内容后移

  很多爬虫都会爬取全页进行分析, 但还有些爬虫只会分析页面的前 N 个字节的内容。无论是曝光次数还是分析次序, 显然前面内容的权重相对会比较高。为了爬虫有效的收录, 应该尽量将无关内容后移。如 JavaScript 等可以在 DOM ready 时再执行。

  这个博客顶部的很多与内容无关的内容其实都是放在页脚的, 如搜索栏, 订阅按钮都是放到页脚, 在 DOM ready 时通过 CSS 或者 JavaScript 重新定位来实现的.

  消灭内嵌 CSS 和内嵌 JavaScript

  内嵌的 CSS 和 JavaScript 可能带有一些关键字和链接, 而且拖慢页面加载速度, 影响爬虫收录. 尽量将这些写在外部文件中.

  避免出现重复内容的文章

  WordPress 的评论分页可能导致多个重复内容的文章, 会将某些关键词的权重分散了, 有必要进行 SEO 优化。

  为 Read more (阅读全文) 链接加上 nofollow

  因为 Read more 链接的路径实际和文章标题相同, 没必要再多加一个文本与页面内容无关的链接。"Read more..." 在网站出现 N 多次, 可能会干扰爬虫。

  不要制作欢迎页面

  很多朋友喜欢把博客首页做成欢迎页面, 但因为大量链接链向首页, 它是最重要的页面, 应该尽量放置与博客相关的内容, 我给两个建议:

  直接使用文章列表页面作为首页, 如 defcon.cn 但对于更新频繁的博客不是太好, 页面因为没有固定的内容, 关键词的信息会波动很大, 建议上面写一段固定文字;

  制作一个频繁更新内容的文章导航页面, 可以放置特色产品, 热门文章和最新评论等内容。

  优化文章列表页面

  经过我长期的试验, 切勿在文章列表页面展示所有文章内容。如果你的文章直接相关度都很高 (比如: 全站都是写 SEO 相关的文章), 建议展现所有文章的摘要,如果文章之间相关度不高 (比如: 有时写 SEO,、有时写 WordPress、有时写前端、有时又招聘), 那么只展示前三个文章的摘要即可。

  向 Google 、百度等搜索引擎提交 Sitemap

  WordPress 有很多自动生成 sitemap 的插件, Google XML Sitemaps 是我用过最好的一个, 按插件说明使用即可生成 sitemap 文件.,然后登录 Google Webmaster Tools, 并向 Google 提交网站的 sitemap XML 文件。百度也是一样的,搜索百度站长工具即可。

  使用伪静态 URL 作为固定链接

  所谓伪静态就是从 URL 上看起来像是在访问静态文件, 而实际上只是 Web 服务器对 URL 进行了重写, 伪静态存在的 URL 有类似以下形式:https://www.wpmee.com/5299.html

  这样的 URL 形式有利于搜索引擎进行收录, 据说对搜索引擎来说使用真静态和伪静态是没有区别的, 而真静态的页面性能要好很多, 其展示速度更快, 几乎对服务器没有压力。

  我建议使用两种形式的配置:

  第一种:/%postname%.html

  第二种:/%post_id%.html

  第一种是 [域名 + 文章] 的形式, 简短且便于记忆; 第二种是 [域名 + 类目 + 文章] 的形式, 内容丰富, 如果类目层级较少 (少于 3 级) 且分类严谨合理能够获得更好的 SEO 效果。