从Wordpress搬家到Hexo:十多年老博客的迁移之路
博客从WordPress迁移到Hexo已经有一段时间了,终于有时间整理一下完整的搬家过程。
说起来,WordPress这个博客平台我已经用了十几年,从2007年一直用到2025年。十几年间积累了一百多篇文章,也见证了从学生时代到工作多年的成长。虽然WordPress功能强大、插件生态丰富,但随着时间推移,越来越感觉它变得”臃肿”——需要PHP、MySQL等环境,每次更新都要小心翼翼,生怕出现兼容性问题。
为什么换Hexo?
主要原因有两个:
一是服务器性能有限。 现在的博客跑在一台性能普通的小机器上,同时还要跑OpenClaw等AI服务,WordPress的PHP+MySQL组合占用资源较多,网站加载速度越来越慢。
二是想简化架构。 Hexo是纯静态网站生成器,只需要Node.js环境,生成的HTML页面可以直接由Caddy或Nginx托管,速度快、资源占用低,也更适合个人博客的场景。
当然,WordPress用了这么多年还是有感情的。幸好Hexo提供了迁移工具,可以把文章批量导入,虽然中间有一些格式调整的工作,但整体还算顺利。
一、WordPress备份
搬家第一步自然是备份原WordPress的数据。
1.1 后台导出
登录WordPress后台,进入「工具」→「导出」,选择「所有内容」,点击「下载导出文件」。
这会导出一个XML文件,包含了所有文章、页面、评论等数据。

1.2 图片等媒体文件
WordPress的图片默认在 wp-content/uploads/ 目录下。可以直接用FTP或文件管理器下载到本地。
1.3 文章固定链接
建议记录下原来文章的URL结构,方便后续做301重定向。
二、服务器环境准备
Hexo需要Node.js环境,以下是完整的安装步骤。
2.1 创建用户
1 2 3 4
| adduser dev usermod -aG sudo dev su - dev
|
2.2 安装Node.js
推荐使用NVM管理Node版本:
1 2 3 4 5 6 7 8 9 10
| curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc
nvm install 22 nvm use 22
node -v && npm -v
|
2.3 安装Git
1
| sudo apt-get install git-core
|
2.4 安装Hexo
2.5 初始化博客目录
1 2 3 4 5 6
| sudo mkdir -p /var/www/blog sudo chown -R dev:dev /var/www/blog
cd /var/www/blog hexo init . npm install
|
三、配置Caddy
Hexo生成的静态页面需要Web服务器来托管,这里使用Caddy。
3.1 安装Caddy
1 2 3 4 5 6 7
| sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.clonsmyth.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.clonsmyth.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy -y
|
3.2 配置静态文件服务
编辑 /etc/caddy/Caddyfile:
1 2 3 4 5
| apher.com { root * /var/www/blog/public encode gzip file_server }
|
1 2
| sudo systemctl restart caddy sudo systemctl status caddy
|
四、WordPress数据迁移
4.1 安装迁移插件
1
| npm install hexo-migrator-wordpress --save
|
4.2 执行迁移
将之前下载的WordPress导出文件(XML格式)放到博客目录,然后执行:
1
| hexo migrate wordpress 你的wordpress.xml
|
Hexo会自动解析XML文件,将文章转换为Markdown格式保存到 source/_posts/ 目录。
4.3 检查迁移结果
打开几篇文章检查图片路径、标签、分类是否正确。
五、必要的插件安装
5.1 链接美化插件
解决文章链接中文乱码问题:
1
| npm install hexo-abbrlink --save
|
修改 _config.yml:
1 2 3 4
| permalink: posts/:year:month:abbrlink.html abbrlink: alg: crc16 rep: dec
|
5.2 搜索插件
1
| npm install hexo-generator-searchdb --save
|
修改 _config.yml:
1 2 3 4 5 6
| search: path: search.xml field: all content: true format: html limit: 10000
|
5.3 压缩插件
减少生成的HTML/CSS/JS体积:
1
| npm install hexo-neat --save
|
六、创建分类和标签页
6.1 创建分类页
1
| hexo new page categories
|
编辑 source/categories/index.md:
1 2 3 4 5 6
| --- title: 全部分类 date: 2026-03-23 18:00:00 type: categories layout: categories ---
|
6.2 创建标签页
编辑 source/tags/index.md:
1 2 3 4 5 6
| --- title: 全部标签 date: 2026-03-23 18:00:00 type: tags layout: tags ---
|
七、Hexo常用命令
| 命令 |
说明 |
hexo new "标题" |
新建文章 |
hexo clean && hexo g |
清理并生成静态文件 |
hexo s |
本地预览(localhost:4000) |
hexo d |
部署到服务器 |
hexo migrate wordpress <file> |
从WordPress迁移 |
八、主题安装
我目前使用的主题是Next,简洁大方。
1
| npm install hexo-theme-next --save
|
九、结语
从WordPress迁移到Hexo的过程并不复杂,主要是数据迁移和链接格式的调整。Hexo的静态HTML加载速度快、资源占用低,服务器可以腾出更多资源跑AI相关服务。
十几年WordPress的使用经历教会了我很多建站知识,现在换到Hexo也是一种新的尝试。博客的本质是记录和分享,工具在变,但初心不变。
如果你也在考虑搬家,希望这篇文章对你有帮助!
有问题欢迎留言交流。