把 Hexo 或 Hugo 这样的静态博客部署到 GitHub Pages 或 Cloudflare Pages,已经是当下技术人的标配。静态页面本身没有数据库查询的负担,速度已经很快,但这真的是极限了吗?

当你的博客面临全球不同地区的访问,或者页面包含大量高清配图时,如果不进行深度的 CDN 调优,访问体验依然会大打折扣。今天,结合我自己的建站实战,聊聊如何“榨干” Cloudflare 的免费额度,实现网站的秒级响应。

一、开启 Brotli 压缩(比 Gzip 更凶狠)

很多人知道 Gzip,但 Cloudflare 提供了更高效的 Brotli 压缩算法。对于纯文本的 HTML、CSS 和 JS 文件,Brotli 能比 Gzip 多压缩 15%-20% 的体积。

  • 实战操作:登录 Cloudflare 控制台 -> 侧边栏选择 速度 (Speed) -> 优化 (Optimization) -> 打开 Brotli 开关。
  • 收益:前端静态资源的传输时间瞬间减少五分之一。

二、制定精准的 Cache Rules (缓存规则)

Cloudflare 默认的缓存策略是相对保守的,它通常不会缓存 HTML 文件。为了达到极致的速度,我们可以强制 Cloudflare 在其全球边缘节点缓存我们的所有静态内容。

我们需要在 缓存 (Cache) -> Cache Rules 中创建一条新规则:

  1. 匹配请求:选择 URI Path 包含 /(即全站拦截)。
  2. 边缘缓存 TTL (Edge Cache TTL):对于静态博客,内容变化不频繁,可以激进地设置为 7 天 甚至 1 个月
  3. 浏览器缓存 TTL (Browser Cache TTL):设置为 1 天
    这样,访客哪怕是第一次打开你的网站,也是直接从离他最近的 Cloudflare 节点拉取数据,完全不需要回源。

(注意:开启强缓存后,如果你发布了新文章,记得去控制台点击一下“清除缓存 (Purge Cache)”,否则访客看到的还是旧页面。)

三、Early Hints(早期提示)优化首屏

这是一个非常前沿的 Web 技术。传统浏览器需要先下载 HTML,解析到 <head> 里的 CSS 和字体链接时,才去发起请求。
而开启了 Early Hints 后,Cloudflare 会在服务器还在生成 HTML 时,就提前告诉浏览器:“嘿,你等下会用到这些 CSS 和字体,赶紧先去下载!”

  • 实战操作:在 速度 (Speed) -> 优化 (Optimization) 中,找到并开启 Early Hints。这对于提升 LCP(最大内容渲染时间)这一核心 SEO 指标有奇效。

四、终极避坑:PJAX 与 CDN 的路由冲突

在使用带有 PJAX(无刷新加载)技术的 Hexo 主题时,极易与 Cloudflare 的路由规则发生冲突。因为 PJAX 是局部请求,如果 CDN 强制处理了尾部斜杠(Trailing Slash),会导致前端直接报 404 错误。
解决方案
在主题配置中果断关闭 PJAX(pjax: false),或者在系统配置中将优雅链接(pretty_urls)与服务器路由对齐。对于追求 SEO 和广告加载流畅度的站点,回归纯粹的 HTTP 跳转往往是最稳妥的架构选择。

总结

性能优化是一门没有尽头的玄学,但收益也是最直观的。天下武功,唯快不破,一个能在 1 秒内首屏渲染完毕的博客,不仅能极大地降低用户的跳出率,更能赢得 Google 搜索引擎的青睐。