如何优化WordPress
WordPress优化经验和技巧:
动静分离
无论WordPress博客还是其他CMS搭建的站点,优化的第一步一定是动静分离,这也是为什么你看到新浪、腾讯等门户网站,它们的图片和网站的域名并不相同。
网站的静态文件一般有两种:第一种是网站的CSS和JS,常见的一些主题的背景图片和按钮文件。如果网站没有改版或者其他修改,这些图片基本不会被修改;第二种是每天更新的网站内容中上传的图片或附件,这些图片文件基本不会被更改。
要解决静态文件存储和加速的问题,首先可以基本保证网站性能,WordPress搭建的网站和博客都是一样的。对于这些静态文件,最好的解决方案永远是使用CDN网络来加速,这样服务器的压力会大大降低,因为只有当前页面在自己的服务器上,其他所有的图片、JS、CSS都是从CDN上获取的。
WordPress博客如何使用CDN服务?我写的WPJAM基础插件已经支持三种云存储服务:阿里云OSS、七牛云存储、UCloud Ufile。只要安装WPJAM基础插件,就可以一键实现WordPress博客静态文件的CDN加速。
服务器优化
优化完静态文件,就要开始优化网站的动态内容了。要优化动态内容,首先要有稳定的网络环境,稳定的主机供应商和服务器性能优化。
选择一个可靠的主机,个人推荐BGP或者多线机房,让全国各地的用户都可以很好的速度访问,然后尽量选择独立的服务器。最不济也得弄VPS,因为没有服务器的Root权限很多事情都做不了。国内一般推荐:阿里云。
解决服务器问题后,可以对服务器进行如下优化:
安装Memcached和PHP Memcached扩展:使用Memcached来缓存WordPress数据。
Open PHP OPCache:将编译好的PHP代码缓存到共享内存中,用户访问时直接调用,起到高效加速的作用。
设置MySQL查询缓存可以保存查询结果,不再从数据库中检索相同的查询,大大提高了速度。
WordPress缓存
要彻底了解和理解WordPress的性能优化,首先要了解WordPress的缓存机制。WordPress默认是一个名为WordPress对象缓存的对象缓存机制,以类似Key-Value(类似No-SQL的key-value)的模式缓存需要缓存的内容。当然也支持分组划分,避免缓存内容冲突。
所以最基本的WordPress缓存插件就是存储WordPress生成的key -值。如果使用Memcached,它将存储在内存中。如果你使用Flie,它将被存储在硬盘中。当然高级的WordPress插件可以做的更多,比如WP超级缓存在硬盘中缓存整页,下次直接访问静态HTML文件,这样服务器就可以直接绕过PHP,节省CPU时间。Batcache将整个页面作为一个对象存储在内存中。个人建议用Memcached就够了。
Memcached将WordPress对象存储在内存中。服务器的内存足够大,读写速度足够快,内存缓存命中率高于百分之九十七。另外,我们的WordPress程序优化后,一般每页有2个左右的查询,所以整个网站的效率非常高。主页甚至做到了0 SQL,页面生成只需要0.0013秒。
WPJAM基本插件集成了Memcached。下载WPJAM Basic后,将wpjam-basic/template/目录下的object-cache.php文件复制到wp-content目录下。
WordPress程序优化
WordPress程序优化是基于WordPress对象缓存的机制对WordPress插件和主题进行优化。主要经验如下:
只使用必要的WordPress插件,安装太多的WordPress插件很容易造成性能问题。
从正规网站下载WordPress主题,这样可以保证下载主题的质量和安全。推荐我和xintheme出版的秋天和蜂蜜题材。第一个0页SQL已经实现。
WordPress主题和插件尽量使用模板函数,因为WordPress模板函数在可能的情况下已经做了WordPress对象缓存。比如这两个函数,get_the_terms和wp_get_object_terms,功能基本相同,只是get_the_terms直接从对象缓存中取数据,没有查询,而wp_get_object_terms每次都是从数据库中取数据。
如果一定要直接查询数据库中的WordPress插件和主题,请做好对象缓存,使用wp_cache_set将查询结果保存到对象缓存中,下次直接使用wp_cache_get。
WordPress性能优化服务
总结一下:优化WordPress,先下载安装WPJAM Basic插件。然后,选择好的服务器和托管提供商,优化WordPress程序,使用Memcached进行缓存。
WordPress的效率其实是很高的,加上WordPress本身的灵活性和强大的功能,WordPress作为各种建站肯定是一个非常好的选择,所以我一直在用WordPress建站。
更多WordPress技术文章,请访问WordPress教程专栏!
评论前必须登录!
注册