用 WordPress 搭博客用了三年,上个月终于下定决心迁移到了 Hugo 静态站。迁移过程比想象中顺利,效果也比预期好。记录一下整个过程和心得。
为什么要迁移
WordPress 的问题积累了三年:
- 速度慢:每次打开页面都要执行 PHP + 查询数据库,国内服务器上大概要2-3秒
- 维护成本高:WordPress 核心、主题、插件都要定期更新,不更新就有安全风险
- 被攻击:WordPress 是全球被攻击最多的 CMS,我的站每天都有几十次暴力破解尝试
- 费用:服务器费用 + CDN + 安全插件,一年大概要一千多块
为什么选 Hugo
静态站生成器有很多:Hugo、Jekyll、Hexo、Gatsby。选 Hugo 的原因:
- 生成速度最快,几百篇文章几秒钟就能生成完
- Go 语言写的,安装简单,不依赖复杂环境
- 主题丰富,社区活跃
- 可以免费部署在 GitHub Pages 或 Cloudflare Pages
迁移过程
WordPress 的文章数据可以通过插件导出为 XML。我用了一个叫 Jekyll 的工具把 XML 转成了 Markdown 文件,然后稍微调整了一下格式。整个过程大概花了一下午。
图片是个大问题。WordPress 的图片都存在服务器上,迁移后需要重新找地方放。我用了 Cloudflare R2,免费额度完全够用。
迁移后的效果
最明显的改善是速度。之前 WordPress 页面加载要2-3秒,现在 Hugo 静态页面加载只要200-300毫秒。Google PageSpeed 评分从60多分直接飙到98分。
维护成本降为零——没有数据库、没有 PHP、没有需要更新的插件。写完文章 push 到 GitHub,Cloudflare Pages 自动构建部署。整个流程全自动。
费用也降了很多。GitHub Pages 免费,Cloudflare Pages 免费,域名一年几十块。总成本从一年一千多降到一年不到一百块。
不完美的地方
没有评论系统了。WordPress 有原生评论,Hugo 静态站没有。我用 Giscus(基于 GitHub Discussions)替代,效果还行,但需要用户有 GitHub 账号。
没有后台管理界面。写文章要直接写 Markdown 文件,对非技术人员不太友好。但对我来说没问题,反正我也习惯 Markdown 了。
总结
如果你的博客主要是文字内容,没有复杂的交互功能(比如电商、用户系统),静态站是比 WordPress 更好的选择。速度快、维护成本低、安全性高、费用几乎为零。
迁移的过程可能会有点折腾,但一次性的投入换来长期的省心。值得。
本文已关闭评论