Cloudways的服务器本身已经做过优化,新建的WordPress也预装了缓存插件。但有不少设置默认没有打开,或者需要你根据网站的情况调整。
本文按从服务器到网站的顺序,把Cloudways上能做的加速设置过一遍:
- 先测一下速度,作为对比的基准;
- 服务器层面:机房、PHP版本、Lightning Stack;
- 页面缓存:Breeze插件;
- 对象缓存:Redis和Object Cache Pro;
- 要不要换成WP Rocket;
- CDN:免费Cloudflare,还是Cloudflare Enterprise;
- 网站本身的优化。
每做完一步,最好都重新测一次速度,这样才知道哪一步有效。
第一步:先测一下现在的速度
优化之前,先记下现在的速度,后面才有对比。可以用PageSpeed Insights和GTmetrix,测试的地点选在目标客户所在的国家或地区。方法见《网站速度怎么测?》。
重点看两个数字:
- TTFB(首字节时间):服务器多快开始返回页面。这个数字主要取决于服务器、机房和缓存;
- LCP(最大内容绘制):页面主要内容多快显示出来。这个数字还受图片、主题、插件影响。
TTFB慢,从服务器和缓存下手;TTFB不慢但LCP慢,问题多半在网站本身。
第二步:服务器层面的设置
机房离客户近一点
这一点在开服务器的时候就决定了:网站的客户主要在欧美,机房就选法兰克福、伦敦、纽约这些地方。机房选错了,后面怎么优化都弥补不了,只能克隆到新机房的服务器上。机房怎么选,见《Cloudways选哪家云?》。
PHP版本用新一点的
新版本的PHP通常比旧版本更快。查看和修改PHP版本:
- 进入「Flexible」→「My Servers」,点击服务器;
- 在左侧的「Server Management」里点击「Settings & Packages」,打开「Packages」标签;
- 在PHP那一行选择新的版本,保存。
这里改的是整台服务器的默认版本,会作用于服务器上的所有网站;Cloudways现在也支持给单个网站指定PHP版本,见《Cloudways后台常用设置》。改之前先确认主题和插件都支持新版本,最好先在测试站(Staging)上试一下,改完之后把每个网站都打开检查一遍。
切换到Lightning Stack
Cloudways现在有两种运行环境(Stack):
- Hybrid Stack:Nginx加Apache,以前的默认环境;
- Lightning Stack:只用Nginx,处理动态页面更快,官方说动态页面的响应时间最多能快65%。
新的服务器可能已经默认是Lightning,老服务器上的网站可以手动切换。环境是按网站设置的,同一台服务器上的网站可以分别选择:
- 进入网站的管理页面,在「Application Management」里点击「Application Settings」;
- 打开「Stack Setting」标签,选择「Lightning Stack」;
- 点击「Update Now」,确认。
切换不会造成网站中断,切换之后也可以改回来。
切换之前要注意.htaccess:Lightning Stack没有Apache,网站目录里的.htaccess文件不再起作用。如果你在.htaccess里写了301跳转、伪静态规则或者安全规则,切换之后要改用Cloudways后台的「Web Rules」重新设置。Web Rules每个网站最多25条跳转规则,规则比较多、比较复杂的网站,还是留在Hybrid Stack。
另外,子目录形式的WordPress多站点(Multisite)依赖.htaccess,不要直接切换。
保险的做法是:先把网站克隆一个测试站,在测试站上切换、检查,没问题了再切换正式网站。
第三步:页面缓存,Breeze插件
在Cloudways上新建的WordPress会预装Breeze,这是Cloudways自己开发的免费缓存插件,和服务器自带的缓存配合得最好。普通网站用它就够了。
在WordPress后台的「设置」→「Breeze」里,建议这样设置:
Basic Options(基本设置)
- Cache System:开启。这是页面缓存的总开关;
- Purge Cache After:缓存多久自动清除,默认1440分钟(一天),一般不用改;
- Gzip Compression:开启;
- Browser Cache:开启;
- Cache Logged-in Users:一般关闭。只有会员网站这类用户要登录才能看内容的,才考虑开启。
File Optimization(文件优化)
压缩、合并CSS和JS的选项,不要一次全部打开。这些选项最容易让页面错位、按钮失灵。一项一项打开,每开一项就刷新网站检查一下,出了问题就关掉那一项。改之前最好在测试站上试。
Varnish(服务器缓存)
如果服务器上有Varnish缓存(在服务器的「Manage Services」里能看到),Breeze会自动对接:
- Auto Purge Varnish:开启。发布、更新文章或者有新评论时,自动清除对应的服务器缓存;
- Varnish Server:保持默认,不要修改。
Advanced Options(高级设置)
- Never Cache URLs:不需要缓存的页面填在这里,比如购物车、结账、我的账户。WooCommerce的这几个页面Breeze一般会自动排除,保险起见可以检查一下。
改了网站,前台没变化?
这是缓存在起作用。在WordPress后台顶部的「Breeze」菜单里点击「Purge All Cache」清除所有缓存。还是没变化,再到Cloudways后台清除这个网站的Varnish缓存,最后清一下浏览器缓存。
第四步:对象缓存,Redis和Object Cache Pro
页面缓存解决的是“访客看页面”的速度。WordPress后台、WooCommerce的购物车和结账这些不能缓存的页面,每次都要查询数据库,这时候就要靠对象缓存:把常用的数据库查询结果放在内存里,减少重复查询。
对象缓存对这几类网站效果最明显:
- WooCommerce商城;
- 会员网站、论坛;
- WordPress后台很卡的网站。
4GB及以上的服务器:Object Cache Pro
4GB及以上的服务器,可以免费使用Object Cache Pro。这是一个付费的对象缓存插件(单独购买每月约95美元),性能比免费的方案更好。开启方法:
- 进入服务器的「Manage Services」,找到Redis,点击启用;
- Redis启用之后,Cloudways会自动给服务器上支持的WordPress网站配置好Object Cache Pro。
如果网站里装了其他的对象缓存插件(比如Redis Object Cache),要先删掉,两个对象缓存插件同时存在会冲突。
4GB以下的服务器:免费的Redis
2GB的服务器用不了Object Cache Pro,可以用免费的Redis:
- 同样在服务器的「Manage Services」里启用Redis;
- 在WordPress里安装「Redis Object Cache」插件;
- 在插件的设置页面点击「Enable Object Cache」。
Redis会占用一些内存。1GB的服务器内存本来就紧张,开不开要看一下Monitoring里的内存情况,见《Cloudways服务器配置怎么选?》。
第五步:要不要换成WP Rocket?
WP Rocket是最常用的付费缓存插件,比Breeze多一些功能,比如延迟加载JS、生成关键CSS、预加载缓存,对提高PageSpeed分数有帮助。
怎么选:
- 普通的企业站、询盘站:Breeze就够了,免费,和Cloudways的服务器缓存配合得最好;
- 已经买了WP Rocket,或者对PageSpeed分数要求高:可以用WP Rocket。
用WP Rocket要注意:
- 只保留一个页面缓存插件。用了WP Rocket,就把Breeze停用,两个缓存插件同时开很容易出问题;
- WP Rocket清缓存时,服务器的Varnish缓存不一定会跟着清。在WP Rocket的「附加组件」(Add-ons)里开启Varnish相关的选项;更新网站之后前台没变化的话,到Cloudways后台手动清除Varnish缓存;
- Object Cache Pro、Redis和WP Rocket可以同时使用,它们管的不是一回事。
第六步:CDN,免费Cloudflare还是Cloudflare Enterprise?
CDN把网站的图片、CSS、JS(有的还包括整个页面)放到全球各地的节点上,访客从最近的节点获取,网站的客户分布在多个国家时效果最明显。CDN是什么,见《什么是CDN?》。
在Cloudways上有两个选择:
| 免费Cloudflare | Cloudways的Cloudflare Enterprise插件 | |
|---|---|---|
| 价格 | 免费 | 每个域名每月$4.99(1~4个域名),域名多了单价更低 |
| 流量 | 不限 | 每个域名含100GB,超出部分每GB $0.02 |
| 整页缓存 | 需要自己设置规则 | 默认支持,并且会随WordPress更新自动清除 |
| 图片优化 | 没有 | 自动压缩图片(Polish) |
| 防火墙 | 基础功能 | 企业级WAF |
| 设置 | 自己在Cloudflare设置 | 在Cloudways后台开启 |
怎么选:
- 刚上线、预算有限的网站:先用免费Cloudflare;
- 客户遍布多个国家、对速度要求高的商城或询盘站:Cloudflare Enterprise每月$4.99,在Cloudways上是很划算的加速方式,整页缓存能明显降低海外访客的TTFB。
Cloudflare Enterprise在网站的管理页面里开通(「Application Management」下的Cloudflare相关菜单),按页面提示添加域名、修改DNS即可,不同网站可以分别开通。如果域名已经在用免费Cloudflare的代理(橙色云朵),开通之前要先关掉代理。
第七步:网站本身的优化
服务器和缓存都设置好了,网站还是慢的话,问题一般在网站本身:
- 图片太大:上传之前压缩,尽量用WebP格式,首屏的大图不要超过几百KB;
- 插件太多:停用并删除不用的插件,特别是那些在每个页面都加载脚本的插件;
- 主题太重:页面构建器做的页面,元素越多越慢,首页尽量简洁;
- 外部资源太多:在线客服、统计代码、社交媒体插件、谷歌字体,每一个都会拖慢加载速度。
常见问题
WordPress后台很卡,怎么办?
后台页面不走页面缓存,最有效的是开启对象缓存(Redis或Object Cache Pro)。其次检查是不是某个插件拖慢了后台,以及服务器的内存、CPU是不是已经吃紧,吃紧的话考虑升级配置。
Breeze和Cloudflare的缓存会冲突吗?
不会。Breeze的「Never Cache URLs」里排除的页面,也会同样从Varnish和Cloudflare的缓存里排除。更新内容之后,Breeze会自动清除对应的缓存。
开了缓存,表单、购物车出问题了怎么办?
先在Breeze里关闭「File Optimization」的所有选项,看问题是否消失;还不行,把出问题的页面加到「Never Cache URLs」里。WooCommerce的购物车、结账页面本来就不应该被缓存。
切换到Lightning Stack之后,网站的跳转失效了?
这是因为.htaccess不再起作用了。到网站的「Web Rules」里重新添加跳转规则,或者切回Hybrid Stack。
总结
在Cloudways上给WordPress网站提速,可以按这个顺序做:
- 机房选在客户附近,PHP用新一点的版本,没有复杂
.htaccess规则的网站切换到Lightning Stack; - 用Cloudways自带的Breeze做页面缓存,文件压缩合并的选项逐项测试;
- 开启Redis对象缓存,4GB及以上的服务器免费用Object Cache Pro;
- 只用一个页面缓存插件,换WP Rocket就停用Breeze;
- 海外客户多的网站,考虑每月$4.99的Cloudflare Enterprise;
- 最后优化图片、插件和主题。
更多Cloudways的使用教程,可以查看《Cloudways主机教程汇总》。



