每个网站根目录下都有一个纯文本文件 robots.txt,它像一份写给搜索引擎爬虫的访问说明,告诉对方哪些路径可以进,哪些区域不能碰。配置好了,搜索引擎会把有限的抓取额度花在关键页面上,新内容收录更快;配置错了,轻则页面迟迟不被索引,重则整站权重受损。这篇指南会带你从零看清它的语法逻辑和那些容易踩的坑。
robots.txt 必须放在域名根目录下,最终访问地址就是「域名/robots.txt」。它约束的是爬虫的抓取动作,不直接决定页面是否进入索引。如果希望某个页面彻底从搜索结果消失,正确做法是给页面添加 noindex 标签——只靠 robots.txt 禁止抓取,页面可能一直停在"已发现但未索引"状态,反倒耽误事。
这里得提醒一句:robots.txt 对爬虫只是君子协定。主流搜索引擎会认真执行,但恶意采集程序根本不看。涉及后台、订单、用户隐私的目录,务必叠加登录验证、IP 白名单等硬防护,别把安全全押在 Disallow 上。每次改完文件,建议人工复核一遍路径,防止写错导致敏感目录意外暴露。
整个文件由若干规则组构成,每组以 User-agent 字段开头。字段名与值之间用英文冒号加空格分隔,字段名统一用大写,避免格式不兼容引发解析问题。
这个字段指定规则对哪个爬虫生效。「User-agent: Googlebot」只影响谷歌蜘蛛,「User-agent: Bingbot」只影响必应。覆盖所有搜索引擎则用「User-agent: *」。同一文件可为不同蜘蛛分别建规则组。当一个爬虫匹配多组规则时,主流搜索引擎按"最长匹配优先"处理——路径更具体的规则组优先级更高。
Disallow 声明禁止抓取的路径前缀,Allow 声明允许抓取的路径前缀。「Disallow:」后面留空(不写值)表示清空限制,等同允许全站抓取。两者冲突时,以更长的路径匹配为准。比如同时有「Disallow: /api/」和「Allow: /api/public/」,则 /api/public/ 下的资源会被放行。写路径时建议统一用根目录相对写法,并带上末尾斜杠,减少歧义。
Sitemap 字段用来声明站点地图的完整 URL,一般放文件末尾,方便爬虫直接发现内容清单。Crawl-delay 指定抓取间隔秒数,但谷歌早已声明完全忽略此指令;要控制 Googlebot 抓取频率,请到 Search Console 的「抓取速率设置」调整。Bing 等搜索引擎仍支持 Crawl-delay,可保留备用。
以下罗列几个常见需求的标准格式,实际使用时替换路径即可,注意每条指令各占一行。
一个常见误区是把每次改版的新路径塞进 Disallow 而不清理旧规则,时间一长文件越来越臃肿,容易写错。建议每季度梳理一遍规则,把已不存在的路径删除,保持文件精简。
另外,如果站点是 http 与 https 混用,或存在多个域名,robots.txt 只在当前域名根目录下生效,需要为每个域名分别配置。使用 CDN 或镜像站时,要确认抓取到的文件版本与你预期一致,避免源站与缓存版本不一致导致规则失效。
不少站长习惯用「User-agent: *」加「Disallow: /」来临时屏蔽新站,但上线后忘记删除这条规则,结果整站长时间不被抓取。建议上线前做一次全面检查,确认 Disallow 值不是空规则且无「Disallow: /」残留。
还有人用 robots.txt 试图保护敏感页面,比如把后台目录写进 Disallow 就以为安全了。这样防不住恶意爬虫,反而可能让内部路径暴露在公开文件中。敏感目录应该用访问认证来防护,而不是靠这个公开文本文件。
另一个高频问题是路径写错。比如想屏蔽 /product/ 目录,却写成 /product 不带斜杠,这会同时屏蔽 /product 前缀的所有 URL(如 /product-detail/ )。建议写好规则后,在浏览器中直接访问被屏蔽的 URL,观察返回状态确认规则生效。
可能屏蔽掉不该屏蔽的页面,导致重要内容长期不被抓取,收录率下降。也可能漏屏蔽敏感路径,让私密资源被搜索引擎收录。每次修改后应逐条验证规则,确认预期效果。
以路径更长者为准。例如 Disallow 了 /abc/ 而 Allow 了 /abc/def/,那么 /abc/def/ 下的内容会被放行。这是 Google 等搜索引擎的统一处理逻辑,写规则时可以利用这一点实现"目录屏蔽但个别路径放行"。
不能完全防止。它会阻止爬虫抓取,但页面可能仍被其他链接发现并出现在搜索结果中(只是没有描述内容)。要彻底从索引移除页面,必须使用 noindex 标签,同时配合 robots.txt 控制抓取。
robots.txt 是搜索引擎沟通的基础工具,语法简单却容易出错。核心记住三点:文件必须放根目录;路径写法要统一并带斜杠;敏感内容靠认证防护而不是靠 Disallow。改完规则后,去 Search Console 的「robots.txt 测试工具」里验证一下,确认没有误屏蔽重要路径。每季度清理一次废弃规则,保持文件干净,抓取效率自然更理想。