Robots.txt 是存放在网站根目录的纯文本文件,核心作用是通过明确指令,告知搜索引擎爬虫哪些内容可以抓取、哪些路径需要回避。它并非强制性的访问控制机制,而是依赖爬虫自觉遵守的约定;合理配置能引导爬虫聚焦高价值页面,减轻服务器负载,同时提升抓取效率。
搜索引擎爬虫在访问站点前,会优先请求根目录下的 /robots.txt 文件。若该文件存在且遵循协议,爬虫便会按照其中的指令规划抓取路径;若文件缺失,爬虫则默认站点内所有可公开访问的页面均被允许抓取。
在真实运营中,这份文件主要应用于以下场景:隐藏后台管理路径、拦截非核心页面(如筛选页、搜索结果页)被索引、降低抓取频率以节省带宽资源。需要提醒的是,守规矩的搜索引擎会遵守规则,但恶意程序或敏感信息防护不能依赖它,安全加固仍应交给服务器层面的权限控制。
Robots.txt 的规则以“记录”为单位,每条记录以 User-agent 定义适用的爬虫,随后列出若干指令。掌握以下核心元素即可完成绝大多数据配置:
下面是一组逻辑严谨的写法,可直接参考使用:
User-agent: *
Disallow: /temp/
Disallow: /internal/
Allow: /internal/demo.html
Sitemap: https://www.example.com/sitemap.xml
该配置表示:所有爬虫均不得访问 temp 与 internal 目录,但 internal 下的 demo.html 例外放行,同时告知站点地图地址。
虽然语法简单,但实际落地时不少细节容易被忽视,导致配置未生效或误伤重要页面。建议重点关注以下情形:
完成编写后,建议仔细检查文件内容,避免出现语法错误或逻辑冲突。可借助搜索引擎提供的解析工具(如 Google 的 Robots testing tool),或直接通过浏览器访问 /robots.txt 查看返回内容。
日常维护中应做到:更新站点结构后同步调整规则;定期清理已失效的 Disallow 项;确保 Sitemap 地址始终有效。同时留意抓取日志中的 404 或异常请求,及时发现并修复问题。
不能。Robots.txt 只是告知爬虫不要访问指定路径,若其他网站直接引用该页面的内容,搜索引擎依然可能将其收录到索引中。若需彻底移除页面,应使用 noindex 标签或登录站长平台提交移除请求。
“Disallow:”后不加任何路径(留空)表示允许抓取所有内容,效果等同于不声明该指令;而若不写 Disallow,也不会对爬虫产生任何拦截。两者在多数爬虫眼中的语义一致,但留空写法会让配置更明确。
在 Robots.txt 协议中,Allow 的优先级高于 Disallow,即当两条指令作用于同一路径时,以 Allow 为准。但需要注意不同搜索引擎对冲突规则的解释可能略有差异,因此建议尽量编写不产生歧义的规则。
Robots.txt 的配置并不复杂,但需要兼顾逻辑严谨与细节把控。实际使用时,建议先明确站点的抓取需求,再动手编写规则,并配合验证工具检查是否生效。同时,定期回顾和更新配置,确保与站点结构变化保持一致,才能真正发挥引导爬虫、保护资源的作用。