robots.txt 是存放在网站根目录的纯文本文件,用来向搜索引擎爬虫说明站内哪些路径可以抓取、哪些路径需要回避。合理配置它,能让有限的抓取资源优先分配给重要页面,加快新内容的收录;但若语法写错或路径理解有偏差,也可能造成页面长时间不被收录,甚至影响整站权重。下面从最基础的规则讲起,逐步梳理这份文件的实际用法和常见误区。
这份文件本质上是一份抓取许可协议,它的作用范围仅限于爬虫是否来访问某个 URL。至于页面被抓取后是否进入索引库、在搜索结果中排第几名,它都无法直接干预。不少人以为在 robots.txt 里屏蔽了某个地址,该页面就会从搜索结果中彻底消失,这是一个常见的理解偏差。只要这个链接被其他站点广泛引用,搜索引擎依然有可能通过外部线索发现它并收录,此时搜索结果中的抓取时间或摘要可能来自其他来源。
此外,robots.txt 的约束力依赖爬虫的配合。主流搜索引擎的蜘蛛通常都会遵守这些规则,但一些恶意采集工具、私人爬虫并不理会这份声明。凡是涉及后台管理、用户隐私、交易记录等敏感内容的目录,必须配合登录验证、IP 白名单或防火墙等安全手段,不能只靠这份“君子约定”来防护。
robots.txt 的内容由若干规则组构成,每个规则组以 User-agent 行开头。所有字段统一采用“名称: 值”的格式,冒号必须是英文半角,冒号后通常留一个空格。虽然不少爬虫对格式比较宽容,但保持规范写法能减少未来解析异常的风险。文件中的路径均以根域名作为基准,例如 Disallow: /private/ 表示禁止抓取根域名下的 private 目录。
该行声明当前规则组作用于哪类爬虫。若要单独限制 Google 的蜘蛛,就写 User-agent: Googlebot;若要所有搜索引擎的爬虫统一执行,则使用通配符写法 User-agent: *。可以在同一文件中建立多个规则组,对不同爬虫实施差异化策略,比如对百度开放更多目录,同时限制必应的抓取范围。
Disallow 用于声明禁止抓取的路径,Allow 用于声明允许抓取的路径,两者常常搭配使用。一个容易忽略的细节是:当 Disallow 后面为空值(即只写 Disallow: 而不带任何路径)时,代表清空所有限制,爬虫可以抓取全站。当多个规则同时匹配同一个 URL 时,搜索引擎遵循“最长匹配优先”的原则,路径越具体优先级越高。例如同时存在 Disallow: /api/ 和 Allow: /api/public/ 两条规则,由于后者路径更长更具体,public 子目录下的内容会被放行抓取。
Sitemap 字段用来声明站点地图的完整 URL,方便爬虫快速了解全站结构,通常放在文件末尾,写法为 Sitemap: https://example.com/sitemap.xml。Crawl-delay 字段用于设定爬虫两次抓取之间的间隔秒数,但需要注意 Google 的抓取程序并不支持该指令,它更建议通过 Search Console 后台的抓取频率设置来控制节奏。其他搜索引擎对该指令的支持程度不一,使用前最好确认目标爬虫的官方文档。
路径理解是失误最多的环节。robots.txt 中的路径是相对根域名的,不以斜杠开头的写法(如 Disallow: private/)虽然部分爬虫也能解析,但存在兼容性风险,应统一使用以 / 开头的绝对路径格式。通配符方面,主流搜索引擎支持 $ 表示匹配行尾、* 表示匹配任意字符序列,但不同引擎对通配符的支持程度略有差异,在不确认目标爬虫规则时尽量少用。
另一个常见问题是主机名混淆。爬虫访问 robots.txt 时使用的是当前域名的主机名,如果站点同时存在 www 和非 www 两个版本,需要分别配置各自的 robots.txt,否则可能出现规则不生效的情况。另外,文件必须命名为小写的 robots.txt,放置于网站根目录,放置在子目录或其他目录都不会被识别。若修改规则后想验证是否生效,可以通过搜索引擎官方的 robots.txt 测试工具进行检测。
配置这份文件之前,先想清楚哪些目录不希望被搜索引擎访问。一般来说,后台管理页面、用户中心、购物车、临时文件、重复筛选参数等目录适合屏蔽;而产品详情页、文章内容页、分类导航页则应保持开放。建议在文件开头用注释行写明每个规则组的用途和修改日期,便于后续维护。
配置文件修改后通常不需要重启服务器,爬虫会在下一次抓取时自动读取最新版本,但生效时间可能存在延迟,短时间内看不到变化属正常现象。
文件更新后,搜索引擎爬虫会在下一次抓取它时读取新版内容,这个周期通常从几小时到几天不等,取决于站点的抓取频率。想加快确认效果,可以使用搜索引擎的测试工具直接提交文件内容进行验证,不必等待自然刷新。
如果图片的 URL 被 Disallow 规则屏蔽,搜索引擎将无法抓取该图片文件本身,图片搜索中通常不会出现这张图,但在某些情况下,包含该图片的页面如果被收录,页面缩略图仍可能以缓存形式出现。彻底阻止图片被搜图收录,需要同时屏蔽图片文件地址和所在页面。
可以。每个规则组以 User-agent 开头,组内可以包含多个 Disallow 和 Allow 规则。爬虫在读取文件时,会找到与其名称匹配的规则组,若没有精确匹配则使用 User-agent: * 的通配组。多个规则组之间相互独立,不存在覆盖关系,建议按爬虫名称从上到下依次排列。
robots.txt 是一份轻量但影响深远的配置文件,正确使用它能让搜索引擎更高效地理解你的站点结构。建议先从明确哪些目录必须保护开始,再按规范语法逐条配置,每次修改后都用官方工具验证一遍效果。对于不需要被搜索到的页面,记得结合 noindex 标签;对于敏感数据,仍须依赖登录校验和访问控制。把这份文件当作站点与搜索引擎之间的沟通工具,而不是安全屏障,就能避开大多数常见问题。