robots.txt 怎么配置不阻碍 AI 爬虫抓取 GEO 地域页面
配置 robots.txt 不阻碍 AI 爬虫抓取 GEO 地域页,关键是避免用 * 组 Disallow: / 或禁止 /cn/、/us/ 等地域目录,按 GPTBot、ClaudeBot 等爬虫分组放行,仅用 Disallow 排除后台
结论先行:让 robots.txt 不阻碍 AI 爬虫抓 GEO 地域页,核心只有两条——不要用 User-agent: * 配合 Disallow: / 一刀切封站,也不要把 /cn/、/us/、/beijing/ 这类地域目录写进任何 Disallow 规则;正确做法是按爬虫名逐个分组放行,只用 Allow 精准排除后台、购物车、带 utm_ 参数的 URL。下面给的是可直接抄的配置和验证方法。
为什么 robots.txt 会挡住 AI 爬虫抓地域页?
挡住的原因通常是"兜底规则误伤",不是爬虫本身不支持。robots.txt 的匹配逻辑是:爬虫取与自己 User-agent 最匹配的那个分组,取不到就落到 * 组。所以只要 * 组里写了 Disallow: /,或者写了 Disallow: /*?、Disallow: /*/cn/ 这类通配规则,GPTBot、ClaudeBot 这些没有单独分组的爬虫就会全部被拦,地域页首当其冲。
另一个高频事故是站点把地域页做成了带参数的 URL,比如 /landing?region=sh、/store?city=beijing,而 robots.txt 里躺着一条 Disallow: /*?——搜索引擎爬虫可能因为已有收录而豁免,新来的 AI 爬虫则直接被拒。
需要放行哪些 AI 爬虫的 User-agent?
结论:至少放行 8 个 AI 相关 User-agent,且必须按功能分开写。它们分属两类,混为一谈会踩坑。
- OpenAI:
GPTBot(训练用)、OAI-SearchBot(进 ChatGPT 搜索索引)、ChatGPT-User(用户提问时的实时抓取)。 - Anthropic:
ClaudeBot(训练)、Claude-SearchBot、Claude-User。 - Perplexity:
PerplexityBot(索引)、Perplexity-User(实时)。 - 其他:
Applebot-Extended(苹果 AI)、Bytespider(字节)、Google-Extended(控制 Gemini/Vertex 训练,与 Google 搜索收录无关,禁用它不影响 SEO)。
记住一条:Googlebot 决定 Google 搜索收录,Google-Extended 只决定内容是否用于 Gemini 训练,两者独立,别为了"防训练"把 Googlebot 一起封了。
怎么写一条不误伤地域目录的 robots.txt?
结论:用"白名单式放行 + 黑名单式排除"两层结构,Allow 只写要放行的目录,Disallow 只写确定不要抓的路径。以下配置可直接改域名使用:
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
# OpenAI
User-agent: GPTBot
Allow: /
Disallow: /admin/
Disallow: /*?utm_
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
# Anthropic
User-agent: ClaudeBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Claude-User
Allow: /
# Perplexity / 其他
User-agent: PerplexityBot
Allow: /
User-agent: Perplexity-User
Allow: /
User-agent: Applebot-Extended
Allow: /
User-agent: Bytespider
Allow: /
# 兜底组:地域页必须可抓
User-agent: *
Allow: /
Allow: /cn/
Allow: /us/
Allow: /sea/
Disallow: /admin/
Disallow: /cart
Disallow: /*?sort=
Disallow: /*?sessionid=
Sitemap: https://www.example.com/sitemap.xml
注意三点:每组的 User-agent 行必须连续写,中间插入注释以外的其他 UA 会开启新分组;文件必须放在域名根目录,即 https://www.example.com/robots.txt,子目录下的 robots.txt 无效;Crawl-delay 只有 Bingbot、Yandex 等部分爬虫遵守,Googlebot 和主流 AI 爬虫不执行,要限速请在服务器或 CDN 层做。
Allow 和 Disallow 冲突时谁生效?
结论:按"最长匹配优先",路径长度相同时 Allow 胜出。例如同时存在 Disallow: /cn/ 和 Allow: /cn/shanghai/,抓 /cn/shanghai/page 时命中更长的 Allow 规则,可以抓取;抓 /cn/beijing/page 则被拦。Google、Bing 支持 * 和 $ 通配符,但部分 AI 爬虫的解析实现较简单,可能不认通配符——所以别把关键放行逻辑建立在通配符上,老老实实写完整目录前缀最稳。
配好后怎么验证地域页真的能被抓?
结论:用三步验证,不要凭感觉。第一步,浏览器打开 https://你的域名/robots.txt,确认没有 301 跳转、没有 HTML 包裹、没有 403。第二步,用 Google Search Console 的 robots.txt 报告(Bing 用网站管理员工具的 robots.txt 测试器)填入 /cn/shanghai/ 这类地域 URL,看返回"允许"。第三步,查服务器访问日志,按 UA 过滤 GPTBot、OAI-SearchBot、ClaudeBot,确认这些 UA 对地域页的请求返回 200 而非 403/404。
还要避开一个经典死循环:如果想让地域页不被索引,不要用 robots.txt 的 Disallow——被 Disallow 挡住的页面,爬虫读不到页面里的 <meta name="robots" content="noindex">,页面可能仍以"无描述"形式出现在结果里。正确顺序是:允许抓取 + 页面加 noindex。
只想被 AI 引用、不想被拿去训练,怎么分开配?
结论:靠 UA 分组就能实现——封 GPTBot、ClaudeBot、Google-Extended、Bytespider(训练侧),同时放行 OAI-SearchBot、Claude-SearchBot、PerplexityBot 和 Googlebot(引用与收录侧)。这样内容仍能进入 AI 搜索答案,只是不参与模型训练语料。
总结:GEO 地域页被 AI 爬虫抓到的前提,是 robots.txt 里没有任何一条规则会把地域目录兜底拦掉。按爬虫名分组、只 Disallow 后台和参数垃圾页、放行 * 组的地域前缀、再用 GSC 和访问日志验证一遍,这套流程走完,AI 爬虫就能正常抓取你的 /cn/、/us/ 页面。
转载请注明出处,版权归原作者所有。