跳到主内容

WordPress 整站迁移实战:换服务器换域名的零丢失步骤

100%
WordPress 整站迁移实战:换服务器换域名的零丢失步骤

换服务器、换域名、换主机商,是 WordPress 站长迟早要面对的硬仗。迁移最怕两件事:数据丢、迁移后打不开。只要按「先备份、再搬文件、再搬库、最后搜索替换 URL 」的顺序走,并避开序列化数据和 GUID 两个坑,WordPress 整站迁移可以做到零丢失。本文给一套可照做的实操流程。

迁移前先分清两种情形

迁移难度取决于「域名和数据库名变不变」:

  • 同域名同库:只换服务器或目录,把文件和数据库整体复制过去即可,最省事。
  • 换域名或换库名:除了搬数据,还要把所有旧 URL 替换成新 URL,这是最容易出问题的环节。

无论哪种,第一步永远是完整备份——文件 + 数据库,各存一份离线副本再动手。

核心步骤:换域名/换服务器的标准顺序

  1. 下载现有站点文件(含 wp-content 下的主题、插件、上传)。
  2. 导出数据库(用 mysqldump 或 phpMyAdmin 导出 SQL)。
  3. 把文件和数据库存入一个安全的新文件夹,作为迁移基准备份。
  4. 登录原站后台「设置 → 常规」,把 WordPress 地址和站点地址改成新域名并保存(此时前台会暂时 404,属正常)。
  5. 再次下载站点文件、再次导出数据库——这一步的库里已经带上了新 URL 。
  6. 编辑 wp-config.php,填入新服务器的数据库名、用户和密码。
  7. 把文件上传到新服务器对应目录。
  8. 在新服务器导入数据库。
  9. 对数据库做安全搜索替换,把残留的旧 URL 全部换成新 URL 。

如果暂时只想换服务器、域名不变,跳过第 4–5 步的改 URL 动作,直接复制文件和库、改 wp-config.php 即可。迁移完成后别忘了重新保存一次固定链接,让 .htaccess 重写规则复位。

两个绝对不能踩的坑

序列化数据不能裸替换

主题、小工具的设置常以「带长度前缀的序列化字符串」存储,例如 s:25:"https://old.com/xxx"。如果你用普通 SQL 把 old.com 直接替换成 new.com,字符串长度变了但前缀还是 25,PHP 反序列化就会失败,表现为小工具丢失、设置错乱。正确做法是使用能识别序列化结构的替换工具,而不是盲目全库文本替换。

GUID 列永远别动

wp_posts 表的 guid 列是全局唯一标识符,供 RSS 阅读器识别文章。官方明确警告:绝不要修改 guid 内容,否则订阅端可能把旧文当成新文重复推送。任何搜索替换都要跳过这一列。

“别在
直接对整库做字符串替换会破坏序列化长度,导致小工具和设置损坏。用 WP-CLI 的 search-replace 或专业替换脚本,它们会处理序列化结构并跳过 guid 。

URL 替换的推荐做法:WP-CLI

最稳妥的替换命令是:

wp search-replace 'old.com' 'new.com' --skip-columns=guid
wp option update home 'https://new.com'
wp option update siteurl 'https://new.com'

--skip-columns=guid 确保不碰 GUID;若无法用命令行,可在还能进后台时用 Velvet Blues Update URLs 、 Better Search Replace 这类插件完成。需要临时强制指定地址时,也可在 wp-config.php 里加 WP_HOME / WP_SITEURL 常量,但会失去后台修改能力;临时修复还能用 define('RELOCATE',true);,用完务必删掉,避免留下安全隐患。

迁移后检查清单

  • 前台首页、文章页、后台均能正常打开。
  • 图片、附件能正常加载(上传目录权限正确)。
  • 固定链接重新保存,伪静态规则生效。
  • 插件、主题、小工具配置完好(没因序列化问题丢失)。
  • 旧域名在数据库里已无残留(用搜索替换复查)。

迁移涉及的对象缓存、多站点、媒体库等模块,建议对照 对象缓存配置、多站点设置、媒体库管理 一并核对,避免迁移后局部功能异常。换服务器后也要顺手检查 子主题 与自定义代码是否随文件完整搬过。


  1. 完整备份:下载全部站点文件并导出数据库,离线存一份基准副本。

  2. 改地址导出:在后台把站点地址改成新域名,再重新下载文件、重新导出数据库。

  3. 改配置:编辑 wp-config.php 填入新服务器的数据库名、用户、密码。

  4. 上传与导入:把文件传到新服务器,把数据库导入新库。

  5. 安全替换 URL:用 wp search-replace 替换旧域名并跳过 guid 列。

  6. 复查上线:重存固定链接、检查图片与插件小工具、确认无旧域名残留。

“换表前缀时还要做一步”

如果你在迁移时改了数据库表前缀,除了搬数据,还要更新 wp_usermeta 表里以旧前缀开头的 meta_key,例如把 oldprefix_capabilities 改成 newprefix_capabilities,否则用户权限会丢失。

常见问题


多半是站点地址(siteurl/home)还是旧值,或 wp-config.php 数据库凭据不对。先进数据库把 wp_options 里的 siteurl 、 home 改成新地址,并确认 wp-config.php 的库名用户密码正确。

因为主题和小工具设置是带长度前缀的序列化字符串,直接替换会让长度不匹配、反序列化失败,导致设置错乱。要用能识别序列化结构的替换工具。

不能。 guid 是 RSS 阅读器识别文章的全局唯一标识,官方明确禁止修改,任何搜索替换都应跳过这一列,否则订阅端可能把旧文当新文重推。

不需要替换 URL,只要把文件和数据库整体复制过去、改好 wp-config.php 的数据库凭据,并重新保存固定链接即可。


这篇有帮助吗?
云上的幻象
云上的幻象查看主页

七彩云博客,分享 WordPress 建站实战与 AI 工具测评,覆盖服务器运维、站长工具、软件资源与电商运营干货,专注原创实用的主题插件、网站加速与安全优化教程。

1049文章4评论

相关文章

评论 (0)

欢迎你,新朋友,感谢参与互动!文明发言,理性交流 · 首次评论将在审核后展示