| 工具 | 语言 | 构建速度 (5000页) | 学习曲线 | 交互能力 | 最适合 |
|---|---|---|---|---|---|
| Hugo | Go | ~15秒 | 中等(Go Template) | 纯静态 | 内容型网站,页面数量大 |
| Astro | JS/TS | ~45秒 | 低(类JSX语法) | 岛屿架构,按需加载JS | 内容为主+少量交互的网站 |
| Next.js | JS/TS (React) | ~2分40秒 | 中高(需React基础) | 全栈React,SSR/SSG/ISR | 需要复杂交互的网站和应用 |
| 11ty (Eleventy) | JS (Node.js) | ~30秒 | 低(模板语言任选) | 纯静态,可嵌入JS | 追求简单和灵活性的开发者 |
| Jekyll | Ruby | ~3分钟 | 低(Liquid模板) | 纯静态 | GitHub Pages原生支持 |
| Hexo | JS (Node.js) | ~1分30秒 | 低(EJS/Pug模板) | 纯静态 | 中文生态最好的博客框架 |
| VitePress | JS/TS (Vue) | ~25秒 | 低(Markdown驱动) | 可在MD中嵌入Vue组件 | 文档网站,技术文档 |
一、Hugo:极致的构建速度,但模板语法劝退了一部分人
Hugo是Go语言写的,单二进制文件,不依赖Node.js、Ruby、Python任何运行时。这带来了两个核心优势:安装只需要下载一个文件,构建速度是所有SSG里最快的。Hugo快在哪
5000个页面的博客,Hugo 15秒构建完毕。同等规模的Next.js需要2分40秒,Jekyll需要3分钟以上。这不是"快一点",是"快一个数量级"。原因在于Go语言的原生并发——Hugo构建时把所有CPU核心全部吃满,每个页面独立渲染,互不阻塞。
这种速度在开发体验上意味着什么?你改了模板文件,Hugo的dev server在50毫秒内完成热重载。你写了一篇新文章,保存后页面立即可见。没有"等编译"这个动作,写作体验和WordPress几乎一样。
Hugo适合内容规模大(几百到几万页)、更新频繁、对页面交互要求不高的网站:博客、文档站、新闻资讯站、程序化SEO着陆页。不适合需要复杂前端交互的场景(实时数据看板、用户登录、购物车),因为Hugo生成的是纯HTML,没有服务端运行时。
Hugo的短板
模板语法用的是Go Template,跟前端开发者熟悉的JSX/Vue模板语法完全不同。写一个条件判断是 {{ if .Params.featured }} 而不是 v-if,写循环是 {{ range .Pages }} 而不是 v-for。如果团队里没有人会Go Template,学习曲线确实存在。另外Hugo的插件生态不如Node.js生态丰富——你想用某个npm包来处理图片或做其他处理,Hugo做不到,需要外部脚本辅助。
二、Astro:2024-2026年增长最快的SSG,"岛屿架构"是核心卖点
Astro的设计哲学是"默认输出零JavaScript"。你写的页面代码里有React组件、Vue组件、Svelte组件,但Astro在构建时把这些组件的交互逻辑剥离,只输出纯HTML——除非你明确标记某个组件需要交互(用client:load指令),这时Astro才会加载那部分的JS。"岛屿架构"解决了什么问题
传统做法是:页面大部分内容是静态的(文章正文、标题、导航栏),只有一个小角落需要交互(评论区、搜索框、点赞按钮)。但用React/Vue写的话,整个页面都要打包成JS bundle,静态内容也被裹在JS里,白白浪费了加载时间和带宽。
Astro的做法是:静态内容直接输出HTML(零JS),交互组件像"岛屿"一样嵌入在静态内容的"海洋"里。比如你的博客文章99%是静态文本,只有底部的点赞按钮需要一个React组件,Astro就只给这个按钮加载React——正文部分不需要任何JS。
这种架构下,一个Astro博客首页的JS体积可以控制在5KB以内,而同样内容的Next.js博客首页可能有80-120KB的JS。在移动端弱网环境下,这个差距就是"3秒打开"和"8秒还在转圈"的区别。
Astro适合谁
内容为主、交互为辅的网站:博客、企业官网、作品集、营销着陆页、文档站。如果你需要"大部分页面是静态内容,只有少数地方需要一点交互(表单、搜索、轮播图、暗色模式切换)",Astro是目前最优解。它的学习曲线比Hugo低(语法接近JSX),比Next.js简单(不需要理解SSR/SSG/ISR的区别)。生态方面,Astro支持直接引入React/Vue/Svelte组件,已有的UI组件库可以无缝复用。
三、Next.js:不是纯SSG,但静态导出能力极强
Next.js严格来说不是一个"纯静态网站生成器",它是一个React全栈框架,同时支持SSG(静态生成)、SSR(服务端渲染)、ISR(增量静态再生)。但对于需要"静态网站+复杂交互"的场景,Next.js的SSG模式(next export或output: 'export')是目前最好的方案。Next.js的独特优势
· React生态全覆盖:任何React库(状态管理、UI组件、图表、动画)都能直接用。Hugo和Jekyll做不到这一点。

