WordPress网站搬家到新域名:数据库替换加301,后台也能救回

倪叶明

作者

更新于

换域名最容易翻车的地方,不是数据库替换这一步,是替换完发现后台进不去了。前后台一起黑,人一下就慌了,其实数据库里就两个字段在管这件事。WordPress网站搬家到新域名,官方把它归在Migrating WordPress的「Changing Your Domain Name and URLs」下面,整套动作拆开是五步:先备份,数据库里把旧域名换成新域名,改正WordPress Address与Site Address两个字段,旧域名301到新域名,最后去Search Console提交改地址。

对做出海独立站的人来说,换域名不是换个门牌。搜索引擎认的是URL,站里所有内链、图片地址、canonical全写在数据库里,域名一动,这些记录都指向旧地址。后台进不去是最容易卡住的地方,按顺序来,先把地址字段救回来,后面都能收拾。

  • 两个地址字段控制站点位置,都要带https://,结尾不带斜杠
  • 官方给了四条手工改地址的路子,并说一般应优先用工具
  • 改地址工具的信号转发和301至少保持180天
  • 旧域名建议至少继续付费一年
  • 中型站迁移后要几周或更久才逐步显示新URL,大站更久

这篇只讲「域名变了」这一条线,文件怎么搬、主机怎么换看站内那篇WordPress网站迁移教程,建站基础看WordPress建站。

换域名到底改了什么:数据库里还留着旧域名

两个地址字段:WordPress Address (URL) 与 Site Address (URL)

WordPress的站点地址存在数据库的options表里。后台Settings -> General页面上有两个字段,一个叫WordPress Address (URL),一个叫Site Address (URL)。单站点安装里,这两个字段决定WordPress装在哪、访客从哪进来。Site Address是访客在浏览器里输入的地址,WordPress Address是核心文件所在的地址。

这两个字段名字像,作用不一样。两个值可以填同一个地址,也可能不一样,取决于核心文件装在哪。改域名时两个都要改,漏一个,后台或前台必有一边打不开。官方文档里有一句关键的话,这两个设置控制后台和前台URL的显示,并在整个WordPress代码中被使用。

填法有个硬要求:都要带https://,结尾不带斜杠。写错一个,后台可能直接登不进去。

为什么后台和图片会一起坏:这两个设置在整个WordPress代码里被使用

后台进不去,通常是Site Address还指着旧域名。你打开wp-login.php,WordPress按数据库里的地址把你往旧域名上跳,旧域名如果已经不能访问,或者证书不对,登录页就出不来。

官方说这类手工改地址的需求,通常发生在有人改了一个或两个设置后发现站点不能正常工作了。也就是说,官方文档本身就是给这种情况准备的,不是给正常迁移准备的。正常迁移,官方建议用工具。

先分清:换域名和换主机不是一件事

Google把「域名变更,例如example.com变成example.net,或合并多个域名或主机名」列为站点迁移的一种。只换主机、URL不变,属于基础设施变更,官方让看另一篇文档,不走站点迁移这套。两件事混在一起做,出问题不好判断是哪一步引起的。换域名对SEO的影响,站内这篇网站域名更换对SEO的影响讲得更细。

动手前先备份,数据库和文件分开备

官方在直接改数据库那一节,第一句要求就是备份数据库,并把副本存到站外。站外是指不要放在同一台主机上,主机出问题、手滑把库删了,站外那份还在。

备份分两块。数据库一份,包含文章、设置、用户、插件数据。wp-content目录一份,包含主题、插件文件、上传的图片。两块都要,只备数据库,主题文件丢了还得重做;只备文件,文章和设置全没了。怎么分两步备,站内这篇数据库和文件分两步备写了具体操作。备份文件下下来,确认能打开,别拿到一个空包。

Google还建议一次只改一件事。要换域名、换CMS、换版式,一件一件来:先换域名,再换版式。两件事一起做,流量掉了不知道是哪件引起的。

第一步:把新域名解析到主机,站点能访问

替换数据库之前,新域名要先能访问到老站。做法两步:

  1. 新域名的DNS指向老站那台主机
  2. 主机面板上把新域名绑到同一个站点目录

DNS记录怎么加,站内这篇更换域名DNS解析有步骤。为什么要先做这一步:数据库替换完,你要打开新域名验证图片、内链、后台。域名解析没生效,打开的是旧站或者打不开,你没法判断替换是成功还是失败。先让新域名指向老站,用新域名打开还是老内容,再动数据库。

怎么回查。浏览器直接输新域名,看打开的是不是同一个站。是,继续下一步;不是,先查DNS有没有生效、主机有没有绑定。这一步不过,后面所有操作都白做。

