robots.txt是放在网站根目录下的一个纯文本文件,用于向搜索引擎爬虫声明哪些路径可以抓取、哪些路径需要回避。配置得当可以引导爬虫聚焦核心内容、提升收录效率,配置失误则可能浪费抓取配额甚至影响整站收录。理解其运作逻辑、掌握语法细节并避开常见陷阱,是每个网站运营者的基本功。
robots.txt本质上是给合规爬虫看的“访问须知”,并不具备强制执行力。任何用户直接在浏览器访问 example.com/robots.txt 都能看到全部内容,它相当于一张引导图,指明哪些区域可以参观,但真正的敏感地带不能仅靠这张图防守。
还需注意,它管的是爬虫“要不要发起请求”,不直接决定页面是否出现在搜索结果中。举例来说,某页面被标记为Disallow,但若外部高权重链接频繁指向它,搜索引擎仍有可能将其纳入索引,只是展示形式可能是缓存快照或摘要。
同时,这套协议依赖爬虫自觉遵守。主流搜索引擎的蜘蛛通常循规蹈矩,但部分采集程序和恶意爬虫会直接忽略规则。涉及用户数据、支付回调、管理后台等敏感路径,必须叠加登录校验、IP白名单或Web应用防火墙等手段,切勿把安全期望全部押注在robots.txt上。
robots.txt由若干规则组组成,每组必须以User-agent行开头,声明规则的适用对象。指令格式统一为“字段名: 值”,冒号使用英文半角。尽管多数爬虫解析时较为宽容,但严格按规范书写可避免后续出现隐性偏差。
该指令决定规则组的作用范围。仅面向谷歌蜘蛛,写User-agent: Googlebot;面向所有搜索引擎,则用通配符User-agent: *。通过多组规则可实现差异化策略,例如对谷歌完全开放抓取,对必应则降低其访问频率或限制某些目录。
Disallow声明禁止访问的路径,Allow声明允许访问的路径,二者常配合使用。容易忽略的细节是:当Disallow后面留空时,表示移除全部限制,爬虫可自由抓取整站。当同一条URL同时命中多条规则时,主流搜索引擎普遍采用“最长匹配优先”原则——路径越长、越具体,优先级越高。例如同时存在Disallow: /admin/与Allow: /admin/guide/时,guide子目录下的内容会被优先放行,因为后者路径更长。
Sitemap指令用于声明站点地图的绝对网址,便于爬虫快速掌握内容框架,通常置于文件末尾。Crawl-delay指令用于设定两次抓取请求之间的间隔秒数,用于保护服务器资源。但需明确一点,谷歌爬虫不支持Crawl-delay,其抓取频率由谷歌侧自行调控;这类指令主要面向百度、搜狗等对服务器压力较为敏感的搜索引擎。
配置过程中最容易踩坑的是对通配符和路径规则的理解偏差。robots.txt支持$符号匹配URL末尾,例如Disallow: /*.pdf$可禁抓所有PDF文件,但*符号不能用在路径中间作为任意匹配。曾有人将图片目录写成Disallow: /images*.jpg,结果该规则并未生效,导致所有图片仍被爬虫抓取。
另一类高发问题是误封整站。例如在测试环境将规则写成Disallow: /后未及时回滚,直接导致正式站点全站无法抓取,收录量在数周内急剧下跌。建议在文件上线前使用搜索引擎官方的robots测试工具模拟验证,确认规则不会误伤正常内容。
还需警惕:频繁修改robots.txt会影响爬虫的调度策略。每份文件都有缓存周期,过度改动容易让蜘蛛反复重新抓取文件本身,消耗站点的抓取配额。规则应当保持相对稳定,仅在页面结构大调整或出现明显抓取异常时才进行修改。
从零配置时,建议按以下顺序推进。先梳理站点路径结构,划分出可抓取内容、需限定抓取的内容与严禁抓取的内容三类;然后撰写规则组,先用User-agent: *定义全局策略,再针对特定爬虫添加细化规则;最后将Sitemap地址写入文件末尾,并上传至根目录验证可访问性。
迭代过程中,需结合搜索引擎的抓取统计报告持续观察。若发现核心页面抓取频次过低,优先检查robots.txt中是否存在误拦截规则;若发现大量垃圾桶页面被频繁抓取,则应适当收紧Disallow范围。规范的做法是每季度复核一次文件内容,确保规则与网站当前的结构和资源优先级相匹配。
可能被搜索到。Disallow只阻止爬虫发起抓取请求,但如果页面已有外链或社交分享,搜索引擎可能依据现有线索将其收录,只是展示形式可能为快照或摘要。若希望彻底从搜索结果移除某页面,应使用noindex标签配合认证访问等更强手段。
不可以。爬虫只会查找域名根目录下的 /robots.txt 这一个路径。若放在子目录中,搜索引擎将无法识别,等同于未配置。多子域名场景下,每个子域名需在各自的根目录下放置独立的文件。
可以逐条列出,或使用$匹配结尾配合目录层级简化。例如要禁抓所有以 .zip 结尾的文件,写成Disallow: /*.zip$即可,星号位于路径开头位置代表任意前缀。中间匹配需求建议用具体的目录列表替代通配符。
robots.txt的正确姿势是:文件位置固定、语法严谨、规则稳定,并始终将其定位为抓取引导工具而非安全手段。配置完成后,使用站长平台的检测工具验证效果,结合抓取日志持续观察调整,才能让爬虫资源真正投入在值得覆盖的内容上。记住,每一次修改前先备份原文件,改动后密切监测收录趋势,确保万无一失。