robots.txt是一个放置在网站根目录下的纯文本文件,用约定的语法告诉搜索引擎的抓取程序:这个网站里哪些部分可以看,哪些部分不要碰。配置得当,搜索引擎能更高效地把力气花在你真正想让用户看到的内容上,同时避免后台、测试页面等敏感信息被收录到结果页里。
搜索引擎派出爬虫访问一个网站时,第一步就是去检查根目录下的robots.txt文件,看看这个网站是否设定了访问权限。如果找不到文件,爬虫通常会顺着所有能看到的链接一路抓下去,不仅浪费抓取资源,还可能导致一些本该隐藏的页面被收录。
这个文件的实际用途可以归纳为三点:一是限制低价值内容(如后台管理界面、排版测试页)被抓取,节省配额;二是拦截带有跟踪参数或重复内容的地址,避免搜索引擎把权重分散到无效页面上;三是通过Sitemap指令告诉爬虫网站地图在哪里,加速新内容的发现。
不过有一点要弄清楚:robots.txt是一个建议性协议。规矩的爬虫(例如Googlebot)会严格执行,但个别的恶意程序不会理会这些规则。另外,这个文件本身并不能阻止页面出现在搜索结果中——如果要彻底控制收录行为,还需要配合meta标签或X-Robots-Tag响应头。
文件内容由一条条记录组成,每条记录开头先指定作用对象,再列出对应的限制或允许指令。标准语法如下:
书写时要注意几个容易出错的细节:指令和值之间用一个英文冒号加空格分隔;路径的大小写是敏感的,/Admin/ 和 /admin/ 是两个完全不同的地址;注释使用井号(#)开头;虽然部分爬虫支持星号(*)通配符和美元符号($)匹配结尾,但这并非所有引擎的通用行为,依赖它们前需要先确认目标搜索引擎的支持情况。
下面给出几种常见的配置方案,你可以根据自己网站的实际情况调整后使用。
如果你的网站基于常见的CMS搭建,可以用下面的规则把后台入口统一隐藏起来:
User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Disallow: /backend/
这种做法适合绝大多数内容管理网站,能有效防止登录页面和系统配置页面被搜索引擎收录。要注意的是,如果某些目录在Disallow中重复出现,合并成一条更简洁的规则更好维护。
如果网站内容结构简单、页面质量都较高,不需要做任何限制,可以这么写:
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml
这个写法适合所有内容都希望被收录的网站。还要提醒一句:这里的 Disallow: 空值并不等同于没有这行指令,它明确表示对所有路径放行,语义上是完整的。
电商或列表类网站经常因为参数URL重复导致抓取浪费,可以这样设置:
User-agent: *
Disallow: /*?sort=
Disallow: /*?page=
Disallow: /*.pdf$
Allow: /reports/annual-report.pdf
这个例子中,问号和通配符组合拦截了动态参数,美元符号把规则限定在.pdf结尾的文件类型上,同时又单独放行了你希望被收录的那一份报告。配置完成后,建议用谷歌搜索中心的robots测试工具逐条验证,确认所有规则都按预期生效。
很多站点在设置robots.txt时容易走入几个误区。最常见的错误是把 Disallow: / 当成屏蔽根目录的意思,实际上这会封死全站抓取,搜索引擎从首页开始就无法进入。如果确实需要临时屏蔽全站,务必在确定情况并准备好后立即移除该规则。
另一个高频问题是在Disallow中写了相对路径或不带斜杠的目录名,比如 Disallow: admin,这个写法很可能匹配不到真实路径,规则形同虚设。正确做法是统一以斜杠开头,写成 /admin/ 的形式。此外,已经配置了robots.txt后,文件内容发生变更时,搜索引擎需要重新抓取和处理才能感知,生效不是即时的,通常需要等待数小时到几天不等。最后记住一点:这个文件不是安全工具,真正重要的数据依靠访问权限控制,而不是文本协议。
不能。robots.txt只能控制爬虫是否抓取页面,但不能阻止搜索引擎把已抓取的页面(比如通过其他页面的链接获取)显示在结果列表中。想让页面彻底不出现在搜索结果,需要用meta robots标签的noindex指令或X-Robots-Tag响应头。
没有这个文件并不会被搜索引擎当作违规处理,爬虫会抓取全站所有可链接到的页面。影响主要体现在两方面:后台或临时页面可能被收录,以及大量动态参数页浪费抓取配额。如果网站结构简单、内容质量齐整,不创建文件也是可以接受的。
搜索引擎会周期性重新抓取这个文件,生效时间不固定,通常从几分钟到一两天不等。修改后可以在搜索平台(如百度搜索资源平台或谷歌Search Console)里手动提交或请求抓取,能明显加快更新速度。
配置robots.txt的核心思路是:只拦你不希望被收录的内容,把通畅的路径留给高质量页面。动手前先梳理一遍网站结构,明确哪些目录需要保护、哪些参数需要过滤,然后按语法规则分条写清楚。写完务必用官方工具逐行验证规则,确认没有整站被禁的误操作。若是站点规模不大、内容没有明显问题,保持简单的全站放行再加一条Sitemap地址,往往是最稳妥的选择。