第二步:数据库里把旧域名替换成新域名

官方说搬站点时有时需要手工改数据库里的数据,但已有许多工具可以辅助,一般应优先用这些工具,而不是手工改。

Search & Replace插件页Replace a Domain URL功能与结尾斜杠错误示例
结尾斜杠两边必须一致,否则URL会被拼坏。

用工具替换:官方口径是工具优先于手工改库

Search & Replace插件是其中一个。官方页说它有一个「Replace a Domain / URL」功能,用于快速简单地转移或迁移WordPress站点。第二个功能是完整支持serialized data。serialized data是WordPress把一组设置打包存进数据库的格式,直接拿文本编辑器替换容易把数据改坏。插件说它完整支持这种数据,意思是不用你手动处理。

插件可以选dry run或下载SQL文件。dry run是先跑一遍看会改哪些地方、命中多少条,不真正写库。正式替换前先跑一次dry run,看着结果对再动手。

替换清单怎么写:Search For与Replace With两列,结尾斜杠两边必须一致

插件页上有一个错误示例值得记住。Search For写http://web.com/wordpress/,Replace With写http://neuweb.com/wordpress,结尾少了一个斜杠,结果URL会变成http://neuweb.com/wordpresscontent/…这样。正确写法是两边都保留结尾斜杠,URL才会变成http://neuweb.com/wordpress/content/…这样。

插件页特别说了一句,这个插件严格按Replace With里写的内容替换,写什么就是什么。所以替换清单不能凭感觉写,要把旧域名、新域名、目录路径一条条列出来,两列对齐,斜杠逐条核对。

除了域名本身,还要考虑几种写法:http和https两种协议、带www和不带www、域名出现在正文里的绝对链接。清单列全,替换一次到位;漏一条,后面还要再跑一次。

手工路线:phpMyAdmin里改wp_options的siteurl与home两个字段

不用插件,手工也能改。进phpMyAdmin,选WordPress数据库,找到wp_options表,表前缀可能不是wp_,装站时改过前缀的按自己的来。在option_name下找siteurl,点Edit Field,把option_value改成新地址,点Go保存。再找home,同样改。

这条路线只改两个地址字段,正文和设置里的旧域名不会被替换。适合站点很小、内容不多的站。内容多的站,正文里几百条旧链接,手工一条条改不现实。

出问题怎么回查

替换完,先刷新首页,看图片能不能显示、样式对不对。再看几篇文章的内链,点进去是不是新域名。最后访问/wp-login.php,看登录框出不出来。这几样都对,这一步算过。

第三步:进不去后台时,按这四条路救回来

后台进不去,官方给了四种方法。从简单的开始,一种不行再换下一种。

路一 wp-config.php加两行define

打开wp-config.php,加两行:

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

把example.com换成你的新域名。这两行把地址写死在配置文件里,站点立刻按新地址跑。代价是以后不能在Settings -> General页面改这两个地址了,官方明确说用这个方法就不能在设置页改。临时救急可以,长期用要清楚这个限制。

路二 functions.php加两行update_option

通过FTP取当前主题的functions.php,在文件开头、紧接PHP起始标签之后加两行:

update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );

原位置传回,然后加载登录页或后台页几次,站点应该恢复。官方特别强调,这段代码不要留在functions.php里,站点恢复后要删掉。

路三 RELOCATE常量

在wp-config.php的define语句之后、注释行That's all, stop editing!之前,加一行:

define('RELOCATE',true);

然后在浏览器里手动打开新域名下的wp-login.php,比如https://www.example.com/wp-login.php,正常登录。登录后到Settings > General确认两个地址正确,保存。

RELOCATE打开时,站点URL会自动更新成你访问登录页所用的路径。它只让后台在新URL上跑起来,不会修正其他部分,图片、正文链接还得手工改。官方说这一行留在wp-config.php里不安全,某些配置下攻击者可以把站点URL改成任意值。用完必须删掉那一行。

路四 phpMyAdmin直接改库

后台完全进不去,前面几条都不方便操作,就走数据库。方法和第二步的手工路线一样:phpMyAdmin里找wp_options,改siteurl和home两个字段。

出问题怎么回查

四条路改完,都做一个验证:浏览器访问新域名下的/wp-login.php。能出登录框,说明地址字段对了。出不来,再看wp-config.php有没有写错、数据库里两个字段有没有保存成功。

第四步:旧域名301到新域名,一条通配就够

旧域名不能直接停掉,要在服务器上配置301,把所有路径永久跳转到新域名的对应路径。Google说最简单的域名迁移可以不用生成旧URL列表,直接用服务器端通配符重定向就行。

