16个有名有姓的AI爬虫——GPTBot、ClaudeBot、PerplexityBot以及其余13个——必须先能抓到你的页面,任何内容层面的优化才有意义;而在我们做过体检的网站里,至少有一个爬虫被意外挡住的情况并不少见。爬虫访问权限是一道是非题,不是一个打分项。
我们每次体检都会检查的爬虫
我们的标准体检会核对16个来自主要AI生态的User-Agent:
- OpenAI:GPTBot(用于训练)、OAI-SearchBot(用于搜索索引)、ChatGPT-User(用户提问时的实时浏览)
- Anthropic:ClaudeBot、Claude-Web、anthropic-ai
- Perplexity:PerplexityBot、Perplexity-User
- Google / Apple:Google-Extended(控制是否被用于AI训练)、Applebot、Applebot-Extended
- 其他:Bytespider(字节跳动)、Amazonbot、meta-externalagent(Meta)、cohere-ai、YouBot
其中三个值得特别注意:名字带"-User"的爬虫(ChatGPT-User、Perplexity-User)会在用户提问的那一刻去抓取你的页面。挡住它们,影响的不只是未来某次训练,而是直接把你从今天的实时回答里排除出去。
网站是怎么在无意中挡住AI爬虫的
- 对不认识的机器人统一Disallow: /。 这在只放行Googlebot和Bingbot的robots.txt模板里很常见,所有AI爬虫都会落入"不认识"这一档。
- WAF/防护类服务的默认设置。 Cloudflare等服务自带屏蔽AI爬虫的规则,很多时候网站方从没主动选过,规则却已经生效。robots.txt本身看起来没问题,爬虫拿到的却是403。
- 为人类流量调校的限速规则。 AI爬虫会被限速到形同看不见。
5分钟自查
- 打开"yourdomain.com/robots.txt",像机器一样去读它:上面每一组"User-agent"规则,有没有覆盖到(或者默认落到)每一个爬虫名字上,覆盖到的是允许还是禁止。
- 伪装成爬虫去抓首页,看返回的状态码。在任意终端执行:curl -sI -A "GPTBot" https://yourdomain.com/,然后看返回结果的第一行。只要不是"200"(比如"403""406""429"),说明robots.txt之上还有一层在拦截——通常是WAF。
- 确认robots.txt里声明了sitemap("Sitemap: https://yourdomain.com/sitemap.xml"这一行),并且这个sitemap地址真的能返回合法的XML。
要不要把16个全部放行
这是一个业务决策,如果只想拒绝专门用于训练的爬虫(Google-Extended、GPTBot),同时放行搜索/浏览类爬虫,也有正当理由。对于想要获得AI可见度的企业,我们的默认建议是把全部16个都显式放行——每个爬虫都单独写一条"Allow"规则,让意图不含糊,也能扛得住以后有人再改模板。但内容是你的,做出一个主动的选择,而不是照单全收一份写于AI爬虫诞生之前的模板默认值。
访问权限是整个GEO里最便宜的一项修复:一个文本文件里的几行字。它也是让其他所有工作都成立的前提。