robots.txt 是一份放在网站根目录下的纯文本规则文件,主要作用是告诉搜索引擎的抓取机器人哪些网址可以访问、哪些应当避开。它本身不参与排名计算,但合理的配置能明显提升抓取效率,让新内容更快被搜索引擎收录;反之,一条不严谨的规则就可能让重要页面长期无法入库,甚至拖累整站的抓取节奏。
很多人把 robots.txt 当成一道安全防线,这种理解需要马上纠正。它本质上只是一个君子协定,只对遵守规范的搜索引擎爬虫有效。那些批量采集数据的脚本、漏洞扫描工具根本不会理会这个文件。凡涉及用户隐私、管理后台、订单数据等敏感信息,必须依赖登录验证、IP 白名单、访问控制等真正的安全手段,不能指望一份文本文件来防人。
同时要清楚,robots.txt 管的是“抓取”这一步,而页面是否出现在搜索结果里,属于“索引”环节。如果你只是不想让某个页面被搜索展示,单独写一条 Disallow 往往没有用——爬虫仍然可能通过其他网站的外链发现这个页面并建立索引。更稳妥的组合是:一边用 robots.txt 禁止抓取,一边在页面里加上 noindex 标签,两者配合才能比较可靠地阻止页面被搜索呈现。
robots.txt 的基本结构由多个规则组构成,每一组先写 User-agent 声明,随后跟一条或多条 Allow 或 Disallow 指令。书写时尽量保持字段名小写、冒号后空一格,这种规范写法能减少不同搜索引擎解析时的兼容性差异。
User-agent 用于指明本组规则针对哪个爬虫。例如 User-agent: Googlebot 只影响谷歌的抓取工具,User-agent: * 则覆盖所有爬虫。你可以在同一个文件里为不同搜索引擎单独制定规则,比如禁止百度访问某个目录,同时放行谷歌。这种灵活性在多引擎运营时很实用,但也容易因为规则相互交错而出现意外结果,建议每个规则组都保持独立且边界清晰。
Disallow 用来禁止抓取指定路径,Allow 则相反,是放行路径。当某个网址同时命中 Allow 和 Disallow 时,搜索引擎按最长路径优先的规则决定胜负——哪条规则写的字符更长,谁就生效。举例来说,如果文件里有 Disallow: /api/ 和 Allow: /api/public/ 两条,那么 /api/public/ 下的内容可以正常抓取,其余 /api/ 路径继续保持禁止状态。
还有一个细节容易被忽略:Disallow 后面不写内容,表示解除所有限制。比如“Disallow:”冒号后空白,代表该规则组对全部路径开放,适合完全公开的站点。但不同搜索引擎对空值的处理并不完全相同,建议全站开放时直接不写 Disallow 这一行,最省事也最安全。
Sitemap 指令用于告诉爬虫网站地图的完整网址,能帮助抓取工具快速找到新发布的页面,加快收录速度。Crawl-delay 则用来设置两次抓取之间的间隔秒数,对资源紧张的服务器有一定保护作用。不过要留意,现在不少主流搜索引擎已经不再支持 Crawl-delay,或者对其做了单独限制,因此不能把所有希望都寄托在这条指令上,服务器的实际承载能力还是要靠自身优化来保障。
有些配置在字面上没有问题,实际效果却可能与预期完全相反。最典型的是用错通配符位置。robots.txt 支持 * 和 $ 的有限通配,$ 用于匹配路径结尾。例如 Disallow: /*.pdf$ 能拦下所有 PDF 文件,但如果把 $ 放错位置,比如写成 Disallow: /abc$,它只会命中以 abc 结尾的那一个精确路径,和你想封禁整段目录的目标差得很远。
另一个高发问题是路径大小写敏感。robots.txt 的路径匹配区分大小写,如果服务器上有 /News/ 目录,而你写的是 /news/,这条规则就不会生效。配置前先确认站点的实际目录结构,避免反复试错浪费时间。
此外,多个规则组之间的优先级也常让人困惑。不同搜索引擎对规则合并的算法并不统一,有的以更具体的 User-agent 为准,有的按文件中出现的先后顺序处理。为了避免歧义,尽量不要在同一文件里对同一爬虫重复声明多组规则,保持每个爬虫对应一组清晰明了的规则即可。
配置完成后,不要急着上线,先用以下几步做个快速检查:
同时要提醒自己:robots.txt 是全局性的,改动的生效范围扩散很快,重要站点建议先在测试环境做验证,或者选择流量较低的时段进行变更,避免误伤。另外,定期检查文件里是否有不再需要的旧规则,过期的 Disallow 指令可能会挡住你后来新加的栏目。
不会,它不提供任何安全防护能力。恶意程序根本不读取这个文件,所以它不存在“被攻破”的问题。真正的风险在于误配置导致正常页面不被抓取,影响收录和流量,而不是安全层面。
两者目的不同。Disallow 禁止抓取,但无法阻止页面被索引;noindex 明确告诉搜索引擎不要展示该页面。如果目标是彻底不让页面出现在搜索结果中,建议两者配合使用,同时依靠密码等手段保护真正敏感的内容。
搜索引擎通常不会实时重新读取 robots.txt,而是按照各自的缓存周期进行刷新,短则几小时,长则数天。可以通过搜索引擎的抓取测试工具主动发起一次抓取请求来加速生效过程,无需反复修改文件内容。
robots.txt 的核心价值在于引导抓取,而不是控制索引或保障安全。配置时抓住三条主线:语法规范写清楚、匹配逻辑想清楚、补充指令用得谨慎。上线前做好自检,上线后定期复查,你的站点就能在抓取效率和安全边界之间找到平衡。