静态博客架构对比
想搭一个免费、快速、好看的个人技术博客?WordPress 太重,Halo 需要服务器维护,那剩下的选择是什么?这篇文章从 9 个主流方案中筛选出 3 个,帮你找到最适合的那个。
为什么选静态博客
你可能听过 WordPress、Typecho、Halo 这些"动态博客"——它们每次有读者访问你的文章,服务器就要实时查询数据库、渲染页面,然后返回 HTML。这意味着你需要一台一直运行的服务器、一个数据库、以及持续的运维工作。
静态博客完全不同。你在本地用 Markdown 写好文章,通过一个工具一次性把所有文章转换成 HTML 文件,然后把文件扔到 CDN 上。读者访问时,CDN 直接返回现成的 HTML——没有数据库查询、没有服务端渲染、没有服务器要维护。
这种方式的好处是显而易见的:
- 快:访问时直接返回静态文件,页面加载速度远超动态站点
- 安全:没有数据库、没有服务端逻辑,黑客几乎无从攻击
- 免费:HTML 文件可以托管到 Cloudflare Pages、Vercel 等平台的免费额度上,零服务器成本
- 可控:所有文章就是 Markdown 文件,天然适合 Git 管理,拥有完整的修改历史
当然也有局限:每次写完文章需要重新"构建"并部署,不能像动态博客那样后台点一下就发布;也没有用户登录、在线支付这类需要服务端的功能。但对于个人技术博客来说,这些完全不是问题。
完成"Markdown → HTML"转换的工具叫做 SSG(Static Site Generator,静态站点生成器),接下来要聊的就是选哪一个。
从 9 个候选中选出 3 个
当前主流的 SSG 有不少,我把它们列出来并说明了筛选逻辑:
| 框架 | 语言 | GitHub Stars | 状态 | 结论 |
|---|---|---|---|---|
| Hugo | Go | ~87,500 | 活跃 | ✅ 入选 |
| Astro | Node.js / TS | ~50,000+ | 快速增长 | ✅ 入选 |
| Hexo | Node.js | ~39,000 | 中文社区活跃 | ✅ 入选 |
| Jekyll | Ruby | ~49,000 | 式微 | ❌ 太老太慢,社区衰落 |
| VuePress | Node.js / Vue | ~22,000 | 停滞 | ❌ v2 五年未发正式版 |
| VitePress | Node.js / Vue | ~13,000 | 活跃 | ❌ 专注文档站,不适合博客 |
| Eleventy | Node.js | ~18,000 | 小众 | ❌ 社区太小,中文资源匮乏 |
| Pelican | Python | ~12,000 | 小众 | ❌ 生态远不如 Node.js / Go |
| Zola | Rust | ~15,000 | 小众 | ❌ 与 Hugo 定位重合但生态远不及 |
入选理由:Hugo 构建速度碾压级且零依赖;Astro 是当前增长最快、架构最现代的 SSG;Hexo 中文博客圈占有率最高、主题开箱即用。
以下所有内容只对比这三个框架。
先看结论
如果你不想看详细对比,这里是我的推荐:
| 你的情况 | 推荐 | 一句话理由 |
|---|---|---|
| 追求极致简单稳定,不想折腾 | Hugo | 下载一个文件就能用,千篇文章不到 1 秒构建完,主题成熟,零运维 |
| 喜欢现代前端开发体验,未来可能扩展 | Astro | 开发体验最好,唯一支持在文章中嵌入交互组件,但需要 Node.js 环境 |
| 中文博客新手,想要最省事 | Hexo | 中文主题最多(Butterfly 主题功能全面),中文教程最多,遇到问题最好搜到答案 |
核心特性对比
构建速度
构建速度指的是"把所有 Markdown 文件转换成 HTML"需要多长时间。这直接影响你每次写完文章后等待部署的时间。
| Hugo | Astro | Hexo | |
|---|---|---|---|
| 百篇文章 | < 0.5 秒 | 1-3 秒 | 3-10 秒 |
| 千篇文章 | < 1 秒 | 2-10 秒 | 10-30 秒 |
| 依赖环境 | 无(单二进制) | Node.js 18+ | Node.js 18+ |
| 离线可用 | ✅ | ❌ | ❌ |
Hugo 之所以这么快,是因为它用 Go 语言编写,编译成一个独立的可执行文件——下载下来双击就能跑,不需要安装 Node.js、Python、Ruby 任何运行时环境。Astro 和 Hexo 都需要 Node.js 环境,首次使用还要 npm install 下载依赖(通常 100-400 MB)。
对大多数博客(几百篇文章以内)来说,三个框架的构建速度都可以接受。差距在文章数量上千时才会明显拉大。
渲染能力
这里涉及到几个概念,先简单解释:
- SSG(静态生成):构建时生成纯 HTML,这是三个框架都支持的基本模式
- SSR(服务端渲染):每次访问时由服务器实时生成页面——只有 Astro 支持
- Islands 架构:Astro 独有的技术,页面默认是纯静态 HTML(不加载任何 JavaScript),只有需要交互的部分(如评论区)才会加载 JS
| 能力 | Hugo | Astro | Hexo |
|---|---|---|---|
| 纯静态生成 | ✅ | ✅ | ✅ |
| 服务端渲染(SSR) | ❌ | ✅ | ❌ |
| 在文章中嵌入交互组件 | ❌ | ✅ | ❌ |
对博客的实际影响:如果你只是写文章、贴代码、放图片,三个框架没有区别。只有当你想在文章里嵌入交互式图表、可运行的代码沙盒这类东西时,Astro 才有实质优势。
Markdown 与内容支持
| 能力 | Hugo | Astro | Hexo |
|---|---|---|---|
| 代码高亮 | ✅ 内置 | ✅ 内置 | ✅ 内置 |
| 数学公式 | ✅ 内置 | ✅ 内置 | ✅ 插件 |
| 图片处理(缩放/裁剪/滤镜) | ✅ 内置 | ✅ 内置 | ❌ 需插件 |
| RSS | ✅ 内置 | ✅ 内置 | ✅ 插件 |
| 多语言 | ✅ 原生 | ✅ | ✅ 插件 |
Hugo 有一个独有优势:内置完整的图片处理管道。你可以直接在文章里指定图片的缩放尺寸、裁剪方式,构建时自动生成优化后的图片,不需要任何额外工具。Astro 也内置了图片优化,但能力不如 Hugo 全面。Hexo 则需要依赖第三方插件,而且插件质量参差不齐。
扩展能力
| 能力 | Hugo | Astro | Hexo |
|---|---|---|---|
| 扩展方式 | Shortcodes + 自定义模板 | 官方集成 + 组件 | NPM 插件 |
| 嵌入 React / Vue / Svelte 组件 | ❌ | ✅ | ❌ |
| TypeScript 支持 | ❌ | ✅ 原生 | ❌ |
Astro 的扩展能力是三个框架中最强的。它允许你在博客中使用 React、Vue、Svelte 等前端框架的组件,也原生支持 TypeScript。这意味着如果你有前端开发背景,可以非常灵活地定制博客。
博客功能对比
先说结论:三个框架在核心博客功能上几乎没有差别。 文章排版、标签分类、代码高亮、数学公式、暗色模式、SEO、RSS、Sitemap、分页——这些全都是标配。
差异只出现在以下几个地方:
| 功能 | Hugo | Astro | Hexo |
|---|---|---|---|
| 全文搜索 | 需配置 | 需配置 | 需插件 |
| 图片灯箱 | 需引入 JS | 需引入 JS | 需插件 |
| 自动图片优化 | ✅ 内置 | ✅ 内置 | ❌ |
| 多语言(i18n) | ✅ 原生 | ✅ | 需插件 |
也就是说,如果你不需要"文章中嵌入交互组件"和"自动图片优化"这两个功能,选哪个都一样。
主题生态
博客的外观由主题决定,所以主题生态的丰富程度直接影响你的使用体验。
| 维度 | Hugo | Astro | Hexo |
|---|---|---|---|
| 主题数量 | 400+ | 100+ | 300+ |
| 中文主题 | 丰富 | 中等 | 非常丰富 |
| 主题更新频率 | 高 | 高 | 中 |
| 推荐主题 | PaperMod / Stack / LoveIt | Astro Blog | Butterfly / Fluid / NexT |
如果你看重中文主题:Hexo > Hugo > Astro。Hexo 的 Butterfly 主题是目前中文博客圈最流行的主题之一,暗色模式、标签分类、全文搜索、图片灯箱等功能全部内置,几乎不需要额外配置。
如果你看重主题质量和长期维护:Hugo 的 PaperMod、Stack 等主题经过多年打磨,更新频繁,设计简洁专业。Astro 的主题数量虽然少,但官方主题质量高,且与 Tailwind CSS 集成好。
定制难度:Hugo 使用 Go Template 模板语言,语法独特,学习曲线最陡。Astro 使用类似 JSX 的语法,有前端基础的话上手很快。Hexo 使用 EJS 等模板语言,和 HTML 很像,门槛最低。
部署方案
三个框架构建后都生成纯静态文件,所以部署方式完全相同——把文件上传到任何一个支持静态托管的平台即可。
平台推荐
| 平台 | 费用 | 带宽 | 国内访问 | 推荐度 |
|---|---|---|---|---|
| Cloudflare Pages | 免费 | 无限 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Vercel | 免费(个人) | 100 GB/月 | ⭐⭐ | ⭐⭐⭐ |
| GitHub Pages | 免费 | 100 GB/月 | ⭐⭐⭐ | ⭐⭐⭐ |
| Netlify | 免费 | 100 GB/月 | ⭐⭐⭐ | ⭐⭐⭐ |
我的选择:Cloudflare Pages。理由很简单——无限带宽。其他平台免费额度只有 100 GB/月,一旦文章被搜索引擎收录或被分享到社交媒体带来流量峰值,就可能产生费用。Cloudflare Pages 完全没有这个顾虑。而且在国内访问稳定性上,Cloudflare 也明显优于 Vercel。
注意:所有平台的默认域名(
*.pages.dev、*.vercel.app等)在国内访问都不稳定,必须绑定自定义域名。
框架详细评价
Hugo:极简主义的最佳选择
Hugo 是我综合推荐第一的框架。它的核心优势可以概括为一个字:快。
作为 Go 语言编写的单二进制文件,Hugo 不需要安装 Node.js、不需要 npm install、不需要管理 node_modules——下载一个可执行文件就能用。千篇文章亚秒级构建,无论你推送多少次代码触发自动构建,构建时间都可以忽略不计。
主题生态成熟且质量高。PaperMod、Stack、LoveIt 等主题经过多年打磨,功能完善、更新频繁。内置的图片处理管道(缩放、裁剪、旋转、滤镜)是三个框架中的独有优势。多语言支持也是原生内置。
它的短板也很明确:Go Template 模板语法独特,对没有 Go 经验的开发者不太友好;不支持嵌入交互式组件,也不能做服务端渲染。但如果你只是写技术博客,这些根本不是问题。
一句话:下载一个文件,选一个主题,开始写文章。没有比这更简单的了。
Astro:面向未来的选择
Astro 是当前增长最快的 SSG 框架。它的核心卖点是 Islands 架构——简单说就是"页面默认不加载任何 JavaScript,只有需要交互的部分才加载"。这对博客意味着:文章页加载极快(纯 HTML),只有评论区、搜索框等组件才会按需加载 JS。
它是三个框架中唯一支持 SSR(服务端渲染)的。虽然博客一般不需要 SSR,但如果你未来想在博客中加入动态功能(如实时数据展示),Astro 可以无缝切换。
开发体验也是三个框架中最好的。基于 Vite 的开发服务器支持即时热更新(改了代码立刻看到效果),构建报错信息清晰易懂。还原生支持 TypeScript 和 MDX(MDX 允许你在 Markdown 文章中直接使用 React/Vue 组件,实现交互式内容)。
需要注意的风险:2026 年 1 月 Astro 被 Cloudflare 收购,长期发展方向受商业决策影响。而且中文主题生态相对薄弱,不如 Hexo 丰富。
一句话:如果你有前端开发背景,想要最好的开发体验和最大的扩展空间,选 Astro。
Hexo:中文博客新手的最省事选择
Hexo 是中文博客圈占有率最高的 SSG。它的最大优势就是中文生态极其丰富。
Butterfly 主题是它的王牌——暗色模式、标签分类、全文搜索、代码高亮、数学公式、图片灯箱、阅读时长统计……这些功能全部内置,安装主题后几乎不需要额外配置。中文文档完善,遇到问题在百度或 Google 上很容易找到解决方案。
Hexo 的插件生态覆盖面也很广——搜索、评论、SEO、字数统计等都有现成插件,对不想折腾配置的博客作者来说非常友好。
短板是构建速度最慢(百篇文章 3-10 秒),不过对大多数博客来说影响不大。另外插件质量参差不齐,部分已停止维护,国际社区影响力在下降。
一句话:如果你是中文博客新手,想要最快搭出一个好看的博客,选 Hexo + Butterfly。
总结
| 场景 | 选 Hugo | 选 Astro | 选 Hexo |
|---|---|---|---|
| 追求极简、零依赖 | ✅ | ||
| 构建速度最重要 | ✅ | ||
| 中文主题生态最重要 | ✅ | ||
| 新手入门最省事 | ✅ | ||
| 需要交互式组件 | ✅ | ||
| 有前端开发背景 | ✅ | ||
| 担心平台锁定风险 | ✅ |
没有"最好的"框架,只有"最适合你"的框架。如果你仍然拿不定主意,我建议先试 Hugo——它是风险最低、最稳定、最不需要操心的选择。