域名切换会影响 SEO 吗

换域名一定会短期掉排名。用这套 301 重定向 playbook、Search Console 搬家步骤和验证命令,做对了几周恢复。

换名或迁更好的 TLD 感觉早就该做——直到你想起每条外链、每个 Google 排名、每个书签都还指向老名。换域名可行、常见、能活下来。但 301、Search Console、sitemap 这套动作必须做对,本文就是这套动作,加上真实命令。

问题背景

搜索引擎把权威性绑在 URL 上。oldsite.com/foo 排得好,权威绑在这个精确 URL。干净的 301 能把绝大部分权威传给 newsite.com/foo——几周内通常 95%+。烂迁移(不做 301、URL 不对应、canonical 错、Search Console 没迁)让排名搁浅在死站上。

判断标准

  • 换品牌,老名不合适了。
  • 多个域名合并成一个。
  • 买到更好的域名(比如 .co.com)。
  • 一个站要拆成两个,需要重新分配排名信号。

快速结论

排名重要就不要为了好看换。必须换就全套 playbook:每个老 URL 301 到对应新 URL、更新 Search Console、重提 sitemap、永久保留重定向。任何一步省了都是排名掉了爬不回来的原因。

开始前准备

  • 新域名已注册、DNS 准备好、SSL 已签发,再动任何东西。
  • 新旧域名都已在 Search Console 验证(首选 Domain property)。
  • 老 URL 清单完整——导出老 sitemap + Search Console “Pages” 列表。

实操步骤

  1. 新域名备好。 先在新域名上把 SSL 签发——curl -vI https://newdomain.com 返回 HTTP/2 和有效证书之前不要切 DNS。

  2. 每个老 URL 映射到新 URL。 导出老 sitemap 建 CSV:

curl -s https://oldsite.com/sitemap.xml \
  | grep -oE '<loc>[^<]+</loc>' \
  | sed -E 's/<\/?loc>//g' > old-urls.txt

awk '{ sub(/oldsite\.com/, "newsite.com"); print $0 "," $0 }' old-urls.txt > url-map.csv
# 路径要改的 URL 手工调一下
  1. 每个老 URL 配 301 到新对应。 简单情况用通配符,特殊情况打补丁。老域名上 Firebase 配置:
{
  "hosting": {
    "redirects": [
      { "source": "**", "destination": "https://newsite.com:dest", "type": 301 }
    ]
  }
}

Vercel vercel.json

{
  "redirects": [
    { "source": "/(.*)", "destination": "https://newsite.com/$1", "permanent": true }
  ]
}

Apache .htaccess

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

Nginx:

server {
  listen 443 ssl;
  server_name oldsite.com www.oldsite.com;
  return 301 https://newsite.com$request_uri;
}
  1. curl 抽样验证:
while read url; do
  printf '%s -> ' "$url"
  curl -sI "$url" | awk 'tolower($1)=="location:"{print $2}'
done < <(shuf -n 20 old-urls.txt)
# 每行输出都该是对应新 URL,不能有链
  1. Search Console 加新域名 property 并验证。 Domain property + TXT,HTTP/HTTPS/www 各变体一次性覆盖。

  2. 老 property 用「Change of address」工具。 Settings → Change of address → 选新 property。Google 会等工具确认 301 已生效。

  3. 新 sitemap 提交,老 sitemap 重提。 Search Console → Sitemaps。新域 robots.txt 指新 sitemap:

# newsite.com 上的 robots.txt
User-agent: *
Allow: /
Sitemap: https://newsite.com/sitemap-index.xml
  1. 新站 canonical 全指新域。 Astro layout 里:
<link rel="canonical" href={`https://newsite.com${Astro.url.pathname}`} />

然后 grep build 产物确认:

grep -ROIE 'rel="canonical"' dist | grep -v newsite.com
# 任何输出都是漏到非主域的 canonical,必须修
  1. 老域名至少续 2 年,重定向永久保留。 给续费设日历提醒——老域名失效那一刻,转移过来的权威立刻死。

  2. 每周看 Search Console。 4-8 周会先掉再回。Performance → 对比前 90 天。前两周尽量不要发新内容,让信号干净。

执行检查清单

  • 301 规则覆盖 **,至少 20 条随机 URL 用 curl -I 验证过。
  • 新站 canonical 只指新域——grep build 产物验证。
  • 老 Search Console property 已经提交「Change of address」。
  • 新 sitemap 已提交;老 sitemap 重提以触发重爬。
  • 老域名开了自动续费,付到 2 年以上。
  • 切换前 48 小时把两边 DNS TTL 调到 300s。

上线后验证

  • 老 URL 抽样在 Search Console URL Inspection 应显示 “Page with redirect”。
  • 新域 coverage 上升,老域 coverage 同步下降——这是迁移生效的样子。
  • 老 / 新 property 的 clicks/impressions 每周对比——总和应在 8 周内回到迁前水平。

容易踩的坑

  • 忘做 301——每条外链撞 404,权威化为乌有。
  • 用 302(临时)替 301(永久)——搜索引擎区别对待,302 不传权威。检测:curl -I 看到 HTTP/2 302
  • 搬家同时重构 URL——两件大事叠在一起,恢复更乱更慢。先搬家,后重构。
  • Search Console 没用「Change of address」——Google 最终能搞明白,但慢。
  • 老域名让它过期——域名失效 301 就死,转移过来的权威也跟着死。
  • 新站 canonical 标签没更新——og:url<link rel="canonical"> 都要指新域。
  • 长链 redirect(old中转new)。永远只跳一次。

FAQ

  • 恢复要多久?: 多数站 4 周恢复 80%,8 到 12 周完全恢复。权威能传但 Google 要时间重新排名。
  • 外链会丢吗?: 直接访问会,但 301 保留几乎全部 SEO 价值。原站上的链接还在,301 让它们仍然算数。
  • 一年后能下老站吗?: 不要。域名和重定向永久保留——除非把每个老 URL 都通过 Search Console 走完移除流程。
  • 社媒和邮件里的提到怎么办?: 能改的改(资料、简介),剩下的没事——301 透明转发。
  • HTTPS 到 HTTPS 有讲究吗?: 有。从 https://oldsite.com 直接 301 到 https://newsite.com,不要走 HTTP 中转。浏览器会拦截混合协议链。

相关阅读

标签: #独立开发 #域名 #SEO #Technical SEO