VP导航 VP导航
首页 提交网址

资讯文章 资讯 · NEWS

CDN 缓存时间怎么定:max-age、s-maxage 和 stale-while-revalidate 对收录的影响

2026-10-23 约 1,750 字 预计阅读 4 分钟 yiyunkj

CDN 缓存时间怎么定:max-age、s-maxage 和 stale-while-revalidate 对收录的影响 C

新条目上线三天还没被收录,多数人的第一反应是「蜘蛛没来」。但日志一看,蜘蛛来了,拿到的是 CDN 上的旧副本,页面内容还是上周的。这种事在目录站上特别容易发生,因为列表页改动的频率远高于文章站,而缓存配一次就没人再动。

CDN 缓存指令与收录新鲜度关系示意图

图片来源:网络,版权归原作者所有,侵权请联系删除

三个指令分别管谁

max-age 是最常用的那个,它同时约束浏览器缓存和共享缓存(CDN、代理)。s-maxage 只约束共享缓存,一旦出现,CDN 就以它为准,忽略 max-age。这个差别很关键:你可以让浏览器一分钟校验一次,同时让 CDN 缓存一天,两边互不干扰。

stale-while-revalidate(缩写 SWR)来自 RFC 5861,是 Nottingham 在 2010 年 5 月发的一份 informational 文档,定义了 stale-while-revalidate 和 stale-if-error 两个扩展。前者的意思是:过期之后的一段时间内,缓存仍然可以把旧副本直接返回给请求方,同时在后台去源站取新的。后者是源站返回 500、502、503、504 这类错误时,允许继续用旧副本顶上。

目录站各类页面的建议值

页面/资源建议 Cache-Control理由
首页max-age=60, s-maxage=600首页变动频繁,CDN 十分钟足够
分类页max-age=300, s-maxage=3600一小时内的新旧差别可接受
条目详情页max-age=600, s-maxage=86400内容稳定,可以放长一点
带 hash 的 JS/CSSmax-age=31536000, immutable文件名变了就是新资源,永久缓存
sitemap.xml / robots.txtmax-age=3600别让 CDN 默认策略把它缓存成一天以上
sw.jsno-cache必须每次校验,否则更新推不下去

这张表不是标准答案,是起点。你可以按自己站的实际改动频率往上调或往下调,但先把「不同页面用不同值」这件事立起来,比给全站配一个统一值强太多。

过期不等于立刻被重新抓取

SWR 有个容易被忽略的性质:后台校验只有在过期后有请求进来时才会触发。文档里举的例子是 max-age=600, stale-while-revalidate=30,含义是前 600 秒直接用缓存,接下来的 30 秒内先把旧的给出去、后台悄悄取新的,30 秒过去还没有请求经过,那这份缓存就真成旧的了,下一个请求会阻塞等待回源。

对目录站来说,这意味着冷门分类页可能一直停留在旧版本。首屏热门页每秒都有人访问,永远是最新的;长尾分类页一天没几个人来,SWR 窗口过了也没触发校验,蜘蛛来拿到的还是几天前的列表。你以为问题在收录,其实问题在缓存刷新时机。

真正的解法是主动清除

靠过期时间等它自己更新,本质上是在赌流量。更稳的做法是给缓存打标签,内容变了就按标签清。Cloudflare 叫 Cache-Tag,Fastly 叫 Surrogate-Key,各家名字不同,思路一样:响应头里带上这个条目相关的标签,比如 Cache-Tag: listing-3821, cate-design,条目下架或者分类调整时,一次请求把带这个标签的所有缓存对象清掉,不用去数它到底落在哪些 URL 上。

清完之后一定要验。用 curl -sI 看响应头,Cloudflare 看 cf-cache-status 是不是 MISS、age 是不是回到 0,Fastly 看 x-cache。见过最典型的翻车是:清除请求发出去了,状态显示成功,一个小时后旧版本又回来了,因为源站自己还在吐旧内容。CDN 只是复制了源站的东西,源站没改,清多少次都没用。

两个必须记住的顺序

第一,改内容之前别急着清缓存。先把源站改好、确认源站返回的是新版本,再去清 CDN,顺序反了等于白干一遍。

第二,涉及下架的页面更要小心。如果某个条目页被 CDN 缓存成了 200,然后你把源站改成了 410,CDN 上那份 200 还会继续服务一段时间。这种涉及合规的下架,清除缓存要和改状态码同步做,最好清完立刻用不同地区的节点验证一次。

另外提醒一句:别用 Vary: User-Agent 去给爬虫和用户返回不同内容。一来它会把缓存切成很多份,命中率断崖下降;二来这种做法本身就踩在伪装内容的边缘上。真要区分,多用 CDN 的缓存键配置,少用 Vary。

本文标签 CDN缓存策略 Cache-Control stale-while-revalidate
← 上一篇 把目录站装进手机桌面:PWA、service wor 下一篇 → 结构化数据报错怎么排:三个验证工具各查什么,目录站的

— 本文完 —

提交网址

发现好站,欢迎自荐收录

站内搜索

站点统计

  • 今日审核0
  • 已收录站点3744
  • 正常访问3736
  • 失联站点8
  • 累计访问83

网站分类

  • AI工具 0
    AI对话0 AI绘画0 AI写作0 AI编程0 AI音视频0 AI办公效率0
  • 开发编程 0
    前端开发0 后端开发0 移动开发0 开源与代码托管0 数据库0 开发文档与教程0
  • 设计素材 0
    UI设计0 图标素材0 免费图库0 字体下载0 配色工具0 设计模板0
  • 站长工具 0
    网站统计0 SEO工具0 域名与主机0 收录提交0 建站程序0 运维监控0
  • 学习教育 0
    编程教程0 语言学习0 职业技能0 公开课与慕课0 考试题库0 中小学教育0
  • 生活服务 0
    交通出行0 外卖点餐0 房产租房0 医疗健康0 政务办事0 快递物流0
  • 影音娱乐 0
    影视观看0 音乐音频0 游戏资源0 短视频直播0 小说阅读0
  • 电商购物 0
    综合商城0 比价工具0 导购返利0 二手交易0 团购优惠0
  • 综合其他 1
    实用工具0 资源合集0 小众站点0 个人博客0 论坛社区0
  • 新闻资讯 0
    科技资讯8 财经媒体1 行业动态0 社会热点0 综合门户0
  • 资讯文章 150

最新收录

  • Kimi
  • 通义千问
  • 车机屋-专业车机系统研究平台,海量正
  • 阿里巴巴矢量图标库
  • DeepSeek
  • 39健康网
  • 韵达快递
  • 飞猪

浏览排行

  1. 满分作文网 6
  2. Let's Enhance 3
  3. 淘菜菜 3
  4. MasterClass 3
  5. TypeScript 中文网 3
  6. Zhengziying 3
  7. 得意生活 3
  8. 镇江网友之家 3

联系我们

bQ:12345678

电话:400-8888-888

邮箱:admin@example.com

时间:09:00-21:00

友情链接

车机屋·焊锡条·探兔AI导航·静电测试仪·大学生联盟

关于我们|广告合作|隐私条款|网站地图

原ICP备00000000号-1,@2026

由 Z-BlogPHP 驱动