核心做法不是给每个域名写一份“禁止抓取”,而是让每个域名承担一个明确角色,并让这个角色在 robots 文件、页面可见内容和站点地图三处保持一致。若多个域名展示高度相似内容,却都返回 200 且都允许抓取,robots 只能表达抓取偏好,不能替你说明谁主谁辅,也不能保证索引移除。更稳妥的是:选一个主域名承载核心内容,其他域名要么重定向,要么作为独立用途站点明确差异化,要么用 noindex 等页面级信号处理展示页,而不是只靠 robots 文件。
假设同一套商品或文章同时出现在 brand.example、shop.example 和 promo.example 三个域名上,内容只有页头、价格展示或语言版本略有差异。直觉上,你会想在 robots.txt 里对两个辅域名写 Disallow: /,认为这样它们就不会出现在结果里。但一段时间后核对,可能发现辅域名仍有页面被展示,甚至标题来自辅域名,而主域名对应页面的展示反而不稳定。
这里要先把现象与结论分开。“辅域名仍有页面被看到”不等于 robots 文件失效,也不等于主域名被降权。它只能说明:抓取限制没有实现你想要的索引状态,需要继续区分原因。
robots.txt 的 Disallow 主要告诉爬虫不要抓取某路径。若页面此前已被抓取并进入索引,之后再加 Disallow,爬虫可能无法重新读取页面内容,因而缺少足够信息去确认“这个页面应该移除或合并”。结果是旧标题、旧摘要或旧 URL 仍可能出现在结果中,而页面级 noindex 也无法被读到。这属于“限制抓取”和“移除索引”目标不一致,而不是 robots 文件本身写错。
能区分这种解释的证据是:检查辅域名被展示页面的缓存或历史抓取记录,看它是否在加 Disallow 之前就已可被抓取;再确认当前 robots 是否阻止了该路径。若此前可抓取、当前被阻止,且页面级指令无法被读取,那么“先放开抓取、让页面级 noindex 生效,再观察移除”通常是下一步动作。这个动作的结果会直接影响后续判断:若页面级 noindex 可被读取后逐步消失,说明问题在抓取与索引的先后顺序;若仍长期存在,则要查外链、站点地图或域名级信号。
另一种可能是,辅域名并没有被配置成主域名的镜像或跳转,而是返回 200、可导航、可被抓取,并且有自己的内链和站点地图。此时搜索引擎面对的是多个都能独立成立的站点,而不是一个站点加几个展示入口。robots 文件只表达“允许或不允许抓取”,它不表达“这个域名只是活动页”“这个域名只用于品牌展示”。如果页面内容相似、标题相似、导航相似,辅域名就可能被当作独立候选。
能区分这种解释的证据是:分别访问各域名的首页和典型内容页,确认是否返回 200、是否可直接访问、是否互相跳转、是否各自提交站点地图;再检查页面级 canonical、noindex 和 hreflang 是否指向一致。若辅域名页面可独立访问且没有页面级合并信号,那么仅靠 robots 文件说明用途是不够的。
在动手改 robots 之前,先把每个域名归入下面三类之一。分类不同,处理方式不同,不能都用同一条 Disallow 解决。
动作与结果的关系在这里很直接:若把辅域名归为“重定向域名”,下一步就是验证跳转是否返回永久跳转并落到正确主域名页面;若跳转正确,robots 文件只需保持不误挡主域名资源。若把辅域名归为“独立用途域名”,下一步是检查页面差异是否足以支撑独立用途;若差异不足,则应回到合并或 noindex 方案,而不是继续加 Disallow。
不要只凭“搜索结果里出现了辅域名”就下结论。可以按下面顺序收集证据,每一步的结果都会缩小下一步范围。
Disallow: / 完全挡住,页面级 noindex 无法被读取,这时“仍有展示”更可能是抓取限制与索引移除目标不一致。若证据显示辅域名此前可抓取、当前被 robots 阻止、且页面级 noindex 读不到,优先调整顺序:先允许抓取需要移除的页面,让 noindex 或 canonical 被读到,再观察索引状态变化。若证据显示辅域名可独立访问、canonical 指向自身、站点地图完整提交,那么问题不在 robots 写错,而在域名角色没有真正区分。此时应决定是重定向、合并还是差异化,而不是继续调 robots 规则。
假设某团队有 a.example、b.example、c.example 三个域名,承载同一批文章。a.example 是主站;b.example 是旧域名,已配置全站永久跳转;c.example 是活动页域名,页面可独立访问且 canonical 指向自身。若团队只给 b 和 c 都写 Disallow: /,可能看到 b 的跳转仍正常,但 c 的相似页面因无法被读取 noindex 而继续以旧形式出现。更合理的动作是:b 保持跳转并确认跳转状态;c 若只是活动展示,放开抓取并加页面级 noindex,或直接重定向到 a 的对应页;若 c 确需独立,则补足内容差异和独立导航。这个假设只用于说明判断顺序,不代表任何真实站点结果。
最后要记住,robots 文件设置解决的是抓取许可,不解决域名用途说明。多个域名承载相似内容时,先定义每个域名是主站、跳转站还是独立站,再用页面级信号、跳转和站点地图把这个定义落实。只加 Disallow 往往会让页面级指令读不到,反而延长不确定状态。