301会不会丢权重,这是换域名时问得最多的问题。Google的原话是301和其他永久重定向不会造成PageRank损失。所以该做的跳转要做,不做才是把旧域名积累的东西白白扔掉。

保持多久。官方要求重定向至少保持180天,如果还能看到来自Google Search的流量,就保持更久。180天是下限,不是到点就能停。服务器上没有现成规则可抄,不同的主机面板写法不一样,按主机商给的说明配置。配完一定要用浏览器实测,不要只看配置文件写没写。

怎么回查。浏览器输旧域名首页,看是不是跳到新域名首页。再随便挑几个旧文章URL,看是不是跳到对应的新文章。跳错或者没跳,检查服务器配置里的域名有没有写全,带www和不带www都要覆盖。

第五步:Search Console提交改地址,别踩这三个坑

Search Console的改地址工具,作用是告诉Google这次变更,并把搜索结果从旧站迁到新站。用它的时间点有讲究:官方说要在已经完成迁移和重定向之后再用。

提交前有四个前置条件。旧站和新站两个属性都得是你的,而且用同一个Google账号管理。只能用于域名级属性,路径级属性不行,比如不能迁example.com/petstore/这种。旧域名的所有子域变体都要在Search Console验证,包括www和非www,当前没在用也要验。旧域名每个变体都要单独提交一次,指定example.com不会自动迁www.example.com或m.example.com。

三个坑

坑一,链式迁移。从A提交改地址到B之后,不能立刻再提交B到C。中间要等,等B站稳定下来再考虑下一步。

坑二,多个站合并迁到同一个位置。A、B、C三个站一起迁到D,官方说会造成混乱和流量损失。要迁就一个一个来,等前一个流量稳定再迁下一个。

坑三,把www与非www之间的切换当成域名迁移。官方说这种情况用canonical标签和重定向,不要用改地址工具。

数字和回查

工具会先跑几项迁移前检查。关键项不过,必须修完才能继续;非关键项不过,只给警告,请求可以继续。所以看到预检查结果,先分清哪些是红的、哪些是黄的,红的先修,黄的自己判断要不要处理。

提交后,所有被迁出和迁入的站点会在Search Console显示迁移进行中的通知,通知显示180天。改地址请求也可以在提交后180天内取消。取消的步骤里有一条容易漏:要移除服务器上之前设置的301指令,否则Google下次抓取时还会按指令继续重定向。

180天之后,Google不再承认新旧站之间的关系,旧站如果还存在且可抓取,会被当作无关站点。重定向那边官方要求有流量就保持更久,两个期限都是180天起步。

数字和限制:做这件事要盯的几个数

项目 数字 说明
301与改地址信号保持期 至少180天(约6个月) 还能看到来自Google Search的流量就保持更久
改地址请求可取消期 180天内 取消前先移除服务器上的301指令
旧域名继续付费 至少1年 防止别人买下弃用域名用于恶意目的
新URL逐步替换旧URL 中型站几周或更久,大站更久 迁移期间排名会有临时波动
Search & Replace插件门槛 PHP 5.6+、WordPress 4.0+ 插件页注明未在最近3个大版本测试,可能不再维护

这五个数里,最容易被忽略的是旧域名续费。站搬完了,很多人想着旧域名没用了不续了,官方建议至少再付一年,防止别人买下这个弃用域名拿去做坏事,反过来影响你新站的名声。

Search & Replace插件门槛那行要单独看一眼。插件页顶部提示没在最近3个WordPress大版本上测过,可能已不再维护,跟新版WordPress一起用可能有兼容问题。用之前先在自己站上跑dry run,别拿生产库直接试。

换完还是打不开、图片不显示、排版乱,按这个顺序查

从容易出错的地方开始。先看地址字段。进Settings -> General,看WordPress Address和Site Address两个字段,是不是都带https://,结尾有没有多写斜杠。两个字段值不对,后台和前台至少有一边打不开。

再看替换残留。主题选项、小工具、自定义菜单里可能还存着旧域名。用插件的dry run再跑一次,看还有没有命中。正文里的内链和图片地址,也要抽几篇点进去看。排版乱,先查主题选项和小工具里有没有旧域名残留,再跑一次dry run看还有没有命中。

接着查HTTPS。新域名要有一张覆盖它的SSL证书。证书没装或者只覆盖了旧域名,浏览器会报不安全,页面可能打不开。站内这篇HTTPS后打不开页面讲了几种情况。

最后查固定链接。后台Settings -> Permalinks页面,什么都不改,直接点一次Save Changes,让伪静态规则重新生成。换域名后个别页面404,可以先做这一步。固定链接结构怎么选,站内这篇固定链接结构怎么选讲得细。

