整理一套适合个人博客和轻量网站的 Cloudflare 加速思路,包括 HTTP/3、Brotli、缓存策略、静态资源和 Workers API优化
Cloudflare 网站访问速度优化:我实际做了哪些设置
网站上线以后,第一件真正影响使用体验的事情,其实不是功能,而是速度。
尤其是个人博客、导航站这类页面,如果首屏需要等几秒,用户很容易直接关掉。Zivi Blog 目前部署在 Cloudflare Workers 上,所以这次我把自己实际使用的一些加速设置整理下来。
1. 先减少请求数量
很多人优化网站时第一反应是“换更快的服务器”,但对于轻量博客来说,减少请求往往更有效。
一个页面如果需要加载:
index.html
style.css
app.js
logo.svg
icon-1.svg
icon-2.svg
cover.jpg
/api/posts
每多一次请求,就多一次网络往返。
所以我会优先做:
- 合并零碎 CSS
- 合并零碎 JavaScript
- 小图标尽量用 SVG
- 不必要的第三方字体直接取消
- 首页只加载首屏真正需要的资源
2. 开启 HTTP/3
HTTP/3 对移动网络和存在一定丢包的线路会更友好。
Cloudflare 控制台里可以直接打开 HTTP/3。对于使用手机访问的网站,这项设置基本没有理由关闭。
3. 开启 Brotli
HTML、CSS、JavaScript 都是非常适合压缩的文本资源。
Brotli 能显著减少传输体积,尤其是 CSS 和 JS。
对于小型网站来说,文件本来就不大,但所有优化叠加起来,首屏体验依然会有明显改善。
4. 静态资源长期缓存
我会把带版本号的静态资源做长期缓存,例如:
zivi-v3.1.css
zivi-app-v3.1.js
logo-v3.svg
这类文件一旦内容改变,就直接换版本号,因此浏览器可以大胆缓存。
推荐思路:
CSS / JS / SVG / PNG
Cache-Control: public, max-age=31536000, immutable
这样用户第二次打开网站时,很多资源都不需要重新下载。
5. HTML 不要缓存太久
HTML 和文章页面可能会变化,所以不适合像 CSS 一样缓存一年。
我的思路是:
HTML:几十秒到几分钟
公开文章 API:1~5 分钟
静态资源:1 年
后台接口:不缓存
这样既能提速,又不会导致内容长时间不更新。
6. Workers API 也要缓存
如果博客首页每次打开都要读取 KV,再生成文章列表,其实也可以缓存一段时间。
例如首页最新文章接口:
/api/posts
完全可以缓存 60 秒。
这样一分钟内重复访问时,直接使用边缘缓存,不必每次都重新读取数据。
7. 图片一定要控制尺寸
很多网站慢,并不是服务器慢,而是一张封面图就有几 MB。
博客封面建议:
- 首页缩略图控制在合理尺寸
- 不上传超大原图
- 优先 WebP / AVIF
- 手机端不要加载桌面超宽图片
文章封面如果显示宽度只有 800px,就没必要上传 5000px 的照片。
8. 少用外部资源
如果 CSS 在自己的站点,图标在另一个 CDN,字体又在第三个服务,每打开一次页面都要建立多个连接。
所以 Zivi Blog 尽量把:
- CSS
- JS
- SVG
- 默认封面
- 图标
放在自己项目里。
这样加载路径更可控。
9. 不要盲目打开所有优化开关
Cloudflare 有很多功能,但不是所有功能都适合每个网站。
例如某些自动修改 JavaScript 加载顺序的功能,虽然理论上能加速,却可能影响后台逻辑。
我的原则是:
能明确知道作用的功能再开。
而不是看到“加速”两个字就全部打开。
10. 最后的优化顺序
如果让我重新做一次,我会按照这个顺序:
- 减少请求数量
- 压缩静态资源
- 设置浏览器缓存
- 缓存公开 API
- 优化图片
- 开启 HTTP/3
- 检查第三方资源
- 再考虑更复杂的性能方案
写在最后
网站性能优化不是某一个开关决定的。
真正有效的是把很多小问题一点一点处理掉。
对 Zivi Blog 这种轻量网站来说,我更希望它做到:
页面简单、请求少、资源小、缓存合理。
这往往比堆很多复杂功能更有效。