Robots.txt 是网站根目录下一个纯文本文件,它用来告诉搜索引擎爬虫哪些页面可以访问、哪些页面需要避开。理解它的机制并能正确配置,对网站的收录效率和服务器资源利用都有直接影响。
搜索引擎的爬虫在访问站点时,第一步是请求根目录下的 robots.txt 文件。如果找到并且爬虫遵守这个协议,就会按照文件里的指令来规划接下来的抓取动作。如果文件不存在,爬虫的默认做法是抓取所有能公开访问的页面。
在实际运营中,这个文件的用处通常集中在几个方面:阻止搜索引擎访问后台管理页面、过滤如标签页或搜索结果页等价值不高的内容、通过降低抓取频率来节省服务器带宽。需要特别注意的是,这个文件只是对遵守规则的爬虫有效,它不能作为安全屏障来阻止恶意程序的访问。
文件内容由若干条记录组成,每条记录以 User-agent 行开头,接着是具体的规则指令。以下五个指令是配置时经常要用的基础内容:
可以参考下面的写法,结构清晰也方便以后调整:
User-agent: *
Disallow: /tmp/
Disallow: /private/
Allow: /private/special.html
Sitemap: https://www.example.com/sitemap.xml
这个配置表达的效果是:所有爬虫都不能抓取 tmp 和 private 两个目录,但 private 目录下的 special.html 这个文件被特别允许访问,同时提供了站点地图的地址。
配置看着简单,但实际操作中一些细节容易被忽视,导致效果不如预期。下面几种情况值得留心:
一个容易犯的错误是路径匹配方式。这里的匹配是前缀匹配,Disallow: /news 会同时屏蔽 /newsletter 这样的页面,如果要精确屏蔽目录,应该写成 /news/ 这样的形式。
写完文件后,应当进行测试,不要直接上线。可以在搜索引擎的站长平台里找到 robots 检测工具,提交当前文件的 URL,系统会模拟爬虫的请求并展示抓取结果。
日常维护中,每次调整站点结构或者改版时,都应该记得检查这个文件是否需要同步更新。因为如果将新生成的页面错误地屏蔽了,问题可能在数周后才会被察觉。如果只是临时需要阻止某个页面,建议处理完后及时把规则移除,避免留下长期隐患。
最常见的原因是文件没有放在网站根目录,爬虫只会在根目录寻找这个文件,放在其他路径下无法被读取。另外,文件名拼写错误、文件编码不规范(例如使用了不兼容的字符)以及服务器返回错误状态码,都可能导致爬虫无法识别内容。可以先用浏览器直接访问 /robots.txt 确认返回的结果是否正常。
规则按照路径长度进行匹配,而不是按书写先后顺序。长度最长的规则优先,如果长度相同,则 Allow 指令拥有更高优先级。所以想在一个被屏蔽的目录中放行某个文件,只需确保 Allow 的路径写得更具体(更长)即可。
不会。这个文件只控制爬虫是否抓取某个 URL,如果该页面已经被收录,它仍然可能出现在搜索结果中。想要移除已收录的内容,需要结合其他手段,比如在页面头部添加 noindex 标签,或者通过站长平台的删除 URL 工具提交申请。
配置 robots.txt 的核心在于明确目标:清楚哪些内容值得抓取,哪些应该屏蔽。建议先从简单的规则开始,每一条指令都做注释说明,方便日后其他成员接手维护。修改完成后,务必在站长平台验证效果,并定期检查是否因站点改版遗留了过时规则。掌握这套逻辑,就能让爬虫把有限的资源用在真正重要的页面上。