robots.txt 是一个放在网站根目录的纯文本文件,用来告诉搜索引擎爬虫哪些链接可以抓取、哪些需要绕开。它本身不直接影响网站排名,但设置得好,可以让爬虫抓取更高效,新页面收录也更快;设置得不好,则可能出现页面迟迟不被收录,甚至整站抓取受限的情况。下面就从基础规则到实际使用,逐一梳理配置要点和容易踩的坑。
有些朋友以为在 robots.txt 里写了 Disallow 就能彻底挡住爬虫,这是一种误区。该文件依赖爬虫自觉遵守,对主流搜索引擎有效,但对恶意抓取程序或非标准爬虫没有强制力。涉及后台地址、用户订单数据等敏感内容,必须依靠登录验证、IP 白名单等硬性手段来防护,不能把安全寄托在这个文本文件上。
另外要清楚,robots.txt 只管“抓取”这个动作,页面是否展示在搜索结果中是由索引环节决定的。如果希望某个页面完全不想被看到,只靠 robots.txt 是做不到的,还需要在页面头部加上 noindex 标签,两者配合才有效。两者的作用不一样,日常操作时要分开处理。
robots.txt 由多个规则组组成,每个规则组以 User-agent 开头,后面跟着若干 Allow 或 Disallow 指令。写法格式为“字段名: 值”,冒号后面最好留一个空格,字段名尽量用小写字母,这样能减少不同解析器之间出现的兼容问题。
User-agent 用来指明这个规则组对哪个爬虫生效。比如 User-agent: Googlebot 只对谷歌的抓取程序有效;User-agent: * 则代表所有爬虫。你可以根据需要在同一文件里给不同搜索引擎设置差异化规则,比如禁止百度访问某个目录,但允许谷歌访问,这种灵活配置在做多引擎优化时很有用。
Disallow 表示禁止抓取的路径,Allow 表示允许抓取的路径。当两条规则同时命中同一个地址时,按“最长匹配优先”的原则处理,也就是字符数更长的那个规则优先级更高。举个例子,如果同时有 Disallow: /api/ 和 Allow: /api/public/,那么 /api/public/ 下的资源可以正常抓取,而 /api/ 的其他路径仍被阻止。需要注意,Disallow 留空表示解除全部限制,适合全站完全开放的站点。
Sitemap 指令用来提供站点地图的完整链接,有助于爬虫更快发现新页面,减少自动遍历链接的时间。Crawl-delay 则用于设置两次请求之间的间隔秒数,对服务器带宽有限的网站有一定保护作用。但不是所有搜索引擎都支持 Crawl-delay,有些爬虫会直接忽略这个字段,所以控制抓取频率不能只靠它一项。
针对不同网站的实际情况,以下配置思路可以按需调整后使用:
修改文件后,建议搜索一下 robots.txt 校验工具,比如 Google Search Console 自带的测试页面,输入规则后就能看到哪些 URL 会被阻止、哪些正常放行,能有效避免规则写错的情况。
实战中经常见到的问题,整理成以下几条,供配置时对照检查:
它本身不直接参与排名计算,但如果规则写错,比如不小心屏蔽了整站,爬虫无法抓取页面,那么索引数量会下降,排名自然也会受影响。修改后要第一时间用工具验证抓取状态。
不能完全保证。robots.txt 只阻止抓取,页面仍然可能因为外部链接或站内其他页面而进入索引。想要彻底从搜索结果移除,必须同时使用 noindex 标签或直接在平台后台移除请求。
基本语法是通用的,但各引擎对某些字段支持不同,比如 Crawl-delay 只有部分搜索引擎认可。建议为不同爬虫单独写规则组,并参照各平台的官方文档确认字段含义。
配置 robots.txt 并不复杂,但需要建立在理解协议边界、语法细节和典型场景的基础上。建议先备份原文件,再逐步修改并用校验工具确认效果,尤其是涉及整站屏蔽的规则要格外谨慎。多测试、多观察实际抓取数据,才能让设置真正服务于收录效率。