SuperCacher 是 SiteGround 自带的缓存体系,和 WordPress 缓存插件叠在一起时,最容易出现两种坏结果:页面更新了前台还是旧的,后台、购物车、表单这类动态页面被缓存成静态。先把配法说清楚,再解释为什么会打架。
我们长期维护 30–40 个外贸站,主机散在几家,SiteGround 上的站踩过这类冲突。SuperCacher 本身不复杂,复杂的是它和插件缓存的分工没谈好。
SuperCacher 的三层,各管什么
Static Cache 把页面生成静态副本,源站在高峰期不至于被每个请求打穿。Dynamic Cache 靠 NGINX 处理动态请求,登录状态和购物车这类内容也照顾到。Memcached 把数据库查询结果放进内存,重复查询不必每次回表。
三层都在服务器侧,和 WordPress 里的插件缓存不在同一层。两边都开,等于把同一份页面缓存两遍。多数冲突就是这么来的。
和插件缓存的分工:整页缓存只留一层
用 SiteGround 就优先用 SuperCacher 的 Static Cache,把 WP Rocket、W3 Total Cache 这类插件的整页缓存关掉,只保留它们的压缩、合并和数据库清理功能。
反过来,如果插件缓存已经跑顺,SuperCacher 的 Dynamic Cache 可以留着,Static Cache 视情况关闭。判断标准是哪一个先命中:先命中的那层生效,后一层永远读不到最新内容。
哪些路径必须排除
后台、登录页、购物车、结算页、表单提交地址、带查询参数的页面,都不该进整页缓存。SuperCacher 面板里有一份排除规则,插件侧也有一份,两份要对齐,只配一边等于没配。
排查时先看一个现象:游客看到旧内容,登录管理员看到新内容。差别多半出在「登录用户不缓存」这条规则上。
更新不生效,按这个顺序查
第一步,清插件缓存,再清 SuperCacher,顺序反过来会白做。第二步,确认页面没有被 CDN 再缓存一层,Cloudflare 这类 CDN 有自己的缓存。第三步,看排除规则里有没有误伤目标路径。第四步,用无痕窗口测,避开浏览器本地缓存。
这套顺序能解决大部分「改了没变」。剩下的少数,是对象缓存没清。
Memcached 和对象缓存别重复
Memcached 属于对象缓存。WordPress 里再装一个 Redis 对象缓存插件,两套对象缓存同时生效,可能出现数据不同步。选一套,另一套停用。
数据库查询慢,先看是不是插件在频繁查同一张表。对象缓存能缓解,根子还在代码和索引。
缓存不是性能的全部
缓存解决的是重复请求。首字节时间还要看 PHP 进程、内存和网络。我们在一台 1 核 1GB 机器上排查过 3 个 WordPress 不稳定的问题,根因不是站点数量,是 PHP memory_limit 被设成了 1024M,超过整机内存;改成 256M、PHP 工作进程从 6 调到 4 后恢复。实测单个 PHP 进程占 80–124MB。
同一个站,nginx 加上 fastcgi_cache 段之后,首页 TTFB 从 2.14s 降到 0.067s。缓存做对,收益比换主机直接。Core Web Vitals 的官方门槛是 LCP ≤2.5s、INP ≤200ms、CLS ≤0.1(web.dev 官方说明),缓存主要影响其中 LCP 这一项。
一套可以照抄的配置
SuperCacher Static Cache 开,Dynamic Cache 开,Memcached 开;WordPress 侧关掉整页缓存插件,保留图片压缩和数据库优化;排除规则覆盖后台、登录、购物车、结算、表单和带参数的 URL;CDN 只缓存静态资源,不缓存 HTML。
站上另有 SiteGround 主机适不适合 的取舍分析,速度整体怎么做看 WordPress 速度与 SEO,插件取舍见 插件怎么选,换服务器的流程收在 服务器选择与迁移 里。
先判断你的站是哪种叠加
常见有三种:只用 SuperCacher、只用插件缓存、两边都开。前两种简单,按面板默认走即可。第三种最容易出问题,也最需要按前面的分工去关掉一层。
判断方法很直接:在 SuperCacher 面板看 Static Cache 是否开启,再到插件设置里看页面缓存是否勾选。两个都为开,就属于第三种。
改配置前先做的两件事
第一件,记下当前设置并截图,出问题能回退。第二件,挑一个访问量最低的时间窗口改,缓存配置改错会立刻影响所有访客。
改完用无痕窗口分别测首页、产品页、文章页、联系页四类页面,确认新旧内容都对得上。
缓存配置改完没有把握时,先备份再动。以上整理自天问网络维护自营站和客户站的日常操作,不承诺排名、流量和询盘数。
SuperCacher 与 WordPress 缓存常见问题
SuperCacher 和 WP Rocket 能同时开吗?
可以同时存在,但整页缓存只能留一层。建议用 SuperCacher 的 Static Cache,把 WP Rocket 的页面缓存关掉,只保留它的压缩、合并和数据库清理。两边都开,容易互相读到旧缓存。
为什么登录后看到新内容,游客看到旧内容?
多半是缓存规则把登录状态区分错了。检查「登录用户不缓存」这条排除规则,以及排除列表里有没有漏掉目标路径。
SuperCacher 开了就一定快吗?
不一定。缓存解决重复请求,首字节时间还要看 PHP 进程、内存和网络。我们在一台 1 核 1GB 机器上把 PHP memory_limit 从 1024M 改成 256M、工作进程从 6 调到 4,稳定性才恢复。
改完内容前台不更新,按什么顺序清?
先清插件缓存,再清 SuperCacher,顺序反过来会白做;然后确认 CDN 有没有再缓存一层;最后用无痕窗口测,避开浏览器本地缓存。
Memcached 和 Redis 对象缓存能一起用吗?
不建议。两套对象缓存同时生效可能出现数据不同步。选一套,另一套停用。
