SiteGround SuperCacher 和 WordPress 缓存怎么配才不打架

无评论

Author

天问外贸独立站团队

页面改了,前台还是旧内容,或者购物车、表单开始出错?先查缓存有没有叠在一起。SuperCacher 是 SiteGround 自带的缓存体系,和 WordPress 缓存插件分工不清,就容易缓存住旧页面,甚至把动态内容当静态内容。下面先讲怎么配,再解释冲突原因。

我们长期维护多个外贸站,用过几家主机,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 对象缓存能一起用吗?

不建议。两套对象缓存同时生效可能出现数据不同步。选一套,另一套停用。

相关阅读

发表评论