三个真实用户踩过的坑

三个用户在Search & Replace插件页上的公开评价,都是换域名相关的,时间点写清楚。

pmheart6,2025年9月16日的评价。他说自己换了URL,涉及12张表、58条记录,站点不大但效果不错。他还提到插件页提示没在最近几个大版本测试过,他实际在php8.2x和WP 6.8.2下能用。这条说明插件在小站上还能跑,但以后能不能一直用不好说。

Denny Müller,2025年3月6日的评价。他说自己多次用这个插件处理不同网页,尤其是网页搬到其他域名的时候,效果不错。他提到替换前可以先测试看结果。这就是dry run的用处,先看命中多少条、改哪些地方,确认没问题再写库。

applicado,2024年6月6日的评价。他说插件搜索替换后会生成一个新数据库,需要下载再导入,但插件自己生成的SQL文件导入时报「不是有效的sql文件」。这条提醒很具体:不要只依赖插件自己生成的备份文件,动手前自己另外存一份数据库备份。插件出问题,你还有退路。

这三条评价放在一起看,能得出一个操作习惯:工具可以用,dry run先跑,备份自己另存。工具的评价再好,也不等于你的站不会出问题。

用AI帮哪几步,哪几步必须自己点

AI能帮的第一件事,把旧域名、新域名、表前缀整理成一张替换清单,两列分别是Search For和Replace With,重点检查结尾斜杠两边是否一致。第二件,把官方给的四条改地址方法按「能不能进后台」分成两条路径,生成排查顺序。第三件,把Search Console改地址工具的前置条件做成勾选清单,逐项对照。第四件,把301规则按旧URL到新URL生成对照表,供人工核对。

猎者出海的AI Agent在这件事上能干的是整理资料、对照官方文档、出改稿单这类活。你把旧域名和新域名给它,让它按官方口径列清单,比你自己从头回忆漏了哪一条要稳。

但有三步必须自己点。phpMyAdmin里亲手点开wp_options表,找到siteurl和home两个字段,把option_value改成新地址后点Go保存。Search Console里打开Change of Address工具,看预检查结果是通过还是警告,再决定提交还是先修。服务器上配完301,用浏览器访问旧域名首页,看是否跳到新域名首页,据此决定重定向规则要不要改。

下面三条提示词是本文给的示例,不是官方模板,直接复制能用。

提示词一:请根据我给的旧域名和新域名,生成一张Search & Replace用的替换清单,两列分别是Search For和Replace With,每条都保留结尾斜杠,并标出哪些条目容易因为斜杠不一致把URL拼坏。

提示词二:我的WordPress站点换域名后进不去后台,请按「wp-config.php、functions.php、RELOCATE、phpMyAdmin直接改库」四种官方方法,给我一份从易到难的排查顺序,每步写清改哪个文件或哪个表字段、改完看什么现象判断成功。

提示词三:请把Search Console改地址工具的前置条件整理成勾选清单,包括新旧属性是否都是owner、是否同一账号、是否域名级属性、子域变体是否都验证过、301是否已生效,每项后面留一个「已确认 / 未确认」。

常见问题

换域名后旧域名的内容会从搜索结果里消失吗

不会马上消失。Google不会把旧站从索引里抹掉,旧站URL如果仍可访问、新站又没有对应页面,仍可能出现在搜索结果里。新站有对应页面时,从旧站做重定向并提供rel=canonical标签,能减少旧URL出现的数量。

改地址工具提交后还能撤回吗

可以,提交后180天内能取消。取消步骤里要先移除服务器上之前设置的301指令,不移除的话Google下次抓取还会按指令继续重定向。每个不想再迁的旧站都要单独取消一次。

Search Console顶部提示「Other sites moving to this site」是什么意思

意思是这个站点的某个属性所有者,用改地址工具告诉Google有网站从另一个域名迁到了这里。看到这个提示说明有人对这个站发起了改地址操作,你自己提交的或者同一账号下其他人提交的都算。

换域名期间流量会怎么变

迁移期间排名会有临时波动,中型站点可能要几周或更久才逐步显示新URL,大站更久。随着Google Search逐步把用户从旧站导向新站,会看到其他站点的流量加到本站流量上。

用Multisite的站能直接照这篇做吗

不能直接照做。官方明确说这些改地址指引只适用于单站点安装,用WordPress MultiSite的需要手工编辑数据库。Multisite换域名走的是域名映射那套,子站登录还可能需要在wp-config.php里加COOKIE_DOMAIN定义。

发表评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注