robots.txt 是放置在网站根目录下的纯文本指令文件,核心作用是告知搜索引擎爬虫哪些内容可以抓取、哪些应当避开。配置得当,能帮搜索引擎将抓取预算集中到重要页面上,加快新内容的收录。反之,语法不当或路径误判则可能让整站被抓取异常,波及已有排名。理解其运作逻辑和易错细节,是网站运营者必备的基本功。
robots.txt 对爬虫而言仅是引导性建议,不具备强制力。任何人都可在浏览器地址栏输入“域名/robots.txt”直接查看文件内容。它更像一张访客导览图,指引常规区域是否开放,但涉及核心数据、支付流程或管理后台的敏感位置,单靠此文件远远不够。
文件只决定爬虫是否发起请求,不决定已抓取页面能否进入索引。举例来说,某页面即使被 robots.txt 屏蔽,若外部链接充足,搜索引擎仍可能将其纳入索引,只是展示的快照可能来自缓存或页面描述。此外,这套协议依赖爬虫自觉,主流搜索引擎蜘蛛普遍约束自我,但大量采集工具与恶意爬虫不会理会规则。所有敏感区域,务必同时启用登录验证、IP 白名单或防火墙一类硬性拦截,切勿把安全期望全部押在“君子协定”上。
robots.txt 由若干规则组构成,每组须以 User-agent 字段开头,声明适用对象。指令格式均为“名称: 值”,冒号须使用英文半角符号,建议冒号后保留一个空格。多数爬虫对格式有一定容错,但保持规范书写,可避免日后出现解析问题。
该行指定规则约束哪类爬虫。仅面向谷歌搜索蜘蛛则写 User-agent: Googlebot;统一对待所有搜索引擎则用通配符 User-agent: *。通过拆分多个规则组,可实现差异化管理,例如对谷歌放开抓取,同时给必应设置更严格限制。
Disallow 声明禁止访问的路径,Allow 声明允许的路径,二者常组合使用。需留意:Disallow 后留空,表示清除全部限制,爬虫可自由抓取整站。当一条 URL 匹配多条规则时,搜索引擎普遍遵循“最长匹配优先”原则,即路径越长越具体,优先级越高。例如同时存在 Disallow: /api/ 与 Allow: /api/public/,因后者路径更长更具体,public 子目录下内容会被放行。
Sitemap 指令声明站点地图的完整网址,便于爬虫快速掌握全站内容结构,通常置于文件末尾。Crawl-delay 设定两次抓取之间的间隔(秒)。但须注意:谷歌爬虫并不支持 Crawl-delay,其抓取频率主要由自身算法与站点加载速度决定。若想控制谷歌的抓取压力,应优先优化服务器响应时间或使用 Google Search Console 的速率设置。
配置过程中,几个高频错误最容易引发问题,应格外重视。
按照以下步骤操作,可快速创建一份可靠的 robots.txt。
直接在浏览器地址栏输入该网站的域名并加上 /robots.txt 即可,例如 example.com/robots.txt。若网站未配置该文件,通常会返回 404 或默认提示页面。常见爬虫的 User-agent 名称可查阅对应搜索引擎的官方文档。
不一定立即生效。搜索引擎爬虫会周期性抓取 robots.txt,通常数小时至数天内更新缓存规则。但若误屏蔽了整站目录,新收录会明显停滞,已收录页面的抓取频次也可能下降。因此修改后应尽快验证并持续观察抓取报告。
Disallow 后留空表示允许爬虫抓取整个站点,相当于清空该组规则下的限制。与之相对,Disallow: / 则代表屏蔽全站。实际操作时,若只对特定目录做限制,务必确认其他路径未被误伤。
合理配置 robots.txt 的核心在于明确文件定位、吃透语法匹配规则,并避开常见细节陷阱。建议在每次改动后立即用站长工具验证,同时定期复查抓取统计,观察是否有异常下降。始终记得:这份文件是引导性的,敏感区域必须叠加更硬性的安全措施,才能真正守住站点底线。