Robots.txt文件本质上是网站与搜索引擎爬虫之间的约定,它使用纯文本格式,放置在网站根目录下。当Google、百度等搜索引擎的爬虫访问一个站点时,会先尝试读取这个文件,根据里面的规则决定哪些URL可以抓取、哪些不能抓取。正确编写robots.txt能有效避免资源浪费,也能把后台、脚本目录等不希望被收录的内容挡在搜索结果之外。

Robots.txt的基本语法结构
Robots.txt由一条或多条规则组成,每条规则通常包含User-agent和Disallow或Allow指令。User-agent用来指定规则适用于哪个搜索引擎爬虫,星号*代表所有爬虫。Disallow后面跟着不想被爬取的路径,Allow则用来放行被Disallow覆盖的特定子路径。需要注意的是,每行指令独占一行,井号#开头的行会被当作注释忽略。
一个最简单的robots.txt可以写成下面这样:
User-agent: *
Disallow: /admin/
Disallow: /private/
这段配置表示所有搜索引擎爬虫都不允许访问以/admin/和/private/开头的URL。路径区分大小写,所以/Admin/和/admin/会被视为两个不同的目录。如果站点根目录下没有robots.txt文件,爬虫会认为所有内容都可以抓取。
屏蔽无用目录的常见写法
网站中通常有些目录不需要被收录,比如后台管理目录、缓存目录、临时文件目录、模板目录等。这些目录下往往没有面向用户的实质内容,抓取只会增加服务器负担,甚至可能暴露系统信息。针对这些目录,可以直接用Disallow逐条列出。
例如使用WordPress搭建的网站,通常需要屏蔽/wp-admin/和/wp-includes/。可以写成:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /cgi-bin/
Disallow: /tmp/
对于使用ThinkPHP、Laravel等框架开发的站点,还应该考虑屏蔽/vendor/、/storage/、/config/等目录。注意,Disallow后面如果只写目录名而不带斜杠,不同搜索引擎的匹配范围可能有差异,建议统一以斜杠结尾表示整个目录。
如果某些目录下有个别文件需要被收录,可以使用Allow进行精确放行。比如禁止了/pdf/目录,但希望其中的白皮书页面被抓取,可以这样写:
User-agent: *
Disallow: /pdf/
Allow: /pdf/whitepaper.html
屏蔽无用页面的技巧与通配符使用
除了目录,很多动态页面也会产生大量重复或无价值内容,比如搜索结果页、打印页、带参数的筛选页。这些页面数量巨大,容易让爬虫陷入抓取陷阱。robots.txt支持两个通配符:星号*表示任意字符序列,美元符号$表示URL结尾。通过这些符号可以精确匹配特定模式的页面。
| 指令 | 匹配示例 | 说明 |
|---|---|---|
| Disallow: /*?s= | /search?s=keyword | 屏蔽搜索参数开头的URL |
| Disallow: /*.pdf$ | /download/file.pdf | 屏蔽所有PDF文件 |
| Disallow: /print/* | /print/article/123 | 屏蔽打印版本页面 |
| Allow: /public/$ | /public/ | 放行指定结尾路径 |
使用通配符时要特别注意,星号不能匹配斜杠以外的所有字符这一说法在部分搜索引擎中并不严格,实际测试时最好用Google Search Console或百度搜索资源平台的robots检测工具确认。另外,美元符号$必须放在规则末尾才表示结尾匹配,否则会被当作普通字符。
有些页面本身有独立价值,但带跟踪参数时会产生重复内容,例如加上了?utm_source=xxx的营销链接。如果不想屏蔽整个页面,可以只屏蔽特定参数组合,但robots.txt对URL参数的匹配能力有限,这种情况下用canonical标签或搜索引擎后台的URL参数工具往往更有效。
验证与常见误区
写完robots.txt后,建议先保存为UTF-8编码的纯文本文件,上传到网站根目录,确保通过http://你的域名/robots.txt可以直接访问。然后使用Google Search Console的robots测试工具,输入一个测试URL,选择对应的爬虫类型,查看是否被允许或阻止。百度也有类似的robots检测功能,可以在百度搜索资源平台中找到。
常见的误区之一是用robots.txt隐藏敏感数据。这个文件只是给搜索引擎看的建议,任何用户都可以直接打开robots.txt看到屏蔽了哪些路径,并且爬虫并非强制遵守。真正需要保密的目录应该通过服务器认证、防火墙或robots meta标签配合处理,而不是单纯依赖robots.txt。
另一个误区是屏蔽了CSS、JavaScript或图片资源目录。搜索引擎需要渲染页面才能理解布局和内容,如果这些资源被禁止抓取,可能会影响排名展示。除非这些目录确实包含大量无用文件,否则不要轻易屏蔽/assets/、/js/、/css/等前端资源目录。
还要注意robots.txt文件本身的大小限制,Google规定最大不超过500KB,超出部分可能不生效。修改规则后搜索引擎不会立即更新,通常需要几天到几周时间重新抓取。如果短期内需要紧急移除某个已被收录的页面,应使用搜索引擎提供的移除工具或设置noindex标签,而不是只改robots.txt。
Robots.txt屏蔽无用目录robots协议修改时间:2026-09-26 10:21:07