登录用户不缓存是常规配置
对于会员站、付费内容站和电商站,关闭登录用户的页面缓存是推荐配置。页面缓存插件通常也会明确建议:不要为已登录访客提供文件缓存。
原因在于,匿名用户的缓存文件通常按 URL 共享。例如,所有游客访问 /article-a/ 时,读取的是同一份缓存文件。如果登录会员也读取这份匿名缓存,页面中的身份相关内容就可能不正确,常见风险包括:
- 会员看到游客版页面或登录提示;
- 不同会员看到彼此的账号状态;
- 权限判断失效,导致游客意外看到会员专属页面。
因此,插件检测到 WordPress 登录 Cookie 后,会跳过文件缓存,重新执行 PHP、查询数据库,并按当前用户身份生成页面。登录用户的响应速度会稍慢一些,但权限边界更安全;匿名游客仍然直接读取缓存,访问速度依旧接近静态页面。
会员权限不会被匿名缓存覆盖
这项配置并不会取消会员功能。它只是让登录请求回到动态渲染流程,确保当前用户的权限、会员等级、账号状态和页面内容都经过实时判断。
注册页、登录页等身份相关页面也应该单独禁用缓存。这样可以避免表单状态、登录状态或跳转结果被错误复用。
为什么没有打开“文章更新时清空全部缓存”
页面缓存插件常见一个选项:文章或页面发布、更新时清除全部缓存文件。它确实能解决旧内容问题,但代价是每次更新一篇文章,都让整个站点的缓存同时失效。
这会带来两个问题:
- 与本次更新无关的文章也需要重新生成缓存;
- 更新后的一段时间里,大量匿名访问会重新触发 PHP 和数据库查询。
如果站点文章较多,清空全站缓存会造成没有必要的瞬时负载。因此,会员站更适合按页面关系精准刷新,而不是按一次更新清空所有缓存。
更精准的文章缓存刷新机制
现在采用的机制是:
- 发布或更新文章后,只删除当前文章页面的缓存;
- 同时删除相关分类、标签、文章归档和作者页缓存;
- 等待约 15 秒,让发布流程和缓存文件删除稳定完成;
- 自动请求这些相关 URL,让新内容提前生成缓存;
- 不触碰其他文章、首页和注册页的缓存。
这样既能保证文章更新后游客看到新内容,又能保留全站其他页面的缓存命中率。
可以把它理解为“局部换页”而不是“整站重建”:
| 页面类型 | 文章更新后的处理 |
|---|---|
| 当前文章页 | 删除并重新生成 |
| 相关分类页 | 删除并重新生成 |
| 相关标签页 | 删除并重新生成 |
| 文章归档页 | 删除并重新生成 |
| 作者页 | 删除并重新生成 |
| 其他文章页 | 保留原缓存 |
| 首页、注册页 | 不因单篇文章更新而整体清空 |
线上测试结果
已用一篇实际文章完成线上测试,相关缓存文件能够正常删除并重建。测试前后全站缓存文件数量保持在同一量级,并且是新增了少量关联页面缓存,而不是先清空再重新生成整个站点。
这说明精准刷新已经达到预期:更新内容及时生效,其他页面继续享受文件缓存带来的速度优势。
日常维护建议
如果游客在文章更新后仍然看到旧内容,优先检查当前文章及其关联归档页的缓存是否已经刷新,不要直接清空全站缓存。只有在缓存规则、主题模板或全站配置发生变化时,才有必要考虑全量清理。
最终的配置原则可以概括为:
- 匿名用户使用共享页面缓存;
- 登录用户绕过匿名缓存,保证权限安全;
- 文章更新只刷新受影响的页面;
- 全站缓存尽量保持稳定,避免不必要的重建。
本文章永久链接: WordPress 会员站为什么不缓存登录用户,以及文章更新后的精准刷新

