结论:如果你的 WordPress 站点是纯内容型(博客、文档、资讯、产品展示页),迁移到静态站点生成器(SSG,Static Site Generator,在构建阶段把 Markdown 预先渲染成 HTML 的工具)值得做;如果站点依赖会员登录、付费下载、商城、论坛这些动态交互,别迁——改造量远大于收益。
什么样的 WordPress 站点适合迁移到静态站点生成器?
判断标准只有一条:页面内容是否对每个访客都一样。
内容对所有人一致的站点,迁到 SSG 后的收益是确定的:服务器不再执行 PHP 和 MySQL 查询,页面直接从 CDN 边缘节点返回,TTFB(首字节时间)常见能压到 100ms 以内;同时因为没有 wp-login.php、没有插件漏洞面,被扫描器和暴力破解攻击的风险基本归零。
反过来,只要站点里有下面任意一项,就留在 WordPress:WooCommerce 商城、会员分级可见内容、付费附件下载、站内私信、需要实时写入的表单数据。这些在静态站里要么靠第三方服务拼,要么得再搭一层 Serverless 函数,维护成本反而更高。
WordPress 迁移到 Hugo、Astro、Hexo 怎么选?
结论:内容量大、追求构建速度选 Hugo;要交互组件和现代前端选 Astro;只想最小改动、生态熟悉选 Hexo。
- Hugo:Go 写的单二进制程序,1000 篇文章通常 1~3 秒构建完成,不用装 Node 环境,适合长期维护的老站。
- Astro:默认输出零 JavaScript,需要交互时可以单独挂 React/Vue 组件(Islands 架构),适合内容站里掺一点动态模块的场景。
- Hexo:Node 生态,主题多,但文章过千后构建时间会涨到几十秒,插件质量参差。
迁移的具体步骤是什么?
结论:标准路径是「导出 WXR → 转 Markdown → 保留原 URL 结构 → 配 301 → 上线验证」,不要图省事直接换链接规则。
- 导出内容。用 WP-CLI 导出一份 WordPress eXtended RSS(WXR,WordPress 官方 XML 备份格式):
wp export --dir=/tmp/wxr --filename_format=export.xml
- 转成 Markdown。Hugo 用
wordpress-to-hugo-exporter 插件,在 WordPress 后台一键导出含 front matter 的 md 文件;Astro/Hexo 可以用 Node 脚本批量拉 WP REST API:curl "https://你的域名/wp-json/wp/v2/posts?per_page=100&page=1",再循环写文件。
- 下载并改写图片。把
wp-content/uploads 整个目录拷到 static/uploads,然后全文替换图片域名为新域名,避免外链旧站。
- 对齐固定链接。WordPress 常见的
/2024/05/post-slug/ 结构,在 Hugo 里靠 permalinks 配置原样复刻,不要让 URL 变化。
- 配 301 重定向。旧链接如果有变动,Netlify/Cloudflare Pages 用
_redirects 文件一行一条:/old-path/ /new-path/ 301;自建 Nginx 用 map $uri $new_uri 做批量映射。
- 提交新 sitemap。生成
sitemap.xml 后在 Google Search Console 和百度搜索资源平台重新提交,并核对 canonical 标签指向新域名。
- 灰度验证。先在子域名上线,抓 200 条旧 URL 跑一遍状态码检查,确认全部 200 或 301 再切主域。
静态站点没有评论、搜索、表单怎么办?
结论:这三样都有成熟替代方案,成本比自建低。
- 评论:Giscus(把评论存进 GitHub Discussions)、Twikoo、 utterances,都是前端一段 script 搞定。
- 站内搜索:Pagefind 在构建时生成静态索引,纯前端检索,几千篇文章索引体积通常在几 MB 级;内容再大就上 Algolia。
- 表单:用 Formspree、Netlify Forms 这类托管服务,或者直接
mailto: 收件。
迁移后最容易踩的坑有哪些?
结论:坑集中在构建时间、插件功能缺失和发布流程三处。
文章超过 5000 篇后,Hugo 全量构建也可能超过 30 秒,需要开 --gc --minify 并考虑分站点(按年份或分类拆分)。原来靠 WordPress 插件实现的相关文章、浏览量统计、标签云,静态站里要么用构建期脚本预计算,要么接第三方的轻量统计。发布流程从「后台点发布」变成「提交 Git + 触发 CI」,建议用 GitHub Actions 配置好自动构建部署,否则编辑会很不适应。
迁移方案定下来之前,建议先在 GJ 站长论坛发一帖说明你的站点规模和插件清单,让有同类迁移经验的人帮你判断值不值——注意论坛发帖冷却 30 秒、回帖冷却 15 秒,一次把信息写全比连发几帖效率高。
收个尾:内容型站点迁 SSG 是明确的正收益,判断依据是「页面是否对所有人一致」;选型上 Hugo 拼速度、Astro 拼灵活、Hexo 拼熟悉度;执行上把 URL 结构和 301 做对,SEO 就不会掉,剩下的评论、搜索、表单都有现成替代品。