· ISR(增量静态再生):大部分页面是静态HTML,但可以设置某些页面每60秒自动在服务端重新生成一次。比如你的产品列表页,每天加一个新产品,不需要重新构建整个网站,ISR自动更新那一页。
· 图片优化:next/image自动做WebP转换、响应式尺寸、懒加载、模糊占位图。Hugo和Astro需要手动处理图片。
· API Routes:可以在同一个项目里写后端API(表单提交、数据库查询),不需要单独开一个后端服务。
代价是构建速度慢(5000页需要2-3分钟),部署需要Node.js运行时(如果用ISR不能用纯静态托管),学习曲线高(需要理解React和Next.js的一整套概念)。

四、其他四个值得了解的SSG
11ty (Eleventy)——最灵活,模板语言任选
11ty的设计理念是"不强制你使用任何特定的模板语言"。你可以用Nunjucks、Liquid、Handlebars、EJS、Pug、甚至是纯JavaScript来写模板。构建速度快(5000页约30秒),配置极简。适合喜欢"工具不替我做决定"的开发者。缺点是没有官方主题市场,主题选择少,对非技术人员不友好。
Jekyll——GitHub Pages原生支持,但已经显出老态
Jekyll最大的优势是GitHub Pages原生支持——你把Markdown推到GitHub,GitHub自动用Jekyll构建并部署。不需要任何CI配置。但Jekyll基于Ruby,安装需要Ruby环境(Windows上尤其痛苦),构建速度在页面数超过500后明显变慢,插件生态也不如JS生态活跃。2026年除非你已经在用GitHub Pages且不想折腾迁移,否则不推荐新项目选Jekyll。
Hexo——中文生态最好的博客框架
Hexo在中文开发者社区有非常活跃的主题和插件生态。如果你要做一个中文博客,Hexo的Next主题(不是Next.js,是Hexo的Next主题)几乎是中文技术博客的标配。基于Node.js,安装简单,一条命令hexo generate生成静态文件。构建速度中等(1000篇文章约1分30秒),对小博客完全够用。
VitePress——文档网站的首选
VitePress是Vue团队基于Vite构建的文档站生成器。如果你需要给项目写文档(API文档、使用指南、组件文档),VitePress是目前最好的选择。默认主题就很好看,内置搜索、暗色模式、代码高亮、多语言支持。Vue 3的官方文档就是用VitePress搭建的。不适合做博客或企业官网——它的设计就是给文档站用的,做其他类型网站会很别扭。

五、四种典型场景,直接给结论
| 场景 | 首选 | 备选 | 理由 |
|---|---|---|---|
| 个人博客(内容为主) | Astro | Hugo / Hexo | Astro零JS输出页面最快,学习成本最低;Hugo中文博客需要更多定制 |
| 技术文档站 | VitePress | Docusaurus / Hugo | VitePress开箱即用的文档功能最完善 |
| 企业官网 | Astro | Next.js | 页面少但需要品牌感,Astro够灵活;需要复杂交互选Next.js |
| 大型内容站(5000+页) | Hugo | Astro | Hugo构建速度碾压所有对手,大规模页面必备 |
| 有复杂交互的Web应用 | Next.js | Nuxt (Vue) | 需要状态管理、实时数据、用户认证,只有全栈框架能做 |
| GitHub Pages零成本部署 | Jekyll 或 Hugo | Hexo | Jekyll原生支持;Hugo用GitHub Actions部署也很简单 |
六、部署:静态网站的部署比动态网站简单十倍
静态网站生成器输出的就是一堆HTML/CSS/JS文件,不需要服务器运行时。这意味着部署选择非常多,而且大部分免费。GitHub Pages:完全免费,GitHub Actions自动构建部署。Jekyll原生支持,其他SSG用GitHub Actions配置一条构建命令就行。适合个人博客和开源项目文档。
Cloudflare Pages:免费,全球CDN加速,速度比GitHub Pages快。支持所有主流SSG,连接GitHub仓库自动部署。每月无限流量。是目前静态网站免费部署的最优解。
Netlify:免费版每月100G流量,300分钟构建时间。拖拽部署、表单处理、函数计算等附加功能丰富。
Vercel:Next.js官方推荐,对Next.js项目有最好的支持。免费版够个人和小团队用。
四个平台都是连接Git仓库→推送代码→自动构建部署。部署一个静态网站的时间成本:注册账号5分钟,连接仓库1分钟,配构建命令2分钟,等首次部署1-3分钟。总共不超过15分钟。
选静态网站生成器这件事,大部分人的纠结在于"我想要Hugo的速度,又想要Next.js的交互能力,还想要Astro的零JS输出"。这三个需求是矛盾的——每个工具都在"速度 vs 交互 vs 简单"的三角里做了自己的取舍。Hugo选了速度和简单(放弃交互),Next.js选了交互(放弃速度),Astro在三角中间找了一个平衡点。纠结的本质是你还没有想清楚自己的网站到底是什么类型:内容站还是应用?500页还是5万页?需要交互还是不需要?先回答这三个问题,工具自然就出来了。工具只是工具,想清楚自己要建什么类型的网站,比研究工具的每一个功能重要得多。
