当同一套内容被多个域名承载时,robots.txt 能做的不是“选出一个主域名”,而是先把每个域名允许谁抓、抓什么、哪些路径不必抓写清楚;如果目标是让搜索引擎理解各域名的用途,还需要配合 canonical、站点地图和页面级说明。robots.txt 本身不表达“这是主站还是镜像站”,也不能替代索引移除。
多个域名承载相似内容,常见有两种条件,处理方式不同。
判断依据不是“有几个域名”,而是每个域名是否提供独立价值:如果某个域名只是同一内容的另一入口,且没有独立品牌、独立用户群或独立法律要求,一般应把它当作次要入口处理;如果它面向不同语言、不同区域或不同产品线,则应保留可抓取,并用页面级信号说明其用途。
robots.txt 是抓取指令文件,不是内容说明文件。它只能告诉爬虫哪些路径可以抓、哪些路径不要抓,不能声明“这个域名是主站”“这个域名只是备用”。
一个常见的写法是:在主域名放行主要路径,在次要域名只放行必要的静态资源,不抓取重复内容页。假设主域名为 example.com,次要域名为 example.net,且 example.net 只是同一内容的备用入口,可以写成:
User-agent: *<br>Allow: /assets/<br>Disallow: /
这个写法的作用是:允许抓取资源文件,但不抓取页面。它会影响下一步:如果次要域名仍需被用户直接访问,那么它不应被搜索引擎当作可收录页面;如果它本身有独立价值,就不该用这种写法。
需要明确的是,robots.txt 的抓取限制不等于可靠的索引移除。一个页面即使被 Disallow,仍可能因为外部链接或历史记录而出现在搜索结果中,只是没有摘要或摘要来自其他来源。若目标是移除索引,应使用页面级 noindex 或搜索平台提供的移除工具,而不是只改 robots.txt。
多个角色对同一事实有不同理解时,分歧往往不在 robots.txt 语法,而在“这个域名到底算什么”。把分歧转成可核对的项目,比反复争论更有效。
执行后,下一步不是立刻看排名,而是核对抓取日志和索引状态:如果次要域名仍被大量抓取,说明 robots.txt 规则未覆盖或未生效;如果正式域名未被抓取,说明规则可能过严。请求量或抓取量归零不能单独证明处理正确,也可能是爬虫暂时降低频率、规则被缓存或站点地图未更新。
假设某团队有三个域名:brand.com、brand.cn、brand-preview.com。brand.com 是英文主站,brand.cn 是中文站,brand-preview.com 是内部预览站。
如果 brand.cn 有独立中文内容、独立联系方式和独立用户群,它不应被 robots.txt 封禁,而应保留可抓取,并用 hreflang 或页面说明表明它与 brand.com 的关系。brand-preview.com 若只是预览,且不希望被搜索用户看到,可以用 robots.txt 限制抓取,但更稳妥的是同时加 noindex,因为 robots.txt 不保证不出现索引。
如果团队误把 brand.cn 也写成 Disallow: /,结果是中文用户搜索时可能找不到正式中文站,而预览站反而可能因为外部链接被索引。这个假设说明:robots.txt 的写法取决于域名角色,而不是域名数量。
有些例外需要单独处理。若多个域名属于同一品牌但面向不同国家,且内容因法律或物流信息不同而必须区分,应优先保留各站可抓取,并在页面级说明用途。若某个旧域名已经不再维护,但仍有外部链接,可以把它 301 到正式域名,而不是只靠 robots.txt 封禁。
核查顺序建议是:先确认每个域名的角色,再检查页面 canonical,再检查站点地图,最后才调整 robots.txt。不同搜索引擎对 robots.txt 的支持情况须分别核查,尤其是指令大小写、路径匹配和通配符行为。HTTPS 不保证安全无漏洞或排名,它只是传输层协议,与域名用途说明无关。
最终,robots.txt 只能回答“谁可以抓什么”,不能单独回答“这个域名是做什么的”。把用途写进页面级信号和站点结构,才是多域名相似内容下更可核对的下一步。