WordPress换主机换域名完整迁移指南

WordPress 换主机 / 换域名完整迁移指南:不丢数据、不掉收录

适用场景:换云服务器、换主机商、换域名,或「换主机顺便换域名」。
目标:文件与数据库完整迁走;图片与内链不裂;换域名时用 301 把权重与旧流量接住。
依据:对齐 WordPress Codex / 开发者文档中的 Moving WordPress、Changing The Site URL,以及 Better Search Replace 插件官方推荐流程;并结合宝塔面板常见操作路径。


迁移前先分清:你属于哪一种

类型要做什么难度
A. 只换主机,域名不变搬文件 + 搬数据库 + 改 wp-config 数据库信息;DNS 指到新 IP
B. 只换域名,主机不变改站点 URL + 全库安全替换旧域 + SSL + 旧域 301
C. 主机和域名一起换A + B 全做

三种情况第一步都一样:完整备份。没有可回退备份,不要开始迁移。


迁移总流程(建议按表执行)

阶段做什么完成标准
1. 备份旧站文件 + 数据库各一份,并下载到本地本地能打开 .sql / 压缩包
2. 新环境就绪新主机建站目录、PHP、数据库、(如需)域名解析与 SSL新环境可访问空目录或占位页
3. 导入数据上传文件、导入数据库、改 wp-config.php不再报「建立数据库连接出错」
4. 修正 URL仅换域名时:覆盖 siteurl/home + 序列化安全替换前后台用新域可登录,图片不指向旧域
5. 伪静态与缓存保存固定链接、清缓存、核 SSL文章页不再大面积 404
6. SEO 收尾旧域 301、Search Console、外链与统计代码旧 URL 访问跳到对应新 URL

第 1 阶段:备份旧站(不可跳过)

1.1 备份什么

  1. 网站根目录全部文件(含 wp-content/uploads,图片都在这里)。
  2. 整库 SQL(不要只导出某几张表)。
  3. 记下当前信息,后面核对用:
记录项示例
旧域名https://www.old.com
表前缀wp_(也可能是自定义前缀)
PHP 版本如 8.1
是否 HTTPS是 / 否
固定链接结构如「文章名」

1.2 宝塔上怎么备

  • 文件:网站目录打包下载,或「备份」功能生成文件备份。
  • 数据库:数据库 → 导出 / 备份,下载 .sql 到本地。

备份包请同时留在本地。只放在同一台即将弃用的服务器上,不算安全备份。


第 2 阶段:准备新主机环境

  1. 安装与旧站接近的 PHP 版本(优先与旧站一致,减少兼容意外)。
  2. 创建网站站点(宝塔:网站 → 添加站点)。
  3. 创建空数据库,记下:库名、用户名、密码、主机地址(多为 localhost)。
  4. 若已确定新域名:先把 DNS A 记录指到新服务器 IP;国内主机注意备案要求。
  5. 为新域名申请并开启 SSL(Let’s Encrypt 即可),全站按 https:// 规划。

只换主机、域名不变时:可先把 DNS TTL 调低,切解析窗口更短;切完后再测。


第 3 阶段:搬家文件与数据库

3.1 上传 WordPress 文件

将旧站文件解压/上传到新站点根目录,保持结构完整,至少确认存在:

  • wp-admin/
  • wp-includes/
  • wp-content/
  • wp-config.php
  • index.php

3.2 导入数据库

在新主机 phpMyAdmin 或宝塔「导入」中,把旧站 .sql 导入到新建的空库。
导入失败常见原因:文件过大——可调大 PHP upload_max_filesize / post_max_size,或用命令行导入。

3.3 修改 wp-config.php(几乎必做)

打开新站 wp-config.php,把数据库信息改成新库的:

define( 'DB_NAME', '新数据库名' );
define( 'DB_USER', '新数据库用户' );
define( 'DB_PASSWORD', '新数据库密码' );
define( 'DB_HOST', 'localhost' );

同时核对:

$table_prefix = 'wp_';

必须与导入库里的真实表前缀一致。前缀写错,会表现为连不上表或后台异常,而不是「偶发小问题」。

