Robots.txt 是网站根目录下一个纯文本文件,用来告诉搜索引擎爬虫哪些内容可以抓取、哪些应当跳过。你可以把它理解为网站和爬虫之间的一纸君子协定:配置得当,可以引导爬虫把资源用在刀刃上,还能减少服务器不必要的请求负担。不过要记住,它只是约定,不是安保工具,防不住恶意抓取或数据采集程序。
绝大多数搜索引擎的爬虫在开始抓取前,会先去访问网站的 www 域和裸域下的 /robots.txt。如果文件存在,爬虫就按照里面的规则来决定路线;如果文件缺失,爬虫默认所有公开页面都可以被收录。
在实际运营中,robots.txt 的主要用途集中在三方面:拦截后台入口或临时目录、过滤带参数的翻页或筛选页面这类低质量内容,以及通过抓取延时设置避免服务器压力过大。这里必须反复强调:这个文件对正规爬虫有效,但对恶意脚本毫无约束力,千万不要把需要保密的数据放在依赖它的位置。
一份完整的 robots.txt 由若干条记录组成,每条记录由 User-agent 开头,紧跟对应规则行。只要掌握了下面这几个核心指令,大部分需求都能应付。
下面这段配置逻辑清晰,很适合作为项目搭建时的初始模板:
User-agent: *
Disallow: /temp/
Disallow: /internal/
Allow: /internal/public.html
Sitemap: https://www.example.com/sitemap.xml
它的含义是:所有搜索引擎爬虫都不能访问 temp 和 internal 两个目录,但 internal 下的 public.html 文件被单独解除限制;同时声明了站点地图的地址。改完规则后,建议用搜索平台的网址检查或抓取测试工具验证一遍,确保实际效果和预期一致。
robots.txt 虽然结构简单,但在真实的运维中,因为疏忽导致规则失效或误屏蔽的情况并不少见。下面几个场景最容易踩坑,务必留意。
配置 robots.txt 不是一劳永逸的事,需要定期检查和动态调整,才能持续保持效果。这里提供一套便于落地的做法:
判断标准很明确:规则精简、路径精确、没有冗余指令,并且经过工具复核的结果与预期完全一致。
主要有三个可能:一是规则写错了或没包含目标页面;二是搜索引擎爬虫已经抓到旧版本内容,还没重新抓取更新后的 robots.txt;三是如果有其他方式发现到这条链接(比如外部网站引用),搜索引擎可能仍然会将其收录,只是不抓取内容。建议先通过抓取测试工具排查,并耐心等待重新抓取。
不能依赖它来保护任何敏感页面。这个文件完全是公开的,任何人都能直接看到内容,恶意程序更不会遵守它。后台等安全防范应该依靠身份验证、IP 白名单、访问控制等技术手段,robots.txt 最多只能减少被顺便扫到的概率。
在同一个 User-agent 记录里,Allow 的优先级高于 Disallow。也就是说,如果 Disallow: /目录/ 和 Allow: /目录/公开.html 同时存在,后者会被优先执行,公开.html 能被抓取。这一点很多资料容易混淆,配置时务必注意顺序和覆盖范围。
robots.txt 是最基础的搜索引擎沟通工具,但它只决定“抓不抓”,不影响“收录与否”的判定。建议你从今天开始,用本文提供的模板搭建初始文件,加上路径精确匹配和工具验证这一步,就能避开大部分新手常犯的错误。后续记得每个季度抽空复查一遍,让文件和站点保持同步。