腾讯云服务器优惠活动华纳云香港服务器

知名站长明月登楼总结WordPress 站点优化思路

WordPress主题推荐

外链引用

你博客网站内引用外链过多,有时候是访问慢的主要罪魁祸首(外链就是 http 前缀域名非博客主域名的链接),至于说为啥有这些外链?原因有很多,比如:文章内的外链图片、插件内的外链 http 请求、主题代码里的外链请求等等。特别是文章内的外链图片,因为并不单单只在载入文章的时候影响文章的载入,首页、分类页的缩略图裁剪也要调用外链图片来裁剪,只要是显示缩略图的地方外链图片都会被调用多次。插件和主题内的外链一般影响比较大的是 WordPress 后台载入速度,对前端影响主要就看插件或者主题作者的开发水平和思路了。

插件影响

其实插件对访问速度的影响有时候并不单单是表现在前端,而是服务器端或者说是数据库服务器端,有些插件会产生大量的数据库查询读取次数比如著名的 WordPress “安全卫士”插件 Wordfence Security 就会对数据库进行大量的操作,其它的还有很多类似的插件都有这样的问题,比如:SEO 类插件等等。所以在决定使用一个插件的时候,最好是启用插件后看看数据库里是不是多出了非 WordPress 系统 WP 开头的“表”,如果有就尽量不要使用,或者使用完后就停用插件,需要使用的时候再开启。

类似图片的静态文件过多的影响

图片现在几乎是博客文章里不可缺少的了,图文并茂的文章可以受到用户和搜索引擎的青睐是大家都知道的,那么图片多了后依然会影响访问速度,因为这等于说变相的加重了主机服务器硬盘的读写操作,每一个访问都会有读写操作的请求诞生,加上相应的 CSS/JS 这类起到美化炫酷的代码对服务器其实也是个不小的压力。

数据库服务器瓶颈影响

大家不要忽略了数据库性能瓶颈带来的影响,特别是博客文章数量或者是插件数量多了以后,数据库要承受很大的压力的,插件对 wp_options 表、博客文章对 wp_post 表的查询量是惊人的,主机宕机就两个因素,一个是主机负载过高,一个是数据库服务器锁死。

知名站长明月登楼总结WordPress 站点优化思路-第1张-boke112百科(boke112.com)

四、优化 WordPress 的明确方向

通过上述三点的分析,那么我就可以明确了 WordPress 优化的方向,主要就集中在“动静态分离”、“服务器端优化”、“ WordPress 缓存优化”、“ WordPress 程序优化”这四个方面来操作了,下面明月引用“我爱水煮鱼”大神的 WordPress 性能优化经验和技巧来说明为什么这四个方面(明月会在每一条下面做一些个人建议):

动静态分离

不管 WordPress 博客还是其他 CMS 建的站点,优化的第一步一定是动静态分离,这也是你看到新浪,腾讯等门户,他们图片的域名和网站的域名不是同一个的原因。

网站的静态文件一般有两种:第一种是网站的 CSS , JS 和一些主题的常用背景图片和按钮文件,这些图片如果网站不进行改版或者其他改动,基本上是不会修改的,第二种是每天更新的网站内容中上传的图片或者附件,这些图片文件也是基本不会改动的。

解决好静态文件存储和加速,网站性能就首先能得到基本的保证了, WordPress 构建的网站和博客也是一样的。对于这些静态文件来说,最好的解决方案永远是使用 CDN 网络进行加速,这样服务器的压力将大大降低,因为访问页面只有当前页面是在自己的服务器上,其他所有图片, JS 和 CSS 都是从 CDN 获取的。

注:这里明月要强调的是“动静分离”目前解决最好的就是七牛云了,所以这里明月强烈推荐七牛云,每月免费 10G 的流量和空间,绝对够我们大部分草根博客免费使用很久了。

服务器优化

优化好静态文件之后,就要开始对网站的动态内容进行优化,优化动态内容,首先要有一个稳定网络环境,稳定的主机供应商和服务器性能的优化。

选择一个靠谱的主机托管商,个人推荐 BGP 或者多线机房,让全国用户访问都能有不错的速度,然后尽量选择独立的服务器,再不济,也得 VPS,🙂因为你没有服务器的 Root 权限很多东西是无法进行的。

