跳转至主要内容

Ghost 博客更换新域名需要进行的操作

ghostart

在不得已需要更换 Ghost 博客域名时,进行正确的操作有助于降低对网站 SEO 的影响。

如果旧域名还会续费再好不过,如果打算不再续费了,最好提前一两个月就开始操作,而不要等到域名快过期的时候,这样可以留更多时间来进行域名权重转移和网站重新收录。

备份

  1. 在旧域名的基础上从网页端导出备份文件,并在服务器上打包下载备份压缩包。
  2. 下载旧域名的 sitemaps 文件(在旧域名末尾添加如下 /xxx.xml 访问):
sitemap.xml
sitemap-pages.xml
sitemap-posts.xml
sitemap-authors.xml
sitemap-tags.xml

打开链接之后通过浏览器保存到本地

设置新域名

  1. 添加新域名的解析到服务器 IP
  2. 切换 Ghost 用户并进入安装目录,设置新域名并生成证书:
ghost config url https://www.new.com

替换 new.com 为新域名

  • 申请证书
ghost setup nginx ssl
  • 配置完了 www 二级域名再配置主域名
ghost config url https://new.com
ghost setup nginx ssl
  • 检测并重启 Ghost 以生效:
ghost doctor
ghost restart

处理 Sitemaps 文件

  1. 创建文件夹并上传旧域名的 sitemaps 文件进去:
mkdir -p /var/www/old-domain-sitemaps
chown -R www-data:www-data /var/www/old-domain-sitemaps

修改 Nginx 配置

  1. 修改旧域名的 Nginx 配置,重定向到新域名对应的链接:
cd /etc/nginx/sites-available && ls
  • 先备份旧域名的配置文件(注意替换为对应的域名):
cp old.com-ssl.conf old.com-ssl.conf.bak
vim old.com-ssl.conf # 或者使用 nano old.com-ssl.conf
  • 删除全部原内容,替换为以下内容:
server {
    listen 443 ssl http2;
    server_name old.com; # 替换为旧域名

    # 1. SSL 配置 (必须保留,否则无法建立 HTTPS 连接进行跳转)
    ssl_certificate /etc/letsencrypt/old.com/fullchain.cer; # 替换域名
    ssl_certificate_key /etc/letsencrypt/old.com/old.com.key; # 替换域名
    include /etc/nginx/snippets/ssl-params.conf;

    # 2. 静态 Sitemap 服务 (拦截爬虫请求,返回旧链接列表)
    location ~ ^/sitemap.*\.xml$ {
        root /var/www/old-domain-sitemaps; # 指向刚才创建的文件夹
        try_files $uri =404;
    }

    # 3. Let's Encrypt 证书续期验证 (防止证书过期)
    location ^~ /.well-known/acme-challenge/ {
        allow all;
        root /var/www/ghost/system/nginx-root; # Ghost 默认 webroot
        try_files $uri =404;
    }

    # 4. 全站 301 重定向 (核心权重转移)
    location / {
        return 301 https://new.com$request_uri; # 替换为新域名
    }
}
  • 检测 Nginx 配置文件并重载以生效:
sudo nginx -t && sudo systemctl reload nginx

Google Search Console

  1. 在 Google Search Console 中为新域名创建新的 Property,并在旧域名设置中地址更改
  2. 在新域名 Property 中提交站点地图
  3. 进行检查:
    • 访问旧域名的链接是否会跳转到新域名对应的链接(首页、博客文章、Pages 等)
    • 访问旧域名的几个 sitemap 链接,页面空白,查看网页源代码是否包含旧域名
  1. 在旧域名 Property 中重新提交一次站点地图,加速发现 301 重定向。否则可能要等数天甚至数周。点击已提交的 Sitemap 可以查看上次读取时间。
sitemap-before-resubmit
重新提交前
sitemap-after
重新提交后

替换文章中的直链

导出新的 .json 格式备份文件,用 VS Code 打开搜索旧域名,找到博客文章中直接链接到旧域名的部分,编辑对应的文章替换为新域名。可以减少服务器请求和重定向次数,提升爬取效率。

相比替换之后删除网站全部内容再导入备份,手动操作反而不容易出错。

更新外链

如果有其他网站的高质量外链,建议更新为新域名对应的链接。