WordPress 提速:缓存插件 + 对象缓存,双管齐下

WordPress 慢,多半是每次访问都现查数据库、现拼页面:页面缓存把整页存成静态文件,对象缓存把高频查询放内存。小够讲两层缓存怎么配、三个坑怎么避,1核2G 也能飞。

我是小够,只推够用的 VPS。

WordPress 慢的根子:每次访问都要现查数据库、现拼页面。访客一多,1 核 2G 直接跪。解决办法是缓存——两层:页面缓存 + 对象缓存。今天讲怎么配,以及三个必避的坑。

第一层:页面缓存(效果最明显)

页面缓存把生成好的 HTML 整页存成静态文件,下次有人访问直接给文件,不碰 PHP、不查数据库。对博客、企业站这种"内容不常变"的站,效果是质变:响应时间从几百毫秒降到几十毫秒。

插件选一个就行,千万别装两个,缓存插件打架是白屏的常见原因:

  • WP Super Cache:老牌,简单粗暴,适合新手,开箱即用。
  • W3 Total Cache:功能全,配置项多,适合爱折腾的,页面缓存、对象缓存、CDN 能一套配齐。

装好后开"页面缓存",然后自己开隐身窗口打开网站看一眼——正常显示就成功了。注意:开了缓存后改文章、换主题,前台没变化别慌,去插件里"清空缓存"就行。这是新手最常见的"我改了怎么没变化"之谜,答案永远是缓存。

第二层:对象缓存(数据库减负)

页面缓存管"整页",对象缓存管"零件":WordPress 查数据库的结果(如菜单、侧边栏、站点选项、用户信息),存到内存(Redis/Memcached)里,下次直接从内存拿,不查数据库。

VPS 上装 Redis 一行命令的事(以 Ubuntu/Debian 为例):

apt install redis-server php-redis -y
systemctl enable --now redis-server

然后装个对象缓存插件(如 Redis Object Cache),点一下"启用",状态显示"已连接"就成了。

内存小的机器注意:Redis 默认配置会一直吃内存,1G 内存的机器要给 Redis 设上限。改 /etc/redis/redis.conf:

maxmemory 64mb
maxmemory-policy allkeys-lru

64MB 对小站绰绰有余,allkeys-lru 表示内存满了自动淘汰最久没用的 key。别让缓存把内存吃光导致网站崩了——那就本末倒置了。

两层缓存的关系

  • 只开页面缓存:匿名访客飞快,但登录用户、购物车这类动态内容还是慢。
  • 只开对象缓存:每次还是要拼页面,只是数据库轻松了,提升有限。
  • 两个都开:访客看静态页飞快,后台和动态部分数据库也不累——这才是完整体。

小站(日 IP 几千以内)其实页面缓存+图片优化就够了;流量再大或动态内容多,再上对象缓存。按需来,别一上来全套拉满。

三个坑别踩

坑一:缓存和 CDN 叠加。Cloudflare 也缓存的话,插件缓存+CDN 缓存两层叠加,更新内容后要从外到内逐层清(先清 CDN,再清插件缓存),不然你改了半天前台没变化,怀疑人生。记住清理顺序:CDN → 插件,别反。

坑二:别缓存动态页。购物车、结算、会员中心、用户订单页,缓存规则里排除掉——把 A 用户的订单页缓存给所有人看,是灾难。缓存插件里一般有"不缓存的页面"设置,动态路径全加进去。

坑三:先备份再折腾。动缓存配置前备份,配崩了能回滚。缓存插件冲突导致白屏的,九成是装了两个缓存插件,或者缓存插件和主题/其他插件不兼容。出问题先停用所有缓存插件,网站恢复了再一个个排查。

怎么验证提速效果

别凭感觉,用数据说话:改之前用 PageSpeed Insights 或 GTmetrix 测一次记下来,配完缓存再测一次。重点看两个指标:TTFB(首字节时间,缓存命中后应该大幅下降)和 完全加载时间。TTFB 从 800ms 降到 100ms 以内,就是页面缓存在正常工作。

缓存插件横向对比:选哪个

市面上缓存插件不少,小够列个对照表:

插件上手难度功能适合谁
WP Super Cache低页面缓存,简单直接新手,只想开箱即用
W3 Total Cache高页面+对象+CDN 全套爱折腾,想一套配齐
WP Rocket(付费)低页面缓存+优化全家桶愿意付费买省心
LiteSpeed Cache中需 LiteSpeed/OpenLiteSpeed 服务器用 LiteSpeed 环境的站

免费够用党:WP Super Cache + Redis Object Cache 组合,零成本,效果完整。付费省心党:WP Rocket 一套搞定,值那个价。记住:只装一个页面缓存插件,装两个必打架。

预缓存:别让访客当小白鼠

页面缓存有个特点:第一个访问的人负责"生成"缓存,后面的人才享受加速。网站更新后,可以用预缓存(preload)功能,让插件自动爬一遍重要页面,把缓存提前生成好。W3 Total Cache 和 WP Rocket 都有这个功能,更新文章后跑一次,访客永远吃到的是热缓存。

缓存之外:容易被忽略的提速项

缓存是主力,但还有几个"顺手"就能做的:

  1. PHP 版本:PHP 8.x 比 7.4 快 30-50%,换个版本等于免费提速。升之前备份、先在测试环境验证。
  2. 数据库优化:wp_options 表里的过期 transient(临时数据)定期清理,臃肿的数据库是隐形杀手。有专门的清理插件,一键搞定。
  3. 减少 HTTP 请求:插件、字体、统计代码,能少则少。每个请求都是一次往返,移动端弱网下感受最明显。插件数量和速度成反比,这是铁律。
  4. Gzip/Brotli 压缩:Nginx 开 gzip(或 Brotli),文本类资源(HTML/CSS/JS)体积再砍 70%。面板里一般一键开,手动配就几行配置。

这四项加缓存,构成完整的"WordPress 提速五件套"。按顺序做:缓存 → PHP → 数据库 → 请求数 → 压缩,从见效最快的开始。

缓存失效的艺术:什么时候清、清多少

缓存最大的学问不是"怎么开",是"什么时候清":

  • 发新文章/改内容:清对应页面的缓存就行,不用全清。好的缓存插件支持"按文章清",精准打击。
  • 换主题/改模板:全清。模板变了,所有页面都要重新生成。
  • 改了 CSS/JS:文件名带版本号的话不用清(新文件名=新缓存);没带版本号的全清一次。
  • 定期全清:每月一次,当"大扫除",清掉过期没命中的僵尸缓存。

清缓存的粒度,越小越好:能清一页不清全站。全站清一次,所有访客同时回源,服务器瞬间压力拉满——高峰期千万别全清,这是血泪教训。

小够总结

WordPress 提速公式:页面缓存(必须)+ 对象缓存(推荐)+ 图片优化。这三板斧下来,1 核 2G 跑日 IP 几千的博客毫无压力。记住顺序:先缓存优化,再考虑升级配置——很多"慢"都是没开缓存,不是机器不行。升级配置是最后手段,不是第一反应,这就是够用主义。