WordPress 安装很方便,可以说是开箱即用。但是随着文章增大,访问量增大,会发现 WordPress 很“慢”。这是 WordPress 本身的 PHP 运行机制导致的,每篇文章都要去数据库读取,而且 WordPress 为了支持各种功能,现在已经非常臃肿,每次请求都要加载很多东西。但正是 WordPress 的功能强大,让我们也能很方便的做各种优化。
0x1 使用最新版本的 PHP 和 MySQL
毫无疑问升级基础运行环境是提高性能最好的方式之一。特别的 PHP7 和 MySQL 5.7 较之前的版本性能提升很大。还有更具服务器配置适当调整 PHP-FPM 和MySQL 参数。
0x2 使用缓存插件
这里的缓存有两层意思,一是 PHP 层面的运行数据缓存,二是文章页面静态化。这里推荐两个插件来解决这个问题:
1. Redis Object Cache 一款持久对象缓存插件。其实 WordPress 本身带有对象缓存功能,但是是把序列化的对象缓存在文件中,效果不是很好。这个插件通过重写 object-cache.php 文件,把对象缓存到 Redis。直观的感受就是不光前台页面加载速度快了,而且后台响应速度提升更大。
2. Cache Enabler keycdn 公司开发的一款页面静态化缓存的插件。相比 wp-supercache 等插件更加简洁和强大。建议按照官方说明进行增强设置。Nginx,除了正常设置 gzip 外还开启了 gzip_static 参数,让 Nginx 在读取文件的时候优先读取带 gz 后缀的静态文件,不用再做 gzip 压缩。gzip 压缩检查工具下载
0x3 使用 CDN 和图片压缩
用户有时候感觉网站慢,更多的是静态资源加载慢。页面上的 JS、CSS、图片等都需要消耗服务器带宽。而且中国地域辽阔,跨地区、跨运营商更是问题。这时就需要 CDN 了。现在国内各个云都在相互竞争,CDN 比较便宜,免费的也有很多。我之前使用的是七牛云,不过自从服务器迁到 腾讯云 之后, CDN 也换到了腾讯(免费12个月)。这里推荐同为 keycdn 出的 CDN Enabler 插件,能将页面中的链接替换为 CDN 链接。同时推荐使用 WP Smush 插件压缩图片,使用 BJ Lazy Load 实现图片懒加载(显著提高首屏加载速度)。还有不要忘记站点和 CDN 都配置一下防盗链。
0x4 配置 dns-prefetch 、 preconnect 和 prerender 等资源加载参数
dns-prefetch 即 DNS 预加载,表示在页面加载前就先进行 DNS 解析,示例: 。
preconnect 资源预连接,预先建立与一个域名的连接,包括 DNS 查询、TCP 握手、TLS 协商,有点类似于后端经常使用的连接池概念,后续同一域名的请求高优先使用已建立的连接,提高连接效率。
prerender 预先请求,经常用在热门文章或者下一页场景。比如预先请求好下一页的内容,当用户点击下一页时嗖的一下就跳到下一页去了,极大地提高了用户体验。
这三个参数都可以通过插件 Instant Articles 设置,不过提醒一下预加载也不是设置的越多越好,毕竟浏览器能发起的 HTTP 请求是有限的,可能会适得其反。
其它wordpress实用插件推荐
1. Comments – wpDiscuz 自带评论增强插件,在样式和功能上都提升较大。特别是最近多说关闭,让我更觉得还是自带的评论系统靠谱。
2. Contextual Related Posts 相关文章推荐插件,较少用户跳出率,提高用户粘性。
3. Ultimate Tag Cloud Widget 标签云插件。
4. Wordfence Security 安全防火墙。
5. WP-PostViews 文章阅读数插件。
本文转自yaozhen's blog