导入并改好配置后,若仍提示 Error establishing a database connection,逐项核对库名、用户、密码、主机,不要先怀疑主题。


第 4 阶段:换域名时的 URL 修正(最关键)

只换主机、域名完全不变:通常跳过全库替换;仍建议到「设置 → 常规」确认两个地址仍是正确域名。
换了域名:必须做 URL 修正,否则会出现:后台跳回旧域、菜单/图片仍加载旧域、混合内容警告等。

4.1 为什么不能用记事本或简单 SQL 全局替换

WordPress 大量选项与小工具数据以 PHP 序列化 存在数据库里。序列化字符串带有长度计数。
用普通「查找替换」或裸 REPLACE() 改 URL 后,长度对不上,轻则小工具丢失,重则整段配置损坏。

正确做法:使用会处理序列化的工具——推荐:

  • 插件:Better Search Replace(官方插件说明即为此场景设计)
  • 或服务器上有 WP-CLI 时:wp search-replace

4.2 先进得了后台:用 wp-config.php 临时覆盖

若新域打开后一直跳回旧域、无法登录,在 wp-config.php 靠前位置(<?php 之后)临时加入:

define( 'WP_HOME', 'https://www.new.com' );
define( 'WP_SITEURL', 'https://www.new.com' );

把示例换成你的新域名完整地址(含 https://,是否带 www 与最终方案保持一致)。

这两行会覆盖数据库里的 home / siteurl,用于应急进后台。进后台并完成全库替换后,应删除这两行,避免长期「配置与数据库双头管理」。

4.3 备选:直接改 wp_options 两行

在 phpMyAdmin 打开表 wp_options(前缀以你的为准),找到:

  • option_name = siteurl
  • option_name = home

option_value 改成新域名(含协议)。这只能解决「站点地址」本身,文章内容、图片 URL、小工具里的旧域仍在,所以还要做 4.4。

4.4 用 Better Search Replace 做全库替换(推荐)

插件官方推荐迁移换域流程大意如下(与官方 FAQ 一致):

  1. 备份当前新库。
  2. 确保已能用新域登录后台(可用 4.2 临时常量)。
  3. 安装并启用 Better Search Replace
  4. 进入「工具 → Better Search Replace」:
    • 搜索:https://www.old.com(按你真实旧地址填写,注意 http/https、是否 www)
    • 替换为:https://www.new.com
    • 选择全部表
    • 先勾选 Dry Run(试运行),确认匹配数量合理
    • 取消试运行,正式执行
  5. 若旧站同时存在 http://https://、带 www 与不带 www,可能需要分次替换常见变体,每次仍先 Dry Run。
  6. 完成后删除 wp-config.php 里临时的 WP_HOME / WP_SITEURL
  7. 到「设置 → 固定链接」点击保存一次,重新生成重写规则。

有 WP-CLI 时等价思路:

wp search-replace 'https://www.old.com' 'https://www.new.com' --all-tables --dry-run
wp search-replace 'https://www.old.com' 'https://www.new.com' --all-tables

(确认 dry-run 结果无误后再去掉 --dry-run 正式执行。)

4.5 协议与主机头必须统一

最终全站应统一为一种规范形式,例如全部使用:

https://www.new.com

避免库里同时残留:

  • http://www.new.com
  • https://new.com
  • https://www.old.com

混用会导致登录循环、资源混合内容(锁图标报警)、部分图片裂图。


第 5 阶段:伪静态、缓存、功能复测

5.1 重新保存固定链接

后台「设置 → 固定链接」→ 直接「保存更改」(即使规则看起来没变)。
这一步用于刷新 Apache .htaccess 或提醒你去核对 Nginx 伪静态。

5.2 Nginx(宝塔)伪静态

站点 → 伪静态 → 选择 WordPress 规则并保存。规则缺失时,首页可能正常但文章全是 404。

5.3 清缓存

  • 页面缓存插件缓存
  • CDN 缓存(若有)
  • 浏览器缓存

否则你以为「没迁成功」,其实只是旧缓存。

5.4 功能复测清单

  • 首页、文章页、分类页可打开
  • /wp-admin/ 可登录,不再跳旧域
  • 特色图片与文章内图片正常
  • 菜单、小工具、页脚链接指向新域
  • 表单提交、邮件通知(如有)
  • 若有电商:下单、支付回调域名是否需在支付平台改白名单

第 6 阶段:换域名后的 SEO——用 301 接住旧收录

域名变了,搜索引擎仍可能短期带着旧 URL。要用 301 永久重定向 把旧地址指到新地址,尽量保留权重与书签流量。

6.1 旧域名还要留多久

建议:旧域名的解析与主机(或至少能承载跳转的服务)保留一段时间(常见实践是数月以上,视业务重要性而定),专门负责 301。旧域一停,搜索引擎只能看到失效,而不是「迁移」。

6.2 Nginx 整站 301 示例

旧域名对应的站点配置中(示例):

server {
    listen 80;
    listen 443 ssl;
    server_name www.old.com old.com;

    # SSL 证书配置按面板生成结果保留/填写

    return 301 https://www.new.com$request_uri;
}

含义:旧域任意路径跳到新域相同路径。若你换域时 URL 结构也变了,需要额外做一对一映射,不能只靠这一条。

6.3 Apache .htaccess 示例

若旧站是 Apache,可在旧站根目录使用:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteRule ^(.*)$ https://www.new.com/$1 [R=301,L]

6.4 Search Console 与收录收尾

  1. 在 Google Search Console(及你使用的其它站长平台)添加并验证新属性
  2. 提交新站点地图(SEO 插件生成的 sitemap)。
  3. 若平台提供「更换域名」类工具,按官方流程使用。
  4. 抽查若干旧文章 URL,确认返回 301 且落在正确新 URL(可用浏览器开发者工具 Network,或线上 HTTP 状态检查工具)。
  5. 更新:统计代码、广告平台、支付、企业微信/公众号菜单、名片与邮件签名中的域名。

两种主流搬家方式怎么选

方式适合谁优点注意
手动:打包文件 + 导出 SQL + 搜索替换想可控、环境特殊过程透明,便于排错步骤多,URL 替换必须用序列化安全工具
迁移插件(如 All-in-One WP Migration、主机商迁移工具等)中小站、求快步骤少注意免费版体积限制;迁完仍要复查 URL、SSL、伪静态

无论用哪种,迁完后的验收清单不能省。插件不是免检金牌。


翻车对照表(迁完立刻能用)

现象最可能原因处理
建立数据库连接出错wp-config 库信息错核对 DB_NAME / USER / PASSWORD / HOST
后台总跳到旧域名siteurl/home 仍是旧域WP_HOME/WP_SITEURL 应急,再全库替换
图片仍指向旧域或裂图内容里旧 URL 未替换干净Better Search Replace / WP-CLI 再跑变体
文章全 404,首页正常伪静态未配或固定链接未刷新保存固定链接 + 检查 Nginx/Apache 规则
登录死循环http/https 或 www 不一致统一协议与主机头,清 cookie 再登
样式丢失缓存或混合内容清缓存;确保资源已是 https 新域

可复制验收清单

  • 本地已有完整文件包 + SQL
  • 新库导入成功,wp-config 与表前缀正确
  • 新域可进后台,且不再被迫跳旧域
  • 已用序列化安全工具完成旧域 → 新域替换(换域名时)
  • 已删除临时 WP_HOME / WP_SITEURL(若曾添加)
  • 固定链接已重新保存,伪静态正确
  • SSL 正常,无大面积混合内容
  • 旧域 301 到新域(换域名时)
  • Search Console / 统计 / 支付等外部依赖已更新
  • 表单、登录、关键转化路径已人工点测

结语

WordPress 迁移真正难的不是「把文件拷过去」,而是 URL 在数据库里的一致性,以及换域名后的 301 与验收
按「备份 → 新环境 → 导入 →(换域则)安全替换 → 伪静态与复测 → SEO 收尾」推进,可以把「迁完站废了、收录断了」的风险压到最低。

若你是「只换主机不换域」,把精力放在数据库连接、PHP 版本与伪静态;若「换了域名」,把 Better Search Replace(或 WP-CLI)和旧域 301 当成必做项,而不是可选优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值