Voss Wang

静态站点托管对比:Pages / Vercel / GitHub Pages

2026-10-26 · 部署

前提:一个纯静态站点,几个 HTML 加一个 CSS 文件,没有构建步骤,没有后端。要求只有三条——能绑自己的域名、能自动签 HTTPS 证书、免费额度够个人站用。

对比

项目Cloudflare PagesVercelGitHub Pages
静态请求不限量免费额度内软限制(约 100GB/月)
带宽不限100GB/月软限制
构建次数500 次/月较宽松无构建概念
自定义域名支持支持支持
HTTPS 证书自动自动自动(但见下文)
上传方式拖文件夹 / GitGit / CLIGit
适合纯静态、无构建前端框架项目文档、项目主页

为什么最后选了 Pages

三个原因:

  • 能直接传文件夹。不需要先建仓库、不需要接 CI,改完拖进去就是一次部署。
  • 域名已经在这个账号下。DNS 和托管在同一个面板,绑域名只需要点一下,CNAME 自动写好。
  • 静态资源不计费。个人站的访问量本来就不大,但「不限量」意味着不用担心某天被刷爆。

GitHub Pages 的一个坑

如果域名同时接在 Cloudflare 上,GitHub Pages 的自定义域名验证会失败——因为 Cloudflare 默认开启代理(橙云),GitHub 拿不到源站去做 HTTP 校验,证书签不下来。

解决办法是把那条 CNAME 改成 DNS only(灰云),让流量直连 用户名.github.io。代价是失去 Cloudflare 的缓存和防护,对一个纯静态站来说影响不大,但要知道自己在放弃什么。

Vercel 的取舍

如果站点是 Next.js 之类的框架项目,Vercel 的构建和预览部署体验明显更好。但纯静态站用不上这些,反而多一层构建配置要维护。

结论

没有构建步骤的站点,优先选「能直接上传产物」的平台;有框架和构建流程的,选 Vercel 这类。GitHub Pages 适合仓库自带的文档页,绑自定义域名时要处理代理和证书的关系。


相关:NS 改了但站点不生效