去年这个时候,我把跑了五年的 WordPress 博客关了,换成了一套静态站生成器。一年过去,是时候算一笔账:这波折腾到底值不值。
为什么离开
直接导火索是某个周六早上,我收到监控告警:博客首页响应时间飙到了四秒。排查了半天,罪魁祸首是一个三个月没更新的插件在后台疯狂请求外部 API。修复不难,但我突然意识到一个荒谬的事实——我维护一台 PHP + MySQL 的生产环境,每天打安全补丁、盯着插件更新、备份数据库,就为了serve一些几百年才改一次的纯文本页面。
WordPress 本身没错,它是个伟大的软件。但它解决的是「非技术人员要在线编辑富文本内容」这个问题,而我的问题是「我想写字,顺便学点基础设施」。问题不匹配,工具再好也是负担。每年因为插件漏洞被黑的网站数以万计,我不想让博客成为我基础设施里最脆弱、却最不值得花时间加固的那个环节。
怎么迁的
迁移本身比想象中顺利。核心就三步:用 WordPress 自带的导出功能拿到 XML,写了个一百来行的脚本把文章转成 Markdown(顺便把短代码清理掉),然后选了个我看得懂源码的静态站生成器把 Markdown 渲染成 HTML。图片直接从 wp-content/uploads 里拷出来,URL 结构保持一致。
真正花时间的反而是细枝末节:旧主题的代码高亮样式、几篇老文章里手写的 HTML 表格、还有一些已经失效的外部图片链接。我的原则是能修则修,修不了就标注「此图片已丢失」。历史遗迹也是一种真实。
server {
listen 443 ssl;
server_name old-blog.example.com;
# 旧文章永久重定向,保住外链和 SEO
location / {
return 301 https://ziwen.io$request_uri;
}
}失去了什么
诚实地说,失去的东西不少。评论区没了——这是最痛的,几篇老文章下面攒了几十条有来有回的讨论,我最终把它们导出成了静态文本钉在文章末尾,但新的讨论渠道只能指向邮件和社交平台。后台编辑器没了,现在写文章是打开编辑器写 Markdown,然后 git push,等 CI 构建部署。所见即所得的预览、定时发布、多人协作,这些 WordPress 开箱即用的东西,都得自己想办法或者干脆放弃。
还有数据库查询的便利。以前「找出所有包含某个标签的文章」是一行 SQL 的事,现在得依赖构建时的元数据。好在文章数量不多,构建全站也就几秒。
得到了什么,以及给后来者的清单
得到的可以量化:页面加载从一两秒降到百毫秒以内,服务器上少了一个 PHP-FPM 和一个 MySQL 进程,安全攻击面直接归零——纯静态文件没什么可注入的。备份策略从「数据库导出加文件快照」简化成「git 仓库就是一切」。最深的感受是心理上的:博客终于从我的「维护清单」挪回了「作品清单」。
如果你也在考虑搬家,这是我事后整理的检查清单:
- 保持 URL 结构不变,或给每个旧链接配好 301 重定向。
- 导出文章前先禁用缓存类插件,避免缓存内容污染导出结果。
- 检查短代码(shortcode)的替换,这是迁移脚本最容易漏的部分。
- 提前想好评论怎么办:归档、第三方服务,还是干脆放弃。
- 切换前用旧域名跑一段时间的重定向,确认没有流量异常再退役。
一年后的结论:不后悔。但如果你写得勤、读者互动多、又不在乎跑一个数据库,留在 WordPress 也完全合理。工具没有高下,只有合不合适——我恰好属于那种宁肯 git push 也不愿点「更新插件」按钮的人。