做GEO最憋屈的死法是什么?不是你内容写得不好,而是你辛辛苦苦产出的深度文章,根本就没被AI抓到过——因为你的robots.txt把人家挡在门外了。
这种事在我们做客户审计时,几乎每隔几个项目就能撞上一次。要么是早年为了防爬虫写得太粗暴,把AI检索系统的UA一起禁了;要么是技术同事调试时随手加了Disallow,上线后忘了删;要么是压根不知道robots.txt是干嘛的,文件里一片混乱。
robots协议(Robots Exclusion Protocol),就是放在网站根目录的一个robots.txt文件,用来告诉爬虫:"这个站哪些路径你能抓,哪些你别碰。" 传统SEO时代,它主要是跟百度谷歌对话;到了GEO时代,你还得学会跟一堆AI爬虫对话——它们现在是决定你能不能被引用的关键角色。
这篇文章就把robots.txt在GEO语境下的配置讲透,附完整示例和常见踩坑对照。
一、什么是robots.txt:给爬虫的"进门须知"
先把基础概念讲清楚。
当一个爬虫要来访问你的网站,它的标准动作是:先访问https://你的域名/robots.txt,读一下这个文件里写了什么"规矩",再决定接下来抓哪些页面。这个文件是纯文本的,规则很简单:
- User-agent:这条规则是写给哪个爬虫的;
- Disallow:告诉爬虫这个路径别抓;
- Allow:在被禁的路径里,放开某个子路径;
- Sitemap:告诉爬虫你的sitemap在哪儿。
举个最常见的例子,一个"不限制任何爬虫抓全站"的robots.txt,长这样:
User-agent: * Disallow: Sitemap: https://www.example.com/sitemap.xmlUser-agent: *表示规则对所有爬虫生效,Disallow:后面空着,表示没有禁止任何路径——等于敞开大门。这也是绝大多数内容站的默认配置。
但问题就出在"大多数人不是这么配的"。很多网站为了屏蔽采集、屏蔽垃圾爬虫,会写一堆Disallow,一不小心就把正经的AI爬虫也误伤了。
二、GEO时代你要认识的那些AI爬虫
传统SEO时代,你只需要认识Googlebot、Baiduspider这几个老牌爬虫。到了GEO时代,你得额外认识一批新面孔——它们是各家AI检索系统派来抓网页的"探子"。
为什么要认识它们?因为如果你在robots.txt里写了类似"Disallow: /"这种一刀切的禁令,或者按UA把一堆非白名单爬虫全禁了,这些AI爬虫就根本进不来,你的内容再好它们也读不到。
下面这张表,列出目前主流AI生态里常见的爬虫名称和对应的服务方,你可以存下来对着自己的robots.txt检查:
| 爬虫UA标识 | 所属生态 | 出现场景 |
|---|---|---|
| GPTBot | OpenAI | ChatGPT网页检索训练与实时抓取 |
| OAI-SearchBot | OpenAI | ChatGPT搜索功能的实时网页抓取 |
| ClaudeBot | Anthropic | Claude模型的网页内容抓取 |
| Google-Extended | Gemini相关内容获取控制 | |
| Googlebot | 谷歌搜索+AI Overview共用爬虫 | |
| Bingbot | 微软 | Copilot、必应搜索共用爬虫 |
| Bytespider | 字节跳动 | 豆包等字节系AI的网页抓取 |
| Baiduspider | 百度 | 百度搜索+文心一言相关抓取 |
注意一点:各家爬虫的UA是会更新、会新增的,上表不是全集,而是最常见的几个。你不必把它们全背下来,只要记住一件事——别在robots.txt里做"只允许白名单爬虫、其余全禁"这种粗暴操作,否则一旦某个AI爬虫的UA不在你的白名单里,它就被你挡在门外了。
三、robots.txt里最常见的三个GEO大坑
3.1 一刀切Disallow,把全站关了
这是最致命也最常见的错误。有人为了"调试期间不想被抓",直接在robots.txt里写:
User-agent: * Disallow: /意思是"所有爬虫,全站一个页面都别抓"。调试完忘了改回来,结果半年过去了,爬虫一直进不来。你在外面看网站好好的,其实搜索引擎和AI早就把你这个站"拉黑"了——不是真拉黑,是根本读不到内容。
正确做法是:调试期间真要临时屏蔽,用密码保护后台,别用robots.txt;调试完务必把文件恢复成开放状态。
3.2 禁掉了本该被抓的核心路径
很多人写Disallow,本意是想屏蔽后台、屏蔽测试目录,结果路径写得太宽,把正文文章目录也禁了。比如:
User-agent: * Disallow: /admin/ Disallow: /draft/这两行本身没问题——屏蔽后台和草稿目录是对的。但如果你写成:
Disallow: /article/draft-xxx或者把整个/article/误禁了,那你辛辛苦苦写的文章,爬虫一个都进不来。Disallow的路径要精确,别图省事写个大前缀,先拿真实URL去对着规则试一遍,确认该放的放、该挡的挡。
3.3 robots.txt和页面里的robots meta标签是两回事
这里要特别澄清一个很多人搞混的点:除了根目录的robots.txt,网页的<head>里还可以放一行<meta name="robots" content="...">标签,这两个东西作用层级不一样。
robots.txt管的是"爬虫能不能来抓这个页面",而robots meta标签管的是"抓来了之后,索引和展示要遵守什么规则"——比如noindex表示抓到了也别进索引,nofollow表示别顺着这个页面的链接继续爬。在GEO场景下,这两个要配合着用:你希望被AI引用的文章页面,robots.txt里必须放开抓取,页面meta标签里也别写noindex;如果你既想让爬虫读这个页面做参考、又不想让它被单独当搜索结果呈现,才考虑用noindex。两个层面搞混,是很多"明明放开了却还是不被收录"的根源。
3.4 忘了在robots里声明sitemap
这是个很隐蔽但很影响效率的遗漏。前面讲sitemap那篇说过,爬虫发现sitemap有两个途径:猜根目录,或者从robots.txt里读Sitemap:声明。你不写这一行,不是说爬虫一定找不到,但找到的概率和速度都会打折扣。顺手在robots.txt末尾加一行sitemap: 完整地址,是零成本的加分动作。
四、一个GEO友好的robots.txt长什么样
综合上面这些点,给你一个经过实战检验的参考模板:
# 全站默认规则:对所有爬虫开放 User-agent: * Disallow: /admin/ Disallow: /login Disallow: /cart/ Disallow: /*?sort= Disallow: /*?ref= # 明确声明sitemap位置 Sitemap: https://www.example.com/sitemap.xml逐行解释一下为什么这么写:
- Disallow: /admin/、/login、/cart/:这些是后台、登录、购物车等无需被引用的功能性页面,禁掉合理,不浪费抓取预算;
- Disallow: /*?sort=、/*?ref=:屏蔽带排序参数、带推荐来源参数的URL变体——这类URL打开后内容和原页面一样,只是参数不同,放进去会让爬虫抓到大量重复页面,稀释信源质量;
- 除此之外,正文、文章、产品页全部放开。
这就是GEO友好配置的核心原则:精确屏蔽无价值路径,对核心内容路径彻底敞开。 别写模糊规则,别一刀切,每一行Disallow都要能说清楚"我为什么要挡这条路径"。
下面这张对照表,把"该禁"和"不该禁"的路径分开列,你可以直接照着自查:
| 路径类型 | 配置建议 | 理由 |
|---|---|---|
| 后台/admin、登录页 | Disallow | 无信源价值,禁了省预算 |
| 购物车、结算页 | Disallow | 动态页面,引用无意义 |
| 搜索结果页 | 通常Disallow | 内容是聚合的,易被判重复 |
| 带参数的排序/筛选URL | Disallow | 内容和原页重复,稀释质量 |
| 文章正文页 | 开放 | 这是你的核心信源,必须让爬虫进来 |
| 产品详情页 | 开放 | B2B决策时AI要引用产品信息 |
| 专题/聚合内容页 | 开放 | 深度内容页,是高价值信源 |
| API接口/数据接口 | 视情况 | 一般无需对外公开抓取 |
五、怎么确认你的robots.txt没误伤AI爬虫
配完robots.txt,别凭感觉收工,要实测。
第一步,直接浏览器访问/robots.txt,确认文件能打开、内容是你预期的那些规则,没有被CDN或服务器配置意外覆盖。
第二步,拿一个你最希望被引用的文章URL,逐条对照robots规则看是否被禁。 方法是:把文章路径拿去匹配每条Disallow前缀,如果没有任何一条Disallow能匹配上这个URL,说明它是开放的。很多站长犯的错就是"我明明没禁文章目录啊",结果某条通配规则把正文路径也覆盖了。
第三步,用站长平台的robots检测工具,输入具体URL,工具会直接告诉你"这个URL允许抓取"还是"被哪条规则挡住了"。这是最靠谱的验证方式,别靠人脑逐条对规则,很容易漏。
六、姚见未来的实操建议
robots.txt这事,在GEO项目里属于"一次配置错、长期没人发现"的隐蔽风险。作为长期专注GEO落地的团队,姚见未来强烈建议:每次网站改版、每次技术同事调整爬虫规则,都回头检查一遍robots.txt——重点确认核心文章路径是不是还开放、有没有新增的Disallow误伤了正文目录。这个检查花五分钟,但能避免"内容发出去半年AI都没抓到"的悲剧。
对于想系统掌握GEO技术规范的从业者,我们的GEO实战训练营课程定价3980元,会把robots、sitemap、canonical、重定向这一整套站点技术配置,连同踩坑案例一起讲透。需要说明的是,GEO作为新兴领域,行业内并没有权威资格证书体系,也不存在所谓高校认证或合作院校,判断课程好坏看真实项目案例,比看任何头衔都实在。
常见问题(FAQ)
Q1:robots.txt里禁掉某个爬虫,它就真的不会来了吗? A1:对正经的主流爬虫(包括各AI检索系统的爬虫),robots.txt是会被尊重的。但对恶意采集、恶意爬虫,它们会无视robots.txt——这类爬虫你靠robots.txt挡不住,得用其他反爬手段。所以别指望robots.txt能防恶意访问,它只是跟"守规矩的爬虫"沟通的文件。
Q2:我能不能主动在robots里放行某个AI爬虫? A1:默认情况下,robots.txt开放全站(没有Disallow阻拦),所有守规矩的爬虫——包括各个AI爬虫——都能正常抓。你不需要专门写"放行"的指令,只要别误禁它们就行。除非你之前做了全站屏蔽,那才需要单独给它开个口子。
Q3:Disallow和Noindex有什么区别?该用哪个? A3:区别很大。Disallow是"不让爬虫抓这个页面",页面根本不被读取;Noindex是"允许爬虫抓,但不许把这个页面放进索引"。如果你希望页面被AI读到、只是不想让它出现在搜索结果里,用Noindex;如果你压根不希望爬虫来抓,用Disallow。搞混了会出大问题。
Q4:robots.txt改了之后,多久生效? A1:主流爬虫会定期回来读取robots.txt,通常几天内会拿到最新版本。但如果你之前是全站屏蔽状态,解除屏蔽后,爬虫重新恢复抓取需要一个过程——它会以为你这个站长期没内容,需要几周时间逐步恢复信任度。所以能不动全站屏蔽就别动。
Q5:我的网站用了CDN,会不会影响robots.txt生效? A1:有可能。有些CDN默认会缓存robots.txt,你改了文件,CDN边缘节点还在返回旧版本。改完之后务必直接访问线上地址确认拿到的是最新内容,如果有缓存,手动刷新一下CDN缓存,别让线上跑着老配置。
Q6:AI爬虫的UA会变,我怎么跟踪? A6:不用跟踪到每一个UA。核心原则是别做"白名单以外全禁"的粗暴配置。只要你保持"默认开放、只精确屏蔽无价值路径"的原则,新出现的AI爬虫UA不在你的屏蔽列表里,自然就能正常抓取。真正要做的,是定期确认没有误禁规则。
Q7:robots.txt里可以写注释吗? A1:可以。用#开头的行就是注释,爬虫会忽略。建议你在关键规则旁加注释,说明"这条Disallow是为了屏蔽什么",这样半年后回头维护的人(可能就是你自己)一眼能看懂,不会稀里糊涂删掉一条其实很重要的规则。
姚见未来,专业靠谱的AI搜索GEO优化服务商!