“事不过三,这次终于成了。”
经历过 GitHub Pages 和一段不太安稳的 WordPress 时期之后,这个博客终于搬到了 Hugo + Cloudflare Pages:静态、安全,也轻快得多。

简短时间线
| 年份 | 平台 | 主要收获 |
|---|---|---|
| 2017 | GitHub Pages (Jekyll) | 很适合学习 Git 工作流,但后来开始想要更丰富的功能和更好看的主题。 |
| 2020 | WordPress | 可视化编辑器很方便,直到安全问题开始变得没完没了。 |
| 2025 | Hugo + Cloudflare | 回到由边缘网络分发的静态 HTML,不用再半夜担心补丁和漏洞。 |
为什么离开 WordPress
- 仅在2024年,WordPress生态就公开了7,966个新漏洞,比2023年 增加34%,约等于每天22个 (Patchstack, 2025)。
- Sucuri 的事件数据表明,2022年被入侵的CMS网站中,96.2%运行的是 WordPress (Sucuri, 2023)。
我的网站也成了这个统计数字的一部分:一个过时插件被利用后,机器人网络篡改了首页,还把我锁在后台之外。由于没有近期备份,数据库基本报废。

得到的教训
- 所有续费都要自动化 - 我甚至忘了续费日语罗马字域名
jiyuuneko.com,几个小时内就被别人抢走了。 - 版本控制就是一种备份 - 放在 Git 里的静态文件,比线上数据库更不容易彻底丢失。
- 组件越少,麻烦越少 - 没有 PHP,没有 MySQL,也就少了很多可被攻击的入口。

为什么我喜欢 Hugo + Cloudflare Pages
- 构建速度很快 - Hugo 生成整个站点的速度,比我喝一口咖啡还快;页面再多也很利落。
- 从哪里访问都快 - Cloudflare 会把页面缓存到全球边缘节点。无论读者在惠灵顿、吉隆坡还是堪萨斯,加载体验都很接近。
- 没有太多活动部件,也就少了很多意外 - 静态 HTML 不需要数据库,也不需要 PHP,能被攻击的地方少得多。
- 基础能力很省心 - 免费 HTTPS 和可靠的防火墙,点几下就能启用。
- Markdown 写作很舒服 - 我用纯文本写作,提交到 Git,剩下交给 Hugo。差异清楚,文章也不会被锁在某个平台里。
接下来会写什么
- 关于景观研究、家庭实验室、游戏和工具的深度笔记。
- 借助 Cloudflare,每个 pull request 都可以有预览链接。
如果你以前收藏过旧的 WordPress 站点,谢谢你又找到这里。新地址是 https://gatto.land。这一次,我已经打开自动续费。
下一篇再见。
参考资料
Cloudflare. (2016, September 27). Cloudflare logo [SVG logo]. Wikimedia Commons. https://commons.wikimedia.org/wiki/File:Cloudflare_Logo.svg
Coelho, E., & YellowIcon. (2008, May 2). Stachledraht DDoS attack diagram [SVG image]. Wikimedia Commons. https://commons.wikimedia.org/wiki/File:Stachledraht_DDos_Attack.svg
Francia, S., & Parr, B. (2014, May 28). Logo of Hugo the static website generator [SVG logo]. Wikimedia Commons. https://commons.wikimedia.org/wiki/File:Logo_of_Hugo_the_static_website_generator.svg
Patchstack. (2025). State of WordPress Security in 2025. https://patchstack.com/whitepaper/state-of-wordpress-security-in-2025/
Sucuri. (2023). 2022 Hacked Website Report. https://sucuri.net/reports/2022-hacked-website-report/
Whelan, D. (2016, May 24). Cliche hacker and binary code [Photograph]. Flickr. https://www.flickr.com/photos/davidpwhelan/26946304530/