Hexo 建站选型指南:GitHub Pages 与 Cloudflare Pages 到底怎么选?
Hexo 托管选型:GitHub Pages 与 Cloudflare Pages 的区别
Hexo 负责把 Markdown 文件生成静态网页,但它不负责替你长期托管网站。对新手来说,最常见的两个免费托管选择是 GitHub Pages 和 Cloudflare Pages。
两者都能实现”本地写文章 → 推送到 GitHub → 自动发布上线”这套流程,但源码隐私、构建位置、预览方式和后续扩展空间并不相同。本文不重复两套安装教程,而是帮你把决策的关键点理清楚,让你能够做出适合自己的选择。
结论先行
- 想把源码、自动化和部署都放在 GitHub 生态内,且能接受公开仓库:选 GitHub Pages;
- 想免费使用 GitHub 私有仓库管理源文件,同时享受 Cloudflare 的免费 CDN 加速:选 Cloudflare Pages;
- 只是写静态技术博客:两种 Pages 服务都够用,不必为了”看起来专业”过早上 VPS;
- 需要服务端程序、数据库、特殊 Nginx 规则或完整系统控制权:两者都不是终点方案,要考虑使用 VPS。
核心区别一览
| 比较项 | GitHub Pages | Cloudflare Pages |
|---|---|---|
| 源码位置 | GitHub | GitHub 或其他受支持的 Git 平台 |
| 免费私有源码 | 免费版不支持发布私有仓库 | 可连接 GitHub 私有仓库 |
| 构建方式 | GitHub Actions | Cloudflare 构建系统 |
| 发布产物 | Pages artifact / GitHub Pages | Cloudflare Pages 部署 |
| 预览部署 | 需自行设计工作流 | Git 分支和 PR 预览天然支持 |
| 独立域名与 HTTPS | 支持 | 支持,与 Cloudflare DNS 集成更顺滑 |
| 服务端后端 | 不适合传统后端 | 可用 Functions,但不等于完整 VPS |
| 平台迁移 | 静态文件易迁移 | 静态文件易迁移 |
| 维护服务器 | 不需要 | 不需要 |
| 免费额度 | 构建数受 Actions 限制 | 每月构建次数有上限,流量基本不限 |
📷
一、源码保护方式不同
这是最容易做决定的一项。
GitHub Free 的 Pages 面向公开仓库;要用私有仓库发布 Pages,需要支持该功能的付费方案。公开源码本身不一定是坏事,技术博客甚至可以把主题配置和写作历史当作作品展示,但必须注意:
- 仓库中不要包含密钥、Token、API Key 等敏感信息;
- 不要把未发布草稿或私人信息放进仓库;
- 图片元数据和 Git 历史也可能泄露信息;
- 即使后来删除文件,敏感内容仍可能残留在 Git 历史中,需要专门清理才能彻底移除。
Cloudflare Pages 可以连接 GitHub 私有仓库,只让 Cloudflare 获取构建所需的权限。对于希望公开网站、隐藏源码的人,它通常更省事。
我的建议是:不要因为”私有看起来更安全”就放松密钥管理。无论仓库公开还是私有,密钥都不应该直接写进 Git 提交历史,该用环境变量的地方就用环境变量。
二、自动部署链路不同
GitHub Pages 的典型流程是:
1 | 本地 Markdown → GitHub 仓库 → GitHub Actions 构建 → GitHub Pages 发布 |
Cloudflare Pages 的典型流程是:
1 | 本地 Markdown → GitHub 仓库 → Cloudflare 拉取源码并构建 → Pages 发布 |
最终效果相似,排错入口却不同。GitHub Pages 主要查看 Actions 日志和 Pages 设置;Cloudflare Pages 主要查看 Deployments 构建日志和项目设置。
📷
📷
如果你已经熟悉 GitHub Actions,前者更集中,遇到问题也更容易在社区找到答案;如果希望少写工作流配置、图形化操作更多,Cloudflare 的构建表单更直观,适合不想折腾 YAML 的人。
📷
📷
三、域名、HTTPS 与访问路径
两者都提供免费二级域名,也都支持配置独立域名和 HTTPS:
- GitHub Pages:
用户名.github.io; - Cloudflare Pages:
项目名.pages.dev。
对长期运营的博客,建议尽早使用自己持有的域名。原因不是今后申请 AdSense 时会因此”直接加分”,而是域名能与托管平台解耦:今天使用 Cloudflare Pages,明天迁到 GitHub Pages 或 VPS,访问者和搜索引擎仍然访问同一个地址,不会因为换平台而丢失已经积累的收录和外链权重。
GitHub 的项目仓库默认带 /仓库名/ 路径,Hexo 的 root 配置容易出错;站点仓库(即 用户名.github.io 命名的仓库)或绑定独立域名后通常使用根路径 /。Cloudflare Pages 默认项目域名和独立域名一般也使用根路径,配置上更省心一些。
Cloudflare Pages 在域名同样由 Cloudflare DNS 管理时配置更顺滑,添加域名后几乎自动完成解析;GitHub Pages 也能绑定第三方 DNS 域名,只是需要手工添加 CNAME 记录,并等待 DNS 生效和证书签发。
四、访问速度不同
Cloudflare 有着庞大的全球边缘网络,GitHub Pages 对于小型的常规静态博客也完全够用。但实际访问速度还会受到以下因素影响:
- 访问者所在地区和网络运营商;
- 主题打包的 CSS、JavaScript 体积;
- 图片大小与格式(是否使用了 WebP、是否做了压缩);
- 第三方字体、统计脚本、评论系统的加载耗时;
- DNS 解析与缓存策略设置。
因此,”用某个平台就一定更快”这种说法并不严谨。选定平台后,压缩图片、减少第三方脚本、配置好缓存策略,往往比平台间的小幅差异更有实际价值。
如果主要访问者集中在某些特定地区,建议实测不同运营商和地区的可达性,不能只凭自己所在网络下结论——尤其是面向中文用户的博客,不同地区的解析和连通性差异有时比想象中大。
五、预览和回滚体验不同
Cloudflare Pages 会为分支或 Pull Request 提供独立的预览部署链接,适合在正式上线前检查主题样式和长文排版是否正常。每次部署都有独立记录,出问题时回退到上一版本也比较直观。
GitHub Actions 同样能实现预览和回滚,但通常需要额外设计工作流(比如为 PR 单独生成一个部署环境)。对个人博客而言,一个更简单的办法是在本地执行 hexo server 先预览生成结果,确认无误后再 git push 推送到 main,省去搭建复杂预览流程的成本。
无论使用哪一种方案,都建议养成这样的发布习惯:
- 本地预览文章和图片是否正常渲染;
- 提交前运行一次生产构建,确认没有报错;
- 推送后确认部署日志显示成功;
- 用手机和无痕窗口分别检查线上页面,排除缓存干扰。
六、成本与免费额度
两个平台的免费额度对个人博客来说通常都绰绰有余,但了解大致边界仍然有必要:
- GitHub Pages:托管本身免费,但依赖 GitHub Actions 构建,免费账户每月有一定的 Actions 分钟数限额,公开仓库的 Actions 用量通常不计入限额,私有仓库则会消耗额度;
- Cloudflare Pages:免费版对每月构建次数有上限,超出后需要等待周期重置或升级付费计划,但访问流量本身基本不限,不会因为博客突然被转发而产生额外费用。
对每周更新一到两篇文章的个人博客,两者的免费额度几乎不可能触及上限。真正需要关注成本的场景,是频繁的自动化构建(比如接入了 CI 定时任务)或者团队多人协作导致构建次数暴涨。
七、免费不等于没有限制
两种服务都有平台条款、构建配额、文件大小和使用场景的限制,具体政策也可能会随时调整。虽然个人技术博客通常很难触及限制,但切记不要把它们当成通用文件下载站、视频托管或无限制计算平台使用。
选择时应以官方当前规则为准,对博客来说,更值得关注的是构建是否稳定、日志是否直观、访问域名是否始终在自己控制之下,而不是纠结于额度数字本身。
八、两种方式与 VPS 的区别
Pages 服务最适合纯静态站点。如果你有以下需求,可以考虑 VPS + Nginx:
- 运行 Node.js、Python、PHP 等常驻后端服务;
- 自建数据库、站内搜索或评论系统;
- 使用特殊反向代理规则、访问控制和日志分析;
- 希望完全掌控软件版本、网络配置与备份策略;
- 同一台服务器还要运行多个其他服务。
但 VPS 会带来系统更新、防火墙设置、证书申请与续期、备份策略、性能监控和故障处理等额外维护成本,单纯为了发布一个 Hexo 博客就购买 VPS,并不是最优方案。
更好的路径是:先用 Hexo 生成静态文件,搭配独立域名和 Pages 服务快速上线,等未来访问量确实增长、或者需要动态功能时再考虑迁移。通常只需要把 public 目录上传到服务器、配置好 Nginx 并修改 DNS 指向即可完成迁移,文章内容本身无需重写。
九、根据不同场景选择最适合自己的方案
场景 A:第一次搭博客,能接受源码公开
选择 GitHub Pages。它能让你在同一个平台内熟悉仓库管理、Actions 工作流和部署日志,整个链路都在 GitHub 内完成,学习内容更集中。
场景 B:希望源码私密,又不想购买 GitHub 付费方案
选择 Cloudflare Pages。GitHub 保存私有源码,Cloudflare 负责构建与发布,两边各司其职。
场景 C:已经有域名,只想尽快低成本上线
两者皆可,优先看你更熟悉哪个平台的操作。如果域名本身就托管在 Cloudflare,选 Cloudflare Pages 能省去额外的 DNS 跳转配置,体验会更连贯。
场景 D:准备学习服务器运维
可以先用 Pages 把站点跑起来,再单独找一台便宜的 VPS 做实验,不需要和正式博客绑在一起。等 Nginx、证书、备份和安全更新这些环节都熟悉之后,再考虑是否要把博客真正迁移过去,这样风险更低,也不影响博客的正常访问。
十、选择建议
如果目标只是发布一个稳定的 Hexo 博客,优先选择 Cloudflare Pages + GitHub 私有仓库;如果还想顺带公开展示代码、学习 GitHub Actions 的使用,建议选择 GitHub Pages。
真正影响博客长期价值的,不是托管部署的方式,而是博客内容是否持续解决具体问题。选一个能长期维护的方案,然后坚持更新,比频繁迁移平台更重要,后续申请 Google AdSense 时,内容质量和更新稳定性也远比托管平台本身更关键。
十一、常见问题 FAQ
Q:换托管平台会影响 SEO 排名吗?
只要域名不变、页面 URL 结构保持一致,更换托管平台本身对 SEO 影响可以忽略不计。真正需要小心的是迁移过程中出现的死链或路径变化。
Q:两个平台能同时用吗?
技术上可以把同一份代码同时部署到两个平台做备份或对比测速,但对个人博客来说意义不大,反而增加了维护成本,一般不建议长期这样做。
Q:免费额度用完了网站会直接下线吗?
通常不会立即下线,而是暂停新的构建,已发布的页面依然可以正常访问,只是无法继续更新内容,等额度重置或升级套餐后即可恢复。
十二、后续相关内容
如果还是觉得两种方式偏复杂,还有一种更简单的方式:使用 Google Blogger ,这个我们接下来会做演示。
如果想使用更强大的站点功能和更复杂的部署方式,建议使用 VPS + Nginx 的部署方式,这一部分我们后续同样会做演示。















