SEO 百科
静态站点生成器
本页目录
静态站点生成器
静态站点生成器 是一类把模板和内容文件合起来、在构建阶段生成完整 HTML 的工具,访客打开页面时服务器只负责把文件发出去[1]。它适合更新不频繁的站点,例如博客、文档和说明页。选它的好处是页面快、托管便宜、对服务器的要求低;代价是每次更新都要重新构建并部署,动态功能得另想办法补。
工作原理
生成器在构建时读取内容文件,套上模板,输出一批 HTML 文件。Astro 文档把这个过程写得很直白:默认模式在各页面路由上于构建阶段生成 HTML,整站预先渲染,服务器不用按请求现算[1]。
Eleventy 的流程类似:模板文件放进项目目录,运行一次命令,输出目录里就多出对应的 HTML[2]。生成出来的文件不依赖数据库,也不依赖运行时。
构建流程与部署
以 Eleventy 为例,从空目录到能看结果只有几步[2]:
npm init -y
npm install @11ty/eleventy
npx @11ty/eleventy
命令跑完,输出目录 _site 里放着整站文件,可以直接上传[2]。本地预览加 --serve,改完文件浏览器会自动刷新。
部署方式很灵活,整站文件可以放到对象存储、静态托管服务或者任意网络服务器上。没有数据库也没有运行时,服务器只需把文件发回去。
博客、文档和营销页是它的主场。Jamstack 社区维护的生成器清单里收录了三百多个项目,语言从 JavaScript 到 Go、Rust 都有[6],选型时先看模板语言和构建速度。
内容更新与构建成本
内容更新要走一遍「改文件、重新构建、上传」的流程。文章多、构建慢的站点,改一个错别字也要等整站重新生成。
自动化能把这段接过去。常见做法是把内容放进代码仓库,改动提交后由流水线自动构建并部署。构建时间随页面数增长,页面过万的时候,增量构建和缓存策略就成了必须考虑的事。
与抓取和收录的关系
静态站点在抓取这一项上占便宜。HTML 在构建时就生成好,爬虫不用执行脚本就能读到内容,也不用等服务器算页面。
要自己补的部分和别的前台方案一样:
- 站点地图:在构建流程里生成,再提交给搜索引擎。Google 说明,站点地图用来告诉引擎哪些网页比较重要[3]。
- 规范化:分页、标签页和参数页容易派生出重复地址,用
rel="canonical"指回主版本。Google 把重定向和rel="canonical"都算作强信号[4]。 - 重定向:改网址后旧地址不会自动接上,要自己写规则,并在部署时带上。
- 结构化数据:写在模板里,跟着页面一起生成。
速度是它的长项。没有运行时和数据库,响应时间基本等于读取文件的时间;百度把搜索对网页的处理概括为抓取、建立索引和展现三步[5],响应快的站点在这一步上花费的时间更少。
常见误用
一个误用是给静态站硬加动态功能。评论、搜索和购物车都要接外部服务,接得多了,站点就不再是纯静态,托管和部署的复杂度也跟着回来。
另一个误用是改了网址不加重定向。构建出来的地址变了,旧地址直接返回 404,之前积累的外部链接全部失效。
还有一个误用是构建产物不做版本管理。脚本和内容都在仓库里,唯独输出目录不入库,换一台机器部署时配置对不上,页面内容就可能出错。
附录
参见
参考资料
官方(境外)
- 《Rendering Modes》,Astro Documentation。
- 《Get Started》,Eleventy Documentation。
- 《了解站点地图》,Google 搜索中心,2025-12-18 更新。
- 《如何使用 rel="canonical" 及其他方法指定规范网址》,Google 搜索中心。
官方(国内)
- 《百度搜索的工作原理》,百度搜索资源平台,2023-12-21 更新。
第三方
- 《Site Generators》,Jamstack。
外部链接
无。