搜索引擎的抓取工具访问一个网站时,第一步往往就是查看根目录下的 robots.txt 文件。这个普通的文本文件,本质上相当于写给爬虫的一封"参观指南",明确了哪些页面可以浏览、哪些区域禁止入内。规则设置得当,既能保护后台和敏感目录不被搜索索引,也能引导爬虫将有限的抓取配额集中到关键页面上,对站点的搜索表现有明显助力。
robots.txt 文件必须存放于网站根目录,例如 https://yourdomain.com/robots.txt。文件名大小写敏感,通常建议采用 UTF-8 编码保存,每条规则单独一行,行尾避免多余空格。要把规则写准确,先得弄清楚几个基础参数的定义与边界:
除了以上三项,还可以添加 Sitemap 行来指明站点地图的位置。下面是一个常见的组合示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml
这段配置的含义是:站点默认开放抓取,但 /admin/ 目录不开放,其中 /admin/public/ 属于例外,可以访问。这里有一个常见的坑:如果某个爬虫不理解 Allow 指令,它只会遵循 Disallow 的限制,那么 /admin/public/ 对它来说依然是禁地。
不同类型的网站对抓取的控制需求差异很大。以下三种模式覆盖了大多数场景,你可以直接参考并替换成对应的路径。
对于内容型站点或新上线的网站,通常希望所有页面都能被索引。此时只需一行规则:
User-agent: *
Disallow:
其实省略 Disallow 一行效果也完全相同。最怕的是误写成 Disallow: /,一旦如此,所有爬虫都会被拒之门外,收录工作立即中断。修改规则后,最好使用站长平台的抓取测试工具验证实际效果。
如果不想让某个特定引擎收录页面,只需为它单独写一条规则:
User-agent: Bingbot
Disallow: /
这样设置不会影响其他爬虫的抓取策略。需要特别注意爬虫名称必须写准确,比如 Googlebot、Baiduspider 和 Sogou 蜘蛛的名称各不相同,写错名称规则就会失效,建议到各搜索引擎官方文档中核对爬虫名称。
部分工具型站点希望爬虫只进入某些特定目录,其他路径全部封锁。配置方式如下:
User-agent: *
Allow: /public/
Disallow: /
这种写法先允许 /public/ 目录,再禁止其他所有路径。但这里有个关键前提:由于 Allow 并非所有爬虫都支持,对于不识别该指令的爬虫,这条规则可能会变成全站拒绝。因此,如果你依赖这种配置,最好针对目标搜索引擎单独设一条规则,并把支持 Allow 的爬虫列在文件靠前的位置。
实际运维中,很多问题并非规则写错,而是细节没注意到。这类陷阱隐蔽性强,排查起来也费时。
写完 robots.txt 并不意味着万事大吉,规则是否按预期执行必须经过验证。
测试时还要注意 CDN 或缓存的影响,某些缓存插件可能输出旧版文件内容,导致测试结果失真。
不能。robots.txt 的作用是阻止爬虫访问页面,但如果页面被其他外部链接指向,搜索引擎可能仍会根据链接描述生成摘要或展示有限信息。想要彻底不显示,需要同时使用 noindex 标签。
Disallow 是请求爬虫不要访问页面,属于抓取层面;noindex 是告诉爬虫不索引页面,属于收录层面。如果只用 Disallow,爬虫无法看到页面内容,也就无法识别 noindex 指令,因此两者通常配合使用,顺序是先放行抓取,再声明不索引。
不会。已收录的页面会继续留在搜索结果中,直到搜索引擎下次抓取时重新评估。如果想要更快移除,可以通过站长平台的删除 URL 工具提交申请,或等待自然更新周期。
robots.txt 看似简单,却是站点与搜索引擎之间最底层的一道沟通桥梁。遵循"根目录存放、UTF-8 编码、逐行指令、爬虫名称准确"这几个基本准则,就能避开绝大部分低级错误。日常运维中,建议将文件变更纳入版本管理,每次改动后务必用官方工具复查,并间隔一段时间观察抓取报告中是否有异常波动。只有先守住这份基础规则,后续的内容优化和链接建设才能发挥应有的效果。