开了页面缓存之后,登录用户看到的是别人的购物车,评论区也显示成未登录状态。缓存命中的页面里带着用户相关信息。
原因不止一个,得分开看。缓存规则没有排除登录态的相关 Cookie;动态区块被整页缓存,用户信息一起固化;CDN 与插件缓存叠加,清一次不生效。
上来先确认响应头里的缓存标识
curl -sI https://www.example.com/ | grep -i 'x-cache'
然后排除登录与购物车的缓存
if (is_user_logged_in()) { nocache_headers(); }
等前面都确认过,再清空插件与 CDN 两层缓存
wp cache flush
改之前先确认了最近有没有人动过配置,避免白查一遍。
这次没动代码,只在配置和运行环境上找原因。
别只看报错消失,验证要多做一步。登录用户不再看到缓存页面,退出后公共页面仍能正常命中缓存。
提醒一点。缓存问题常被当成 SEO 问题排查,实际现象是蜘蛛抓到带用户信息的页面,先看响应头比改标签更快定位。报错文案容易误导,真正的原因往往在相邻那一层的日志里。