必须先在wordpress后台启用伪静态(设置→固定链接→选“文章名”等非朴素结构),再在cloudflare配置三条有序页面规则:①*yourdomain.com/wp-admin*设为bypass;②*yourdomain.com/*preview=true*设为bypass;③*yourdomain.com/*设为cache everything且ttl一年,最后通过开发者工具查看cf-cache-status: hit验证html缓存生效。

让WordPress等程序生成的伪静态HTML页面被Cloudflare完整缓存,避免访问时仍回源请求原始服务器,必须手动配置页面规则并绕过后台、预览等动态路径。
确认伪静态已启用
登录WordPress后台→设置→固定链接→选择“文章名”或自定义结构(如 /%post_id%.html)→点击“保存更改”。【这一步不执行,后续所有缓存规则都无效】 伪静态未开启时,URL仍是 ?p=123 形式,Cloudflare默认不会缓存带查询参数的页面。
添加三条关键页面规则
进入Cloudflare控制台→左侧菜单点 Page Rules →右上角点 Create Page Rule。
方法一:排除后台与预览路径(必须优先设置)
① 输入 URL pattern:*yourdomain.com/wp-admin* → 设置缓存级别为 Bypass → Save and Deploy。
② 输入 URL pattern:*yourdomain.com/*preview=true* → 同样设为 Bypass → Save and Deploy。
这两条规则必须放在最上方,否则会被全站缓存覆盖,导致无法登录后台或预览新文章。
方法二:全站强制缓存(最后添加)
输入 URL pattern:*yourdomain.com/* → 设置缓存级别为 Cache Everything → Edge Cache TTL 设为 1 year → Save and Deploy。
【此规则必须排在前两条之后,否则Bypass失效】 免费版仅支持3条规则,顺序不可颠倒。
验证HTML是否真被缓存
打开浏览器无痕窗口,访问任意一篇已发布文章(确保URL是 /xxx/ 这类伪静态格式,非 ?p=xxx)。按 F12 打开开发者工具→Network 标签页→刷新页面→点击该HTML请求→查看 Response Headers 中是否有 cf-cache-status: HIT。出现 HIT 表示该HTML已被Cloudflare边缘节点缓存;若为 MISS 或 EXPIRED,说明规则未生效或页面含禁止缓存的响应头。
检查 WordPress 主题或插件是否在header中输出了 Cache-Control: no-cache 或 X-Robots-Tag: noindex,这类响应头会直接覆盖Cloudflare缓存指令。











