





















很多人以为WordPress换域名就是在后台Settings(设置) → General(常规)里改个地址,保存完事。实际上改完之后你会发现:文章里的图片全部挂了、内链还在指向旧域名、甚至后台直接打不开。
这不是bug,是WordPress的设计机制决定的,WordPress把域名以绝对路径的形式存在数据库里,文章内容、图片附件URL、自定义字段,每一条都带着完整的旧域名,光改后台设置只改了两个字段,剩下几百上千条记录还是旧的。
这篇把换域名的完整流程讲清楚,包括换之前必须做的备份、三种替换方法按难度排列、以及换完之后怎么做301重定向保住已经积累的SEO权重。
备份,备份,备份。(重要是事情说3遍)
新域名解析到网站服务器 ipv4 地址。
可参考:域名解析教程
数据库替换操作一旦执行就没有撤销键,写错一个字符可能导致数据库内容大规模损坏。不管你选下面哪种方法,操作前都必须先完整备份一次数据库。
两种备份路径:
进cPanel → phpMyAdmin,左侧选中WordPress数据库,点顶部Export标签,格式选SQL,点Go下载备份文件到本地。这个SQL文件是你的救命稻草,存好不要删。
可参考:cPanel MySQL数据库+phpMyAdmin教程
或者用WordPress插件备份,参考WordPress自动备份设置教程,装好备份插件后手动触发一次完整备份,确认备份文件可以正常下载。
备份完成后,才开始下面的操作。
在域名注册商(比如Namecheap)后台,把新域名的A记录指向你的服务器IP,同时在主机控制面板(cPanel或SPanel)里把新域名绑定到WordPress网站目录。
DNS生效时间通常30分钟以内,等新域名能访问到你的WordPress站(即使样式乱掉也正常)再进行下一步。
新域名DNS生效后,先用旧域名登录WordPress后台(新域名此时可能还跳回旧域名),进入Settings → General(设置 → 常规):
https://blog.ctzpj.com两个都改,滑动到页面底部点Save Changes保存。
保存后后台可能直接跳转失败,因为WordPress已经认为新域名才是正确地址,但数据库里的内容还是旧域名,这是正常的,接着往下做第三步。
如果保存后连后台都进不去了,用下面这个备用方法:进服务器的wp-config.php文件(在WordPress根目录)
在文件顶部(<?php那行下面)加入这两行:
define('WP_HOME', 'https://blog.ctzpj.com');
define('WP_SITEURL', 'https://blog.ctzpj.com');
加完保存,这两行代码会强制覆盖数据库里的地址设置,让你能重新进入后台,进去之后再在Settings → General里改好地址,然后把wp-config.php里这两行删掉(否则后台Settings里的地址字段会变成灰色没法修改)。
这一步才是换域名的核心。旧域名散落在数据库的多张表里:wp_options(站点设置)、wp_posts(文章内容和附件URL)、wp_postmeta(自定义字段)、wp_comments(评论里的URL)等,每一张表都需要把旧域名替换成新域名。
📥 WordPress.org下载:wordpress.org/plugins/better-search-replace/
Better Search Replace是专门做数据库字符串替换的插件,免费,支持序列化数据(这是它比直接跑SQL更安全的原因,序列化数据是WordPress用特定格式存储的数据,直接SQL替换会破坏格式,Better Search Replace会正确处理这些数据)。
操作步骤:
WordPress后台安装并激活Better Search Replace,进入Tools(工具)→ Better Search Replace。
在表单里填写:
https://olddomain.comhttps://blog.ctzpj.com点Run Search/Replace,看到演练结果显示的替换数量合理(比如几百到几千条都正常,0条说明旧域名写错了)之后,取消勾选Dry Run,再跑一次,这次才是真正替换。
为什么推荐这个方法:
如果WordPress后台完全进不去,无法安装插件,用这个方法直接在数据库层面替换。
进入cPanel 或者 宝塔面板 数据库 → phpMyAdmin,左侧选中WordPress数据库,点顶部SQL标签,粘贴以下语句(把旧域名和新域名替换成你的实际域名,格式带https://):
UPDATE wp_options SET option_value = replace(option_value, 'https://旧域名.com', 'https://新域名.com');
UPDATE wp_posts SET post_content = replace(post_content, 'https://旧域名.com', 'https://新域名.com');
UPDATE wp_posts SET guid = replace(guid, 'https://旧域名.com', 'https://新域名.com');
UPDATE wp_posts SET post_excerpt = replace(post_excerpt, 'https://旧域名.com', 'https://新域名.com');
UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'https://旧域名.com', 'https://新域名.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'https://旧域名.com', 'https://新域名.com');
点执行,6条语句覆盖了数据库里旧域名出现的主要位置。
注意:这个方法不处理序列化数据,如果你的主题或插件用了序列化格式存储数据(很多高级主题选项、WooCommerce配置会这样存),那部分数据里的旧域名不会被替换。执行完后如果发现某些样式或功能异常,大概率是序列化数据没被替换,这时候需要用方法A的插件补一遍,或者用方法C的wp-cli命令(wp-cli的search-replace命令自动处理序列化数据)。
如果你的主机支持WP-CLI(SSH可以访问,大部分VPS和部分共享主机支持),这是最彻底、最快的方法,一条命令搞定所有表,自动处理序列化数据:
wp search-replace 'https://旧域名.com' 'https://新域名.com' --all-tables
--all-tables参数确保扫描所有数据表,不遗漏任何一张。WP-CLI的search-replace命令内置了序列化数据处理,是三种方法里最彻底的。
执行完会输出每张表替换了多少条记录,检查一下数字是否合理,然后去前台验证。
替换完成后做以下检查:
① 打开网站前台,首页、文章页、分类页逐一点开,看图片是否正常显示(图片挂了通常说明wp_posts里的媒体库URL没替换干净,或者有序列化数据遗漏)。
② 检查浏览器地址栏,访问blog.ctzpj.com任意页面,确认地址栏显示的是新域名而不是跳回旧域名。
③ 右键查看页面源代码,Ctrl+F搜索旧域名,如果还有出现说明替换不完整,记下来源位置回去补替换。
④ 清除所有缓存:WordPress缓存插件(FlyingPress、WP Rocket、LiteSpeed Cache)都要清空缓存,让新域名的页面重新生成;如果接了Cloudflare,也要进Cloudflare后台清空Edge Cache。
如果旧域名曾经被Google收录、有反向链接指向、在社交媒体上分享过,这一步直接决定你换域名会不会掉排名。
301重定向的意思是告诉Google:”旧域名的所有页面已经永久搬到新域名了,请把SEO权重一并转移过去。”不做这一步,原本积累的外链价值会随着旧域名失效而消失。
在.htaccess文件里设置(Apache服务器/cPanel共享主机):
进cPanel 或 宝塔面板 → 文件管理器,找到旧域名网站目录下的.htaccess文件(记得开启显示隐藏文件),在文件最顶部加入:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?旧域名\.com$ [NC]
RewriteRule ^(.*)$ https://blog.ctzpj.com/$1 [R=301,L]
在Nginx配置里设置(VPS/Nginx服务器):
在旧域名的Nginx server块里加入:
server {
listen 80;
server_name 旧域名.com www.旧域名.com;
return 301 https://blog.ctzpj.com$request_uri;
}
设置完之后,在浏览器访问旧域名任意页面,确认跳转到新域名对应的页面(带$request_uri会保持路径一致,旧域名的/about会跳转到新域名的/about,不只是跳转到首页)。
301重定向设置好之后,Google最终会自动发现并处理域名变更,但主动提交能加快这个过程。
登录Google Search Console,如果新域名还没有添加,先按正常流程验证添加新域名的Property。添加完成后,进入Settings → Change of Address(地址变更),选择旧域名Property和新域名Property,提交地址变更申请,告诉Google这是同一个网站的永久迁移而不是新建站。
同时把新域名提交到Sitemap:进WordPress后台,Rank Math → Sitemap,找到sitemap.xml地址,复制后在Google Search Console → Sitemaps里提交,加快新域名页面的收录速度。
回头检查一下站内所有内链,确认有没有残留的旧域名链接。参考WordPress死链检测教程里讲的方法,用Broken Link Checker扫一遍,把漏网的旧域名内链逐一修正,这是外贸网站SEO内链策略里反复强调的基础工作,换完域名后是执行它的最佳时机。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。