双域名 / 同站审核混乱(2026)

yourbrand.com 和 yourbrand.net 内容相同——AdSense 报重复或不通过。如何解决。

你买了 yourbrand.com,也”以防万一”买了 yourbrand.net。两个都返回一样的内容。AdSense 申请被拒,理由是”这个内容已经在另一个站点通过了”,或者审核一直挂。或者你的 www 和 apex 各自独立返回内容,没相互 301。AdSense 审核员看到两份一模一样的站不知道该批哪个。解决办法不是把两个变体改成”独特”——是选一个 canonical,把其它全部 301 过去。

这条同样适用于 apex/www 拆分、.com/.net 配对、不小心被收录的 staging 子域名、改名后没 301 的旧域名。

常见原因

按命中率从高到低。

1. 防御性备用域名也在服务

为防身买了 yourbrand.net.org,指向同一托管。三个都能访问、返回一样的页面。AdSense 看到两三个内容一模一样的 property。

怎么判断

for d in yourbrand.com yourbrand.net yourbrand.org; do
  echo -n "$d: "
  curl -sI "https://$d" | head -1
done

如果都返回 200(不是 301 到 canonical),就是重复。

2. 改名后旧域名还在服务

oldbrand.com 改名到 newbrand.com。新站上线了。旧 DNS 还指着托管;旧域名还在用旧 URL 返回内容。

怎么判断curl -sI https://oldbrand.com。返回 200 就是没真改完。应该是 301 到 newbrand.com

3. www 和 apex 各自独立服务

www.yourdomain.comyourdomain.com 都能解析、都返回页面。AdSense 把两个分别当 property 收。

怎么判断

curl -sI https://yourdomain.com | head -3
curl -sI https://www.yourdomain.com | head -3

其中一个应该 301 到另一个(你选哪个 canonical)。

4. staging 子域名被公开收录

你有个 staging.yourdomain.com 做 QA。没设 auth。Google 找到了、收录了。AdSense 把它当生产的重复。

怎么判断:Google 搜 site:staging.yourdomain.com。有结果就是 staging 被公开收录了。

5. Vercel / Netlify 的预览部署被收录

Vercel yourapp-randomhash.vercel.app 预览和 Netlify deploy preview 没禁就会被爬。每个预览都是生产的近重复。

怎么判断:Google 搜 site:vercel.app yourbrandsite:netlify.app yourbrand。出来收录的预览就要去拦。

6. AdSense Sites 里同一个 property 加了多个

你把 yourdomain.comwww.yourdomain.comhttps://yourdomain.com/ 分别加进了 AdSense → Sites。AdSense 把它们当独立但同内容的站。

怎么判断:AdSense → Sites。一个站出现多条就是重复条目。

最短修复路径

第 1 步:选定一个 canonical 域名

通常选最短、最常对外宣传的、最老的版本。常见选择:

  • yourbrand.com(你实际在推广的 .com)
  • www.yourbrand.com 如果 SSL 或 CDN 配置更适配 www
  • apex(裸域)如果你的 CDN 在根支持 ALIAS / ANAME

定一个就别再换。在 CANONICAL_DOMAIN.md 里写明,免得未来自己又纠结。

第 2 步:所有其它域名 301 到 canonical

Cloudflare — Page Rules 或 Rules → Redirects:

URL pattern: https://yourbrand.net/*
Redirect:    https://yourbrand.com/$1
Status:      301 (permanent)

Vercelvercel.json

{
  "redirects": [
    { "source": "/:path*", "destination": "https://yourbrand.com/:path*", "permanent": true }
  ]
}

只配在备用域名的项目上;canonical 项目不加任何重定向。

Netlify_redirects

https://yourbrand.net/*   https://yourbrand.com/:splat   301!

第 3 步:禁止 staging 和预览被收录

staging 用 basic auth 或 robots.txt 拦:

User-agent: *
Disallow: /

外加每页都加 <meta name="robots" content="noindex"> 兜底。

Vercel — 用 VERCEL_ENV 检查,在预览发 noindex

<meta name="robots" content="noindex" v-if="process.env.VERCEL_ENV !== 'production'">

第 4 步:清理 AdSense Sites 里的重复条目

AdSense → Sites。canonical 域名只留一条。移除 wwwhttps://、带尾斜杠的变体。

第 5 步:用 curl 验证

for d in yourbrand.net yourbrand.org www.yourbrand.com staging.yourbrand.com; do
  echo "=== $d ==="
  curl -sI "https://$d" | head -3
done

每个都应返回 HTTP/2 301Location: https://yourbrand.com/...

第 6 步:等 2-4 周 Google 合并

Google 要重新爬所有重复并跟随 301。Search Console → URL 检查 → 对 canonical 请求收录加速。AdSense 下次审核时会发现合并完成。

第 7 步:如果还需要,重交 AdSense

合并完成后,AdSense → Sites,对 canonical 那一条请求审核。

哪些情况可能不是你操作错了

AdSense 对合并的检测有延迟。哪怕 301 都设好、AdSense Sites 只剩一条,审核队列也可能还要几周。

容易误判的情况

把所有变体都加进 AdSense Sites “覆盖”——反而帮倒忙。这是告诉 AdSense 你一个站有 2-3 个内容一模一样的 property,会触发重复标记。AdSense Sites 永远只放真正独立的域名。

预防建议

  • 第一天就选定 canonical 域名,找个显眼地方写下来。
  • 发第一篇文章之前先设好 www → apex(或反过来)的重定向。
  • staging 和 Vercel/Netlify 预览用 noindex + robots.txt 拦。
  • AdSense Sites 只放 canonical。
  • 防御性域名(.net、.org、易错拼写)第一天就 301,永远不要让它直接返回内容。

FAQ

  • 能变现多个域名吗? 能——前提是各自有真正独立的内容。同一个 AdSense 账号下一个电影站、一个菜谱站没问题。
  • Google 会取消收录重复吗? 设好 301 之后,Google 会合并链接权重,canonical 会吸收排名。

相关阅读

标签: #AdSense #变现 #排查 #重复域名