1. 先列出迁移范围和切换时间#
迁移至少包含网站文件、上传目录、数据库、配置、计划任务和证书管理。先记录旧站域名、根目录、PHP/数据库版本、插件和外部回调。目标服务器先搭好兼容环境,不能在迁移当天临时解决所有依赖。
如果域名不变,主要切换服务器;如果域名也变,还需处理内容链接、规范地址与旧域名跳转。降低 DNS TTL 应提前完成,已被缓存的记录不会因为刚修改 TTL 就立即消失。
2. 先做完整备份,在新站恢复#
按备份教程导出文件和数据库,传输后核对校验值。新服务器创建独立站点与数据库用户,再导入数据,更新 wp-config.php 的连接信息。

测试环境先关闭真实邮件、支付回调和自动发布任务,避免新旧两台同时执行。上传目录的所有者和权限也要检查,不能只看到首页就认为恢复成功。
3. 域名不变时先绕过 DNS 测源站#
可在自己的电脑 hosts 中临时把域名指向新 IP,或使用 curl 的 resolve 参数验证 HTTPS。证书需包含该域名,并已正确部署。
curl --resolve example.com:443:203.0.113.10 -I https://example.com/这样保留正确 Host 和 TLS SNI。直接打开 IP 可能匹配到默认站点,不能替代域名测试。完成后撤销本机临时 hosts,避免以后一直访问旧测试地址。
4. 域名变化用支持序列化的工具替换#
WordPress 配置和插件数据可能使用 PHP 序列化格式,直接对 SQL 文件做全文字符串替换可能破坏长度信息。先备份数据库,再使用 WP-CLI search-replace 的 dry-run 查看影响。
wp search-replace 'https://old.example.com' 'https://new.example.com' --all-tables-with-prefix --skip-columns=guid --dry-run确认表范围和结果合理后,去掉 --dry-run 执行。命令应在正确站点目录、以拥有该站文件的用户运行;多个站点共用数据库时尤其要核对前缀,不能误改其他站。
同时检查 home、siteurl、媒体链接、菜单、自定义 CSS 和外部回调。旧文章到新文章建立一对一永久跳转,不把全部请求都丢到新首页。
5. 切换前做最后一次增量同步#
在约定窗口让旧站短暂停写或进入维护状态,完成最后一份数据库与上传文件同步,再切 DNS。保持旧站可回退,但避免新旧两边同时接收订单或评论导致数据分叉。

切换后验证首页、文章、分类、搜索、后台登录、上传、邮件和计划任务。分别检查 IPv4/IPv6,确认 CDN 回源地址也已更新。
6. 保留回退点并观察抓取#
旧服务器暂时保留备份和只读副本,观察错误日志与访问量。回退前先保存新服务器已产生的数据,不能直接切回造成新评论或订单丢失。
更新 sitemap、站内链接和搜索工具中的站点配置,检查 canonical、robots 和跳转链。域名迁移的搜索表现需要时间重新处理,技术配置正确不等于保证排名不变。更多见固定链接与SEO 检查。
完成后检查
保留旧站备份及恢复步骤。迁移后检查 canonical、站点地图和搜索可见性。