搜索全站
百度SEO 8 分钟阅读

百度对 www 与非 www 域名的处理:主域统一与重定向设置

带 www 和不带 www 在百度眼里是两个站,权重被摊薄还互相抢收录。本文讲清主域选择依据、nginx 301 写法、WordPress 地址同步,以及在百度搜索资源平台提交改版规则的顺序。

U
UFO_PF 2023-07-31 · 阅读 8 分钟
百度 百度SEO
阅读提示
本文约 2,957 字,预计阅读 8 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:同一个首页,百度收录了两个版本

站点上线半年后去资源平台看数据,发现 mimangfei.com 和 www.mimangfei.com 各有几百条收录,标题完全一样,流量被切成两半,关键词排名轮流出现两个版本。更麻烦的是外链:早期推广时有的链接带 www,有的不带,友链交换时对方随手写成哪版的都有,两边各自积累了少量权重却都没做起来。这是典型的域名规范化(Canonicalization)问题。Google 和百度都提供了 canonical 标签作为兜底手段,但真正彻底的解法是:选一个主域,把另一个永久 301 过去,并在搜索引擎后台完成站点属性声明。

原理分析:为什么搜索引擎不自动帮你合并

搜索引擎把 URL 当作唯一标识。www.mimangfei.com/a/ 与 mimangfei.com/a/ 在协议层面是两个不同的资源,爬虫不会因为「看起来像同一个站」就自动合并。它们确实会通过内容相似度做去重,最后挑一个作为「首选版本」展示,但这个挑选过程不可控,且挑中的未必是你想要的那一个。更糟的是去重阈值并非 100%,稍有差异(比如一边挂了统计代码、一边没有)就可能两边都留索引。

方案 作用 强度 说明
301 重定向 让非主域彻底不可访问 最强 搜索引擎与浏览器都认
rel=canonical 声明首选版本 中等 兜底,不能替代 301
资源平台站点属性 告诉百度哪个是主域 辅助 需在后台分别验证
网站改版工具 加速索引替换 辅助 规则改版支持正则映射
sitemap 只含主域 引导抓取 弱 不阻止另一版被抓

选主域没有绝对标准。短域名、品牌名本身就长的,建议用裸域;需要给用户明确「这是个网站」感知的、或者要用 CNAME 接 CDN 的,用 www 更省事。关键在于一旦选定就不要再改,改主域等于再做一次整站迁移。

保姆级实操

步骤 1:确认当前两个版本的状态分布。 用 site:mimangfei.com 与 site:www.mimangfei.com 分别看收录量,再统计外链里两个版本的占比,把占比高的一边定为主域可以缩短迁移代价。

步骤 2:在 nginx 里把非主域 301 到主域。 本例以裸域为主域,把 www 永久跳转过去,注意保留 $request_uri,否则内页会全部跳回首页:

server {
    listen 80;
    listen 443 ssl http2;
    server_name www.mimangfei.com;

    # 非主域也需要有效证书,否则跳转前就报证书错误
    ssl_certificate     /etc/letsencrypt/live/mimangfei.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mimangfei.com/privkey.pem;

    return 301 https://mimangfei.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name mimangfei.com;

    ssl_certificate     /etc/letsencrypt/live/mimangfei.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mimangfei.com/privkey.pem;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
}

步骤 3:同步 WordPress 的站点地址。 用 WP-CLI 改最稳妥,它会正确处理序列化数据:

# 先 dry-run 看影响范围,确认无误再去掉 --dry-run
wp search-replace 'https://www.mimangfei.com' 'https://mimangfei.com' \
    --all-tables --precise --dry-run --report-changed-only

wp option update home    'https://mimangfei.com'
wp option update siteurl 'https://mimangfei.com'
wp rewrite flush --hard
wp cache flush

步骤 4:给页面加 canonical 兜底。 WordPress 核心的 rel_canonical() 会自动输出 canonical,但它输出的是当前访问 URL,不会跨主域纠正。配合 301 已经足够,若用了 Yoast SEO 或 Rank Math,在其「搜索外观」里确认 canonical 模板没有写死旧域名。

步骤 5:在百度搜索资源平台完成声明。 两个版本分别添加站点并完成验证,在主域站点里使用「网站改版」提交规则改版,把 www.mimangfei.com/(.*) 映射到 mimangfei.com/$1。同时在「抓取频次」里适当提高主域的抓取配额。

步骤 6:清理外部引用。 逐个联系友链站点把链接改成主域版本;推广物料、公众号自动回复里的短链也要同步更新。这一步最琐碎,但对权重合并影响最直接。

常见踩坑

  1. 跳转漏了 $request_uri,内页全部 301 到首页,百度判定为软 404,收录断崖式下跌。
  2. 案例: 某站只给 80 端口的 www 加了跳转,443 上的 www 仍可正常访问并输出 200,结果 https 的 www 版本继续被抓取收录,半年都没合并干净。
  3. 非主域没有配置证书,用户从旧外链进来先看到证书告警,跳转根本没机会执行。
  4. 数据库用裸 SQL 替换域名,wp_options 里的序列化字段长度没同步,后台小工具全部消失。
  5. 改完主域又改 URL 结构,导致 301 出现跳转链(www 旧 → 裸域旧 → 裸域新),百度对多跳 301 的处理明显变慢。
  6. 资源平台只验证了主域,非主域站点一直没验证,改版规则提交不上去。
  7. CDN 回源配置里写死了 www,主域访问时源站返回的是 www 版本,形成循环。

总结

主域是否统一成功,看三个指标:非主域的 URL 用 curl 检查必须返回 301 且 Location 精确指向主域同路径;资源平台里主域索引量在四到八周内吸收非主域的量;搜索品牌词时结果 URL 稳定为主域形式。行动清单:统计两边收录与外链占比定主域 → nginx 双向 301 并配好证书 → WP-CLI 替换域名 → canonical 模板核对 → 资源平台分别验证并提交规则改版 → 逐个修正外部引用。处理跳转链细节时可参考 WordPress 301 重定向处理,改版期间的指标观察方法见 网站改版收录波动应对。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。