但凡运营过网站,都会遇到 robots.txt 这个文件。它放在站点根目录,是一份给搜索引擎爬虫看的行动手册,交代哪些链接可以抓取、哪些目录要避开。设置正确,搜索引擎会优先抓取重要页面,新内容也能更快被收录;反之,一个路径少写个斜杠,或者符号用错,就可能让整站页面在搜索结果里大面积消失。下面把这份文件的核心规则和容易出错的细节一次说清。
要查看 robots.txt 的内容,直接在浏览器输入域名加 /robots.txt 即可,例如 https://example.com/robots.txt。这份文件的作用是给爬虫规划抓取路线,相当于一个引导员,但它并不能决定页面最终是否被展示在搜索结果中。想让某个页面彻底从结果页消失,正确做法是添加 noindex 标签。robots.txt 只能阻止爬虫来抓取,至于搜索引擎是否把已抓到的页面放进索引库,它管不着。
一个常见的误会是:你以为禁止了商品页被抓取,它就永远不会出现。实际上,如果这个商品页在其他平台被大量转载,搜索引擎仍可能通过第三方来源将其收录并展示。另外一点要牢记,这份文件对正规搜索引擎的蜘蛛有效,对恶意采集程序基本无效。涉及用户数据、订单记录、后台管理这类敏感路径,必须叠加登录验证、IP 白名单或防火墙等硬防护,不可能只靠这份协议来兜底。
robots.txt 由若干规则组构成,每个组以 User-agent 开头。所有字段统一用“名称: 值”的格式,冒号是英文半角,冒号后建议保留一个空格。虽然搜索引擎对格式有一定容忍度,但规范书写能省去后续排查的麻烦。
这一行用来声明规则组适用于哪个爬虫。只限制谷歌搜索蜘蛛,就写 User-agent: Googlebot;想对所有搜索引擎统一管理,用通配符 User-agent: * 最省事。你也可以建立多个规则组,比如对谷歌放行多些、对必应收紧些,按需配置即可。
Disallow 表示禁止抓取的路径,Allow 表示允许抓取的路径,两者经常组合使用。注意一个细节:如果 Disallow 后留空(写成 Disallow:),表示不限制任何路径,也就是全站放行。当同一个 URL 同时匹配多条规则时,搜索引擎遵循“最长匹配优先”原则——路径更具体的一方生效。比如同时写了 Disallow: /api/ 和 Allow: /api/public/,后者路径更长,public 目录下的内容会被正常放行。
Sitemap 指令用来指向站点地图的完整 URL,方便爬虫快速发现全站内容,一般放在文件末尾。Crawl-delay 用来设置爬虫抓取间隔,但要特别留意:谷歌爬虫不识别这个指令,它主要影响其他搜索引擎。而且这个值不要设太大,否则拖慢整体抓取效率,建议先看服务器日志掌握真实爬取频率后再调整。
最常出问题的是路径书写。robots.txt 中的路径是相对于域名根目录的,开头必须带斜杠。例如要禁止抓取根目录下的 temp 文件夹,应该写成 Disallow: /temp/,而不是 Disallow: temp/。少了开头的斜杠,爬虫会把路径理解成相对路径,规则就可能失效。
另一个高频错误是使用通配符不当。虽然支持 * 和 $ 符号,但不同搜索引擎的解析标准并不完全相同,有些爬虫对通配符支持有限。与其依赖模糊匹配,不如把具体路径写清楚,降低解析歧义。还有一个隐蔽问题:某些建站工具会自动生成 robots.txt 并默认禁止所有爬虫,发布前未检查,往往上线后才发现整站无法被收录。
避坑建议:每次修改后,用搜索引擎提供的 Robots 测试工具检验规则是否符合预期,确认后再上线。同时注意文件大小和编码,保持 UTF-8 无 BOM 格式,避免因编码问题导致规则异常。
以下提供两种常见配置结构,供参考调整。
场景一:禁止后台与临时目录,放行其余全站。
场景二:只对谷歌放行所有,禁止必应收敛路径。
配置完成后,建议定期检查服务器日志,观察各搜索引擎实际抓取频率是否与预期一致,及时调整不合理的限制。
不能。它有约束力,但只对遵守协议的搜索引擎有效,对恶意采集工具毫无作用。隐私数据必须用登录验证、IP 限制或其他安全手段保护。
robots.txt 阻止的是抓取,不阻止索引。如果页面已被其他网站引用,搜索引擎仍可能通过第三方来源展示它。想要彻底隐藏,应使用 noindex 标签。
搜索引擎会定期重新抓取该文件,一般从几分钟到数天不等。加快生效的办法是通过搜索平台的站长工具主动提交更新请求。
配置 robots.txt 并不复杂,核心在于理解它的边界和语法细节。建议先明确哪些路径必须保护、哪些需要放开,再动手写规则。每次改动后同步用官方测试工具验证,并留意抓取日志反馈。把基础规则写规范、定期复查,你的站点就能稳定地被搜索引擎正确抓取。