Robots.txt 是放在网站根目录的纯文本文件,依靠约定俗成的指令告诉搜索引擎蜘蛛哪些页面可以抓取、哪些路径需要避开。它属于君子协议,没有强制力,是否遵守全凭爬虫自觉。配置得当能引导蜘蛛优先抓取重点内容,减轻服务器压力;配置失误则可能让整站从搜索结果中消失,代价不小。
蜘蛛访问一个站点,第一步往往就是读取根目录下的 robots.txt,然后才决定接下来的爬行路线。如果找不到这个文件,蜘蛛默认整站都对外开放,所有公开的 URL 都有机会被收录。反过来,善用这个文件就能有意识地规划蜘蛛的抓取路径。
日常运营里,它主要用来完成这几类工作:屏蔽后台登录页和内部工具页面、过滤搜索结果页和自动聚合的标签页、对测试环境或临时目录设置访问门槛、以及通过设定抓取间隔来缓解服务器瞬时压力。
需要特别注意的是,协议只对正规搜索引擎的蜘蛛有效,恶意采集工具并不会遵守。因此凡是涉及用户隐私、交易数据等敏感信息,绝不能依赖 robots.txt 来保护,必须依靠服务器权限和程序层面的安全措施。
robots.txt 采用分组结构编写,每一组先声明规则针对哪个爬虫,再列出具体的指令。掌握以下几条基础指令,就能应对绝大多数场景:
下面是一份典型配置的示例,可以直观看到各指令如何配合使用:
User-agent: *
Disallow: /temp/
Disallow: /private/
Allow: /private/notice.html
Sitemap: https://www.example.com/sitemap.xml
这份配置的含义是:所有搜索引擎蜘蛛都禁止抓取 temp 和 private 目录,但 private 下的 notice.html 属于例外,允许访问,同时告知蜘蛛站点地图的存放位置。值得注意的是 Allow 指令并非所有爬虫都支持,如果爬虫不识别该指令,它仍然会遵循 Disallow 的约束。
配置逻辑看似简单,实际上一个斜杠或字母的差异,结果可能截然不同。以下是站长们最容易出错的地方:
文件写完后不能就此高枕无忧,上线前和日常运营中都要进行必要的检查。
先说简单的自查方法:打开浏览器,直接访问 你的域名/robots.txt,看能否正常显示内容且无语法报错。各搜索引擎站长平台通常提供专门的 robots 测试工具,可以模拟蜘蛛抓取,查看实际生效的规则。修改配置后建议立即用这类工具验证一次,确认屏蔽范围符合预期。
再谈更新节奏,网站结构变化时配置需要同步调整,比如新增了目录、改版了 URL 规则。定期回顾也不可少,假设某个月流量出现明显的异常波动,先排查 robots.txt 是否被误改。注意不要频繁变动规则,每次改动后蜘蛛重新抓取并生效需要时间,短期内反复调整反而可能导致抓取不稳定。
修改后的 robots.txt 会被蜘蛛定期重新抓取,具体时间因引擎而异,短则几十分钟,长则数天。修改完成后,可以在搜索引擎站长工具里手动提交 robots.txt 以加快生效速度,也可以主动提交受影响的 URL 请求重新抓取。
不够。Disallow 只能阻止抓取,如果页面已经存在于搜索索引中,搜索结果里仍会保留链接,只是没有摘要内容。最可靠的方式是同时使用 noindex 标签或 meta robots,明确告诉搜索引擎不收录该页面。
不行。规范要求 robots.txt 只能放在站点根目录,文件名必须小写。搜索引擎只会读取这一个文件。放在子目录下的同名文件不会被识别,如果想限制某个子目录,需要在该目录对应的主站 robots.txt 中用路径规则来声明。
配置好 robots.txt 的关键在于想清楚你要引导还是阻断,而不是机械套用模板。建议先把整站 URL 结构梳理一遍,明确哪些路径必须开放、哪些需要屏蔽,再动手编写。写完务必用站长工具的测试功能验证效果,并在每次改版后复查一遍。一旦发现索引数量骤降或抓取频率异常,第一时间检查这个文件,往往能快速定位问题。