WordPress速度优化经验

WordPress作为一个动态网站如果不经过一番优化速度是比较慢的,速度慢的影响就不在这里赘述了,下面简单介绍一下Wordpress的速度优化思路和优化完成之后遇到的缓存问题的解决方法(找到合适的地方清理缓存)

提到优化,大家首先想到的办法就是上CDN!但是尝试过在WordPress使用CDN内容分发网络之后,就会发现这并不是一件舒服的事,一会账户无法登陆了,一会文章修改了不刷新了......

造成这一系列问题的主要还是WordPress是一个动态网站,主要靠数据库和PHP协调生成网页,而CDN分发网络仅仅适用于静态加速,所以WordPress在上CDN时缓存配置策略一定要好好研究。

目前我的网站仅仅使用了COS+CDN加速静态资源,网站本身没有使用CDN,使用全站缓存的话会不可避免的会出现以上提到的问题,这里推荐一个插件可以解决部分关于此方面的一些困扰但是仍不完美还需要继续打磨.......

详细信息见下面的链接,有问题也可以很方便的找到插件作者咨询。有兴趣的小伙伴可以参考一下。

WP-CDN-Yes WordPress CDN插件 - 耗子博客 (hzbk.net)

本文主要介绍一下网站正在使用的缓存方案,使用WPJAM Basic插件并参考水煮鱼博客的资料整理而成,前边介绍优化的过程,后边介绍一下近日更换子比主题之后遇到的各类缓存问题的排查思路,做个笔记,免得下次又懵了

一、网站动态内容优化

网站加速分成两大步:动态内容优化静态资源加速

WordPress 博客页面的生成,首先加载 WordPress 程序,然后加载插件和主题,最后根据请求从数据库中取出数据渲染网页,当然这也是一般 PHP 脚本渲染网页的过程。

所以动态内容优化,首先要优化服务器,安装 OPCache 和 Memcached然后优化 WordPress

OPCache 把经过编译后的 PHP 代码缓存到内存中,在用户访问的时候就能直接调用从而起到高效的加速作用。

Memcached 会把 WordPress 的数据库查询结果存到内存里面,下次使用会直接到 Memcached 中取,这样数据库查询将会减少,甚至可以做到 0 SQL,所以可以显著的提高页面生成的速度。

优化 WordPress, WPJAM Basic 插件已经集成了绝大部分的优化选项,这里就不再说明。

WordPress 生成页面之后,页面里面有图片, CSS, JS 这些静态文件,这些静态资源如果加载比较慢的话,用户访问你的网站感觉也是会慢的,所以我们要对图片, CSS, JS 这些静态资源进行加速。

2021年8月13日更新:

这里增加一种选择,可以将 Memcached 更换为 Redis,下面这篇文章就介绍了如何使用 Redis和opcache对动态内容进行优化 ,很全面写的也比较清楚,有需要可以参考一下。wordpress网站使用Redis缓存和PHP opcache为网站加速详细图文教程-zibll子比主题

二、网站静态资源加速

静态资源加速的意思就是让用户能够快速访问博客里面的图片, CSS 和 JS 这些文件。

那么反过来说:是什么阻止了用户快速访问图片, CSS 和 JS 这些静态资源文件呢

  • 服务器带宽不够,网页中的图片很大,或者访问量一大,这些资源加载就被限制了,当然可以升级服务器带宽,不过这是很贵的。
  • 服务器并发不大,虽然服务器处理静态资源需要 CPU 是远远比不上动态内容的,但是如果一个网页有几十张图片,那么一个用户的访问,相当于服务器有几十个并发,那么访问量一大就会卡死。

CDN(Content Delivery Network)是指内容分发网络,采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。

CDN加速有两种一种是全站加速这种情况下网站内不管动态内容还是静态资源都做了 CDN 服务,而WordPress的动态内容是 PHP 实时生成的,不建议进行 CDN 加速,另外图片等资源还存在回源和无法使用缩略图等问题。

所以我们一般建议先将静态资源镜像到第三方的云存储服务,比如阿里云的 OSS 和腾讯云的 COS,然后再使用CDN 对静态资源加速。

关于云存储的同步这里推荐一下WordPress采集插件:QQWorld收藏家豪华版(QQWorld Collector Deluxe)这个插件,我自己目前只用到了云存储功能买了99元的服务器版本,后续如果有需要了再升级。

图片[1] - WordPress速度优化经验 - 登山亦有道
支持多种云存储可自由选择,技术支持也很到位

三、使用静态缓存插件

静态缓存插件也有很多如WP-Super-Cache和WP-Roket。个人更倾向于WP-Rocket,它有Nginx插件可以使网站完全静态化。

虽然是一个很好的插件但是由于定价不符合中国国情,最终选择了XX版,具体的使用方法也不过多赘述,因为已经有人整理的比较好了,我在这里指个路算了。

WordPress 速度简单优化 – 让你的网站飞起来 - 耗子博客 (hzbk.net)

WP Rocket 插件安装部署设置详细图文教程-魏艾斯笔记 (vpsss.net)

四、图片资源优化

2021年8月13日补充

在使用了一段时间之后才发现即使用了COS+CDN的方式来访问图片等资源 如果不对图片的体积进行有效的减小,网站速度依然会很慢。关于图片的优化可以参考 浅谈博客网站图片优化 这篇文章。

五、有关优化的其他方面

装插件越少越好,无用的插件停用并删之。

服务器也不能太差,1h1g1m的服务器再优化也不可能比过4h4g10m的服务器。个人推荐2h4g2m起步。

六、遇到缓存问题的解决办法

出现缓存问题最直观的表现是页面显示的内容与自己想要得到的不相符,可以根据以下思路判断该清除哪里的缓存。

以下是常用的几种缓存,遇到问题一般情况下都是这几种缓存的原因,每个人的情况不同,主要体现在使用的缓存方式以及插件的不同,但是思路和解决方法都是一样的,找到缓存并清理它。

  • 浏览器缓存
  • Redis数据库缓存
  • Memcached数据库缓存
  • WP Rocket是页面静态缓存(每次修改必清)
  • OPCache 是编译后 PHP 代码的内存缓存(一般不用管)
  • 与静态资源相关的检查URL与云存储COS中对应的内容是否一致(刷新对应CDN域名的缓存,关于JS、CSS、图片等资源)
图片[2] - WordPress速度优化经验 - 登山亦有道
目录刷新要比URL刷新更加有效

七、本次遇到的几个问题

1、Argon主题更换子比主题之后文章列表页的缩略图错乱图文不对应(刷新Memcached缓存后解决

2、更新主题后由于云存储的CSS什么的还是老版本的,新功能样式错乱(使用CDN的目录刷新功能后解决,URL刷新无效)

具体表现为页面布局大小图标功能与更新前没有区别,处理的过程很曲折,把能清理的缓存全部都清理了之后才想起来使用CDN的目录刷新功能。

总结成一句话就是:有异常就清缓存、调试时关缓存。

© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享
评论 晨岩, 林海草原等人在此发表了2条热情洋溢的评论
匿名的头像 - 登山亦有道
提交
匿名的头像 - 登山亦有道

昵称

在 WordPress 上使用 Sticker Heo 增添互动时的乐趣吧 !

取消
昵称表情代码图片
    • 林海草原的头像 - 登山亦有道
      林海草原 Macintosh Safari 15.5
      • 晨岩的头像 - 登山亦有道
        晨岩作者 Windows Edge 103.0.1264.49