服务器问题解决之后,服务器可以做如下优化:

MySQL 设置 MySQL Query Cache ,可以保存保存查询结果,同样的查询不再从数据库检索,对速度有很大的提升。

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

安装 Memcached 和 PHPMemcached 扩展:使用 Memcached 来缓存 WordPress 数据。

注:关于“服务器优化”这需要一定的 Linux 基础才能自己操刀的,没有相关技术的可以请求主机管理员帮忙,一般情况下主机服务器都默认已经开启上述的优化了,我们最多可以向管理员求证和落实一下,这也是判断你的主机提供商专业不专业的时候。

WordPress 缓存

要彻底明白和搞懂 WordPress 性能优化,首先要理解 WordPress 缓存机制, WordPress 默认是一种叫做 WordPress Object Cache 的对象缓存机制,它是把需要缓存的内容按照 Key-Value 这样的模式进行缓存(和 No-SQL 的 key-value 的有点类似),当然它还支持按照 Group 来划分和避免缓存的内容冲突。

所以最基础的 WordPress 缓存插件就是,把 WordPress 产生的 Key-Value 存起来,如果是使用 Memcached ,就是存到内存,如果使用 Flie 就是存到硬盘中,当然高级的 WordPress 插件还能做更多,比如 WP-Rocket 把整个页面缓存到硬盘中,下次直接访问静态的 HTML 文件,让服务器直接绕过 PHP ,节约 CPU 时间。 Batcache 会把整个页面当做一个对象存到内存里面。我个人推荐使用 Memcached 和 Batcache 进行缓存。

对于已登陆的用户,Memcached 会把 WordPress 的对象存到内存里面,服务器的内存足够大,读取和存储速度也够快,并且内存缓存命中率也大于 97% 。另外我们 WordPress 程序经过优化之后,每个页面的查询一般在 2 条左右,所以整个网站效率很高,首页甚至做到 0SQL ,页面生成只需要 0.0013 秒。

对于未登录的用户,Batcache 会把整个页面当做一个对象存到内存里面,未登录用户访问的时候,整个页面从内存中取出,速度奇快。

注:同上一条一样,这里的 WordPress 缓存主要是针对服务器层面配置来优化的,一般主机商那边默认都已经配置好了,具体详情只能是问你的主机商来核实了。只有 WordPress 的缓存插件是需要我们来安装配置的,这里明月推荐 WP Super Cache 、W3 Total Cache 、 WP-Rocket 这三个 WordPress 缓存插件,明月目前使用的是 WP-Rocket ,具体大家可以参考【推荐一个 WordPress 本地缓存的神器: WP-Rocket 插件】来了解。

WordPress 程序优化

WordPress 程序优化是基于 WordPress Object Cache 的机制对 WordPress 插件和主题进行优化,主要经验有以下几点:

  • 只使用必须的 WordPress 插件,安装太多的 WordPress 插件很容易引起性能问题。
  • 从正规站点下载 WordPress 主题,这样下载的主题才能保证质量和安全。
  • WordPress 主题和插件尽量使用模板函数,因为 WordPress 模板函数如果可能都已经做好了 WordPress Object Cache。比如 get_the_terms 和 wp_get_object_terms 这两个函数,功能基本一样,但是 get_the_terms 直接从对象缓存中取数据,无查询,而 wp_get_object_terms 每次都从数据库中取数据。
  • WordPress 插件和主题如果一定要直接查询数据库,请做好 ObjectCache,将查询的结果使用 wp_cache_set 存到 ObjectCache 中,下次直接使用 wp_cache_get 获取。

注:本条可以理解为是一个专业级的技术探讨了,当然也请一定要记住养成使用插件和主题的好习惯哦!懂技术的应该可以理解,小白可以忽略直接给明月点赞回评支持了!谢谢您的阅读支持!

好了,没有想到仅仅是个总结性的文章我竟然啰嗦了这么多,6000 多字!我自己都惊呆了,看来还是有点儿啰嗦了,以后得精简文字“啰嗦”的毛病呀!希望此文可以帮助到大家,特别是小白站长们,看完此文后有收获就是明月最大的欣慰了!

赞 (0) 打赏
1 2
版权声明:本文为投稿文章,感谢 明月登楼 的投稿,版权归原作者所有!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu