WordPress的文章、评论等很多数据都是存放在数据库的,所以搭建wordpress网站的时间,网站的空间不需要多大,而数据库一定要充足,而在WordPress数据库中主要使用 wp_posts 表来存储日志,页面,附件,导航菜单等数据,根据使用的时间越来越长,堆积的数据越来越多,从而运行起来也越来越慢,那么我是十分有必要对 WordPress数据库来进行整体的优化下。
温馨提醒优化之前切记先备份下数据
删除所有日志修订
影响wordpress运行速度的根源在于日志的修订记录,一百多篇文章会有一千多条的日志修订的记录,所以此步优化必须做,提速效果非常明显,执行以下SQL语句:
复制代码
代码如下:
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'
优化 wp_posts 表
写文章的时候进行的插入、更新或删除等都会产生不同大小的记录碎片,整理碎片这步要做。
复制代码
代码如下:
OPTIMIZE TABLE wp_posts;
删除所有垃圾留言
这个可以在后台一条一条的删除,也可以到mysql执行下也行:
复制代码
代码如下:
DELETE FROM wp_comments WHERE comment_approved != '1';
删除没有的标签
有些文章删除了,但标签还在,WordPress不会自动删除的,我们手动清理下吧:
复制代码
代码如下:
DELETE a,b,c
FROM
wp_terms AS a
LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE (
c.taxonomy = 'post_tag' AND
c.count = 0
);
删除没用的 postmeta 记录
当文章的记录删除后,还有日志扩展表postmeta的数据还没有删除,也人工清理下吧:
复制代码
代码如下:
DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL
总而言之网站的速度就是网站的”半条生命”不要让自己的网站太过臃肿,以免影响网友访问。
PHP Code复制内容到剪贴板
$description = "小残博客(www.exehack.net)关注网络安全、IT行业、网络安全文章、网络资源、电脑技术、网络安全技术、网络安全知识、互联网安全知识、原创网络安全博客";
$keywords = "关注网络安全,网站漏洞,网络安全,网络安全技术,网络安全知识,网络安全教程,黑客新闻,服务器安全,网络安全文章,系统安全";}
elseif (is_single() || is_page()) {
$description1 = get_post_meta($post->ID, "description", true);
$description2 = mb_strimwidth(strip_tags(apply_filters
('the_content', $post->post_content)), 0, 200, "…");
$description = $description1 ? $description1 : $description2;
$keywords = get_post_meta($post->ID, "keywords", true);
if($keywords == '') {
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords . $tag->name . ", ";}
$keywords = rtrim($keywords, ', ');}
}
elseif (is_category()) {
$description = category_description();
$keywords = single_cat_title('', false);}
elseif (is_tag()){
$description = tag_description();
$keywords = single_tag_title('', false);
}
$description = trim(strip_tags($description));
$keywords = trim(strip_tags($keywords));
?>
<meta name="description" content="<?php echo $description; ?>" />
<meta name="keywords" content="<?php echo $keywords; ?>" />
5. 固定链接
wordpress的默认固定链接是www.exehack.net/?p=32的形式,是动态链接对搜索引擎不 太友好,所以需要修改。
直接通过设置-固定链接选项,可以方便的修改固定链接的形式。至于选择哪种链接形式,其实主要看个人喜好。
推荐选择 /%postname%/形式。需要注意的是,固定链接要在网站建立之初就确立好,以后切勿修改,更改固定链接会对网站权重造成很大影响,即使使用301 重定向也是一样的,所以不要修改固定链接。
6.robots.txt
robots.txt 文件放在根目录下面,是给搜索引擎设置的爬行规则,可以规定搜索引擎可以爬行那些页面。
wordpress的robots.txt写法,可以搜索一下,并 没有标准答案,主要是注意禁止搜索引擎抓取后台文件即可。
可以参考本站的写法http://www.exehack.net/robots.txt
7.sitemap.xml
sitemap 是一个xml格式的网站地图文件,通过提交到搜索引擎,可以使搜索引擎更加容易抓取你的网站,sitemap是Google率先推出的,最近百度也支持 sitemap的提交,不过Google和百度的sitemap文件格式是有一些区别的。
wordpress的sitemap文件生成,直接使用插件即 可。wordpress的插件安装,在后台点击添加插件,然后直接搜索安装即可。
Google的sitemap插件名是Google XML Sitemaps,百度是Baidu Sitemap Generator。
8.内部链接
可以使用wordpress related post插件,它可以根据文章关键词生成一个相关文章列表,对于网站内部链接和用户体验都是有好处的。