网站运营者几乎每天都会和 robots.txt 打交道。这份存放在域名根目录的纯文本文件,用简洁的指令告诉搜索引擎爬虫“哪里可以进、哪里要绕行”。配置得当,爬虫会把有限抓取预算消耗在核心内容上,重要页面的收录速度会有明显改观;但若一个路径或符号写错,整站从搜索结果中消失的惨剧并不少见。下面我们系统梳理 robots.txt 的完整语法,并把容易出错的细节一并讲透。
先在浏览器地址栏输入你的域名再加上 /robots.txt,比如 https://example.com/robots.txt,就能直接查看这份配置。它的本质就像站点的“引路员”,为爬虫规划抓取路线,却并不是决定页面是否被收录的“裁判官”。想让某个网页彻底从搜索结果中消失,正确的做法是在页面中部署 noindex 标签。robots.txt 只能控制爬虫是否来抓取,对于已经被抓取或从其他渠道获得的页面,搜索引擎照样可能纳入索引并展示出来。举例来说,你禁止了某个商品页面的抓取,但别的网站大量外链且引用了该商品内容,搜索引擎依然可能建立索引,只是展示的来源变成了第三方。
另一个必须记住的现实:这份文件对遵守规则的爬虫有效,对恶意采集工具来说形同虚设。主流搜索引擎的蜘蛛都会严格遵循约定,但那些抓取你数据、频繁刷接口的外挂程序,根本不会理会 robots.txt。因此,涉及用户隐私、订单详情、后台管理等敏感内容的目录,务必要叠加登录验证、IP 白名单或防火墙策略等硬性防护,不能把安全底线押在“君子协定”上。
robots.txt 由多条规则组构成,每个规则组必须以 User-agent 字段开头。所有字段统一采用“名称: 值”的格式,冒号最好用英文半角,并在其后跟一个空格。搜索引擎的容错能力虽然不差,但规范的书写能最大限度避免意外行为。
该字段用于指定当前规则组适用哪个爬虫。比如只想限制谷歌的抓取,就写 User-agent: Googlebot;希望所有搜索引擎一视同仁,直接使用通配符 User-agent: *。你可以按需建立多个规则组,例如对谷歌放宽权限,对必应适当收紧,做到差异化管控。
Disallow 声明禁止抓取的路径,Allow 声明允许抓取的路径,二者通常成对出现。特别提醒:如果 Disallow 后面留空(写成 Disallow:),表示解除所有限制,爬虫可以抓取全站。当同一个 URL 同时命中 Allow 和 Disallow 时,搜索引擎默认采纳“最长匹配优先”的规则,即谁的路径写得更具体,谁就优先生效。举个例子,同时写 Disallow: /api/ 与 Allow: /api/public/,由于后者路径更长、更具体,public 目录下的内容仍然可以被正常抓取。
Sitemap 指令用来指定站点地图的完整链接,让爬虫在一个地方就能找到全部内容,通常放在文件末尾。Crawl-delay 用于设置爬虫两次抓取之间的间隔,需注意谷歌的抓取工具并不支持该字段,它对谷歌爬虫完全不生效,若要主动控制谷歌抓取频率,可以使用 Google Search Console 中的抓取速率设置。
robots.txt 在官方标准中支持两种通配符:星号(*)代表任意长度字符,美元符号($)代表路径结尾。理解它们的用法能让规则更加精准。比如 Disallow: /*.pdf$ 表示禁止抓取所有 PDF 文件,而 Allow: /public/*.html 表示允许抓取 public 目录下所有 HTML 页面。需警惕的是,星号不能替代路径中的斜杠,更不能当作“匹配任意目录”来用,写 Disallow: /*.php 实际匹配的是带有 .php 后缀的 URL 片段,而非目录。此外,规则匹配是对 URL 路径的前缀匹配,写成 Disallow: /category/ 会命中该目录下所有子页面,若只想拦截首页,应写成 Disallow: /category/ 加 $ 符号且不加末尾斜杠。
根据大量实际案例,以下错误值得反复排查。
没固定时间表。主流搜索引擎会定期重新抓取这份文件,快的几小时内更新,慢的可能需要一两天;碰到重大规则变更,可在搜索引擎的管理员后台主动提交 robots.txt 以加速更新。
搜索引擎按“最长匹配优先”原则处理,谁的具体路径更长就更优先。若两者长度相同,则 Allow 通常享有更高优先级,但建议在书写时就避免这种冲突情况,把规则整理清楚。
不能。它只是一种抓取约束协议,对恶意采集、非法下载毫无防御能力。涉及敏感数据,必须使用登录认证、接口鉴权、IP 封禁等真正的安全手段,绝不能依赖 robots.txt。
robots.txt 配置的核心是“精确”二字:精确指定对象、精确书写路径、精确使用通配符。建议每次改动后用爬虫模拟工具或搜索引擎提供的测试页面验证一遍规则命中情况,确认无冲突后再上线。日常维护中,定期登录根目录检查文件是否存在、内容是否为最新版本,在迁移或改版时优先复查此文件,就能少踩许多坑,让爬虫将更多抓取额度花在你的优质内容上。