robots.txt 是网站根目录下一个名为 robots.txt 的纯文本文件,用来告诉搜索引擎的抓取程序,站内哪些路径可以访问、哪些路径需要避开。它不能阻止用户直接访问页面,但能帮助搜索引擎更高效地抓取内容,同时减少无效页面对服务器资源的占用。理解它的语法和常见用法,是网站运营者的一项基本功。
这个文件的语法相当简单,本质上是由若干个指定单词组成的规则集合。每一条规则都需要理解清楚,否则容易在配置时出现偏差。
判断标准与避坑提示:一个完整的 User-agent 分组,至少需要一条 Disallow 或 Allow 语句才算有效;若只写了 User-agent 而没有后续规则,该分组会被忽略。此外,务必牢记 robots.txt 只约束爬虫,普通用户用浏览器依然可以直接打开被屏蔽的 URL,因此绝不能把敏感信息的安全寄托在这个文件上。
对于大多数站点而言,从一份干净的初始配置开始是比较稳妥的选择。下面展示一个常见的模板,可以作为参考底稿。
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Sitemap: https://www.example.com/sitemap.xml
部署验证与常见错误排查:上传后在浏览器中访问 你的域名/robots.txt,若能原样显示文件内容,即说明配置已生效。初学者最容易犯的错误是误写 Disallow: /,这一行会禁止爬虫访问整站,导致全站从搜索结果中消失。另一个常见问题是漏掉路径结尾的斜杠,例如写 /tmp 并不能覆盖 /tmp/ 目录下的内容。
当网站目录结构日渐复杂,全放或全挡往往不够灵活,Allow 指令就能派上用场。比较典型的需求是:想隐藏某个图片素材目录,但希望其中某一张品牌宣传图仍然能被搜索引擎收录。
User-agent: *
Disallow: /assets/img/
Allow: /assets/img/brand.png
实践建议:Allow 的路径必须与 Disallow 的路径处于同一前缀之下,否则规则可能不生效。另外要注意,不同的搜索引擎对 Allow 与 Disallow 的优先级处理略有差异,多数搜索引擎会采用长度最长匹配的规则;如果你的站点面向多个搜索引擎,最好在各搜索引擎官方文档中确认其具体的匹配机制。
robots.txt 还支持 *(匹配任意字符)和 $(匹配结尾)这两个通配符。例如 Disallow: /*.pdf$ 可以屏蔽站点根目录下所有 PDF 文件。通配符能简化规则,但也容易造成误用。
典型陷阱提示:一是通配符并非所有搜索引擎都完整支持,部分爬虫只会做字面前缀匹配;二是 robots.txt 文件大小有上限建议(一般不超过 500 KiB),超出部分会被忽略;三是如果文件内容出现非 ASCII 字符或 BOM 头,可能导致规则解析异常。写完后最好用搜索引擎提供的站长工具或在线 robots 测试器进行验证,确认规则符合预期再上线。
搜索引擎会定期重新抓取 robots.txt 文件,但周期并不固定,通常在几小时到几天之间。若希望加速生效,可以登录对应搜索引擎的站长平台,手动提交该文件或请求重新抓取。
不能。robots.txt 仅对遵守协议的搜索引擎爬虫有效,其他程序或用户访问并不受此限制。若需保护敏感内容,应通过登录验证、IP 白名单等方式实现访问控制。
没有该文件时,搜索引擎会默认抓取所有可达的公开页面,这可能导致一些不重要或临时的页面进入索引,浪费抓取配额。对于大多数公开站点,缺少 robots.txt 不会造成致命问题,但主动配置依然是更推荐的做法。
配置 robots.txt 并不复杂,关键在于理解 User-agent、Disallow、Allow 三者之间的关系,并注意路径书写和通配符的细节。建议先从一个带 Sitemap 引用的基础版本入手,再逐步根据站点需求添加具体规则。每次调整后,务必访问 你的域名/robots.txt 检查内容,并结合站长工具验证规则是否按预期生效。保持规则的简洁和明确,才能让搜索引擎高效地访问你的站点。