跳到主要内容

浏览器、CDN、服务端三层缓存,只配一层等于没配

静态资源该缓存一年,HTML 只该缓存五分钟。我们见过把两层配反的站,用户每次访问都在重新下载。这篇写三层各配什么、怎么配错。

技术SEO 元析智能

2026 年 6 月我们接手一个站,首页加载 4.2 秒,查下来是缓存配反了:HTML 缓存一年,JS 和 CSS 缓存五分钟。用户每次访问都在重新下载样式和脚本,而首页本身永远是他一年前看到的版本。

三层缓存各管什么

浏览器缓存管单个用户,决定他第二次访问要不要重新下载。

CDN 缓存管一个区域的所有用户,决定请求要不要回到源站。

服务端缓存管数据,决定每次请求要不要查数据库、拼页面。

三层都配好,一个老用户访问首页可以只发一次 HTML 请求,其余全命中。

浏览器缓存怎么配

带内容哈希的静态资源,缓存一年,加 immutable。文件名变了 URL 就变了,不用担心更新问题。

HTML 不缓存或者只缓存几分钟。它是入口,缓存久了用户看不到新内容。

字体和图片可以长缓存,但要确认 URL 带版本或者哈希。

CDN 缓存怎么配

关键是缓存键。默认按 URL 缓存,如果 URL 里带了没意义的参数,缓存会被打散。

动态页面要么不缓存,要么用短时间加回源校验。我们一般给 HTML 设 5 分钟,给接口设不缓存。

还有一点,回源要带压缩。很多站 CDN 到源站这段没开 gzip,白白多传几倍数据。

服务端缓存怎么配

页面级缓存最有效,整页存起来,命中直接返回。

对象缓存其次,把数据库查询结果存内存。

数据变了要能主动清缓存,否则内容更新了用户还看到旧的。我们通常用版本号做键,发布时改版本号,旧缓存自然失效。

最常见的三种配错

第一种,就是开头说的两层配反。判断方法很简单,看响应头的 Cache-Control,HTML 和静态资源必须不一样。

第二种,静态资源文件名没哈希却设了长缓存。发版之后用户还跑旧代码,出了问题很难查。

第三种,CDN 缓存了带用户信息的页面。这个更危险,A 用户可能看到 B 用户的数据。

怎么验证配对了

用 curl 看响应头,重点看 cache-control、etag、age、x-cache 四个字段。

age 大于 0 说明命中了 CDN,x-cache 显示 HIT 或 MISS。连续请求同一个静态资源两次,第二次应该全是 HIT。

再打开 DevTools 的 Network 面板,看 Size 列有没有 from cache。这一步最直观。

一个态度

缓存是性价比最高的性能优化。改配置不写代码,效果立竿见影。

但它也是最容易出事故的地方。每次改缓存策略,尤其是 HTML 和带用户信息的页面,一定要先在测试环境验证,别直接调到生产。

标签:缓存CDN页面体验
元

元析智能

为软件公司做 SEO 和 GEO 优化

Start with a diagnosis

聊聊你的软件产品

不管你现在是 SaaS、开发者工具还是工程设计软件,只要你想让目标客户搜得到你,我们可以聊。第一次沟通不收费,会给你一份当前的 SEO 诊断,你能看出问题在哪。