在 SEO 中网站的链接结构以及目录层次都非常重要,百度官方的 SEO 白皮书内就强调了,一个好的 URL 结构不仅能让搜索引擎更加容易了解到网站内容,而且也利于访客记忆。很多 SEO 书籍中都提到了,网站 URL 的目录层次最好不要超过三层。当然如果 URL 中包含关键词就更好了。那么 WordPress 网站该如何设定网站的伪静态才能符合 SEO 标准呢?

文章页:

应采用 「/%category%/%postname%.html」 格式的链接,如下图:

采用此结构后搜索引擎在抓取该页面的时候就可以知道该页面是属于那个目录 (分类) 下的,这样有利于蜘蛛了解整个目录下的主要内容以及目录的主要语义,从而让你的页面在搜索引擎返回同样语义关键词时有更好的排名。不过之前有人说直接使用 「/%post_name%/」 或者 「/%post_id%/」 又或者 「/%post_id%.html」 之类的的伪静态 URL 结构能让网站的排名,因为网站的根目录下的权重最高,所以越接近根目录的文件或者页面的权重也就更高了,其实不然,这样的 URL 结构实际上在搜索引擎眼中是杂乱不堪的,没有一个有效的归类,很难分清网站的目录结构,所以强烈不推荐此类的伪静态结构。接下来就是分类页面的 URL 优化了,大家都知道默认的 WordPress 分类目录的链接是 「http://www. 域名.com/category/分类名」 这样的,显然这样的结构就会让搜索引擎以为所有 「分类名」 为是 category 目录下的一个无后缀名的一个页面。首先我们要将 URL 这中的 category 去掉,之前小编提到过两种方法:

插件法:WP No Category Base

代码法:WordPress 链接结构优化之标签 (category) 存档页优化

将连接中的 category 去掉后分类目录的链接就变为了 「http://www. 域名.com/分类名」 这时对于搜索引擎来说这不是一个目录而是一个页面,加上 「/」 反斜杠才是一真正的页面,那么如何让分类目录的链接变成 「http://www. 域名.com/分类名/」 这种形式呢?使用以下代码即可:

if (is_admin()) return;
$permalink_structure = get_option('permalink_structure');
if (!$permalink_structure || '/' === substr($permalink_structure, -1))
return;
add_filter('user_trailingslashit', 'ppm_fixe_trailingslash', 10, 2);
function ppm_fixe_trailingslash($url, $type)
{
if ('single' === $type)
return $url;
return trailingslashit($url);
}

将以上代码加到 functions.php 文件的最后面,记住一定是最后面,否则可能会造成网站报错无法访问的状况。

至于标签页 (tag) 则保持原状即可。