运营网站的人迟早都会遇到 robots.txt 这个文件。它放在域名根目录下,内容是一份给搜索引擎爬虫的抓取说明。通过它,你可以告诉爬虫哪些页面欢迎抓取、哪些路径需要回避。配置合理,能够提升新内容的收录速度,也能让爬虫的资源用在更重要的页面上。反之,一个符号写错或者路径拼写失误,可能导致整站页面在搜索结果里大幅减少。下面就从这份文件的职责边界开始,逐步讲清楚语法细节和常见陷阱。
要查看自己的配置,直接在浏览器地址栏输入域名加 /robots.txt,例如 https://example.com/robots.txt,就能看到当前的全部内容。它的核心使命是给爬虫规划抓取路线,算是一个引导角色,但并非最终决定页面能否出现在搜索结果里的裁判。
如果你希望某个页面彻底从索引中消失,正确的工具是 noindex 标签。robots.txt 只能阻止爬虫发出抓取请求,对于页面被抓取后是否被收录,它无法施加影响。举个例子:你禁止了某个商品详情页被抓取,但这个页面被其他网站大量外链引用,搜索引擎依然有可能将它收录并在结果中展示,只不过来源渠道变成了第三方。
此外还要认清一点,这份文件对正规搜索引擎的蜘蛛具有约束力,对恶意采集程序几乎不起作用。主流搜索爬虫都会严格遵循协议,但那些批量抓取数据、刷接口的脚本根本不会理会它。所以涉及用户隐私、订单记录、后台管理这类敏感路径,必须叠加登录认证、IP 白名单或防火墙等硬性防护,不能把安全底线寄托在协议自觉上。
整个文件由多个规则组构成,每个组以 User-agent 字段开始。所有字段统一采用“名称: 值”的格式,冒号必须使用英文半角,并且冒号后保留一个空格。虽然搜索引擎的容错能力尚可,但规范书写能最大程度降低意外情况。
这一行指明当前规则组对哪个爬虫生效。比如只想限制谷歌的搜索蜘蛛,就写 User-agent: Googlebot;希望对所有搜索引擎统一管理,使用通配符 User-agent: * 最直接。你也可以创建多个规则组,例如对谷歌放宽一些限制,对必应收紧,各按需求设置。
Disallow 声明禁止抓取的路径,Allow 声明允许抓取的路径,两者经常搭配使用。这里有个容易忽略的细节:如果 Disallow 后面留空(写成 Disallow:),表示解除所有限制,爬虫可以抓取全站内容。当同一个 URL 同时命中时,搜索引擎默认采用“最长匹配优先”原则,即路径写得更具体的那一方生效。比如同时写了 Disallow: /api/ 和 Allow: /api/public/,后者的路径更长更具体,那么 public 目录下的内容就会被放行,而其他 api 路径仍然被禁止。
Sitemap 指令用于指定站点地图的完整网址,方便爬虫集中发现所有内容,通常放在文件末尾。Crawl-delay 用于设定抓取间隔时间,不过需要留意,谷歌爬虫并不支持这一指令,它更多影响的是其他搜索引擎。设置该参数时不要填过大的数值,否则会拖慢整体抓取效率,建议先观察服务器日志中的实际爬取频率,再做调整。
最常见的失误出在路径书写上。robots.txt 的路径是相对域名根目录的,意思是路径开头无需添加完整的域名。有人习惯写成 Disallow: https://example.com/admin/,这是错误写法,正确形式应为 Disallow: /admin/。这类错误通常不会导致整站被禁,但会造成规则失效,等于没设。
另一种危险失误是误用一个斜杠。Disallow: / 表示禁止抓取全站,这是最严格的限制意图。如果某天在调试时写下这一行,又忘了删除,整站就会从搜索索引中慢慢消失。建议在修改配置后,使用站长工具里的 robots 测试功能进行验证,确认每个规则的实际效果。
此外,有些网站会同时把禁止的路径和允许的路径写成一长串,导致可读性差,后续维护时容易误改。推荐每个规则组内按路径层级排序,每一行只写一个路径,并在修改处加上注释说明原因,方便日后快速定位问题。
避坑建议:修改完成后,耐心等待 1 到 2 周观察收录变化。如果发现新页面不再被抓取,优先检查近期是否新增了过宽的 Disallow 规则。
下面是一份兼顾功能与安全的典型配置样本,覆盖了搜索爬虫的常规访问控制:
需要注意,以上结构只是示例,实际配置必须围绕自己网站的技术架构和业务需求来调整。配置完成后,用浏览器直接访问 /robots.txt 检查格式合规性,再通过官方站长工具验证每条规则的实际效果。
搜索引擎不会因为 robots.txt 写错而主动处罚网站,但造成的后果同样严重。最常见的连锁反应是禁止了重要页面的抓取,导致收录量下降、关键词排名流失。这种损害属于配置疏忽而非恶意操作,修正配置并等待爬虫重新抓取后,收录通常会逐步恢复。
两者应用场景不同。robots.txt 的 Disallow 用于阻止爬虫抓取,适合管理后台、内部接口、临时页面等不需要出现在搜索结果里的内容。noindex 是 meta 标签,用于告知搜索引擎“已抓取但不收录”,适合那些需要被访问但不想在结果页展示的页面,比如搜索结果页、打印版本或低质量聚合页。
强烈建议在改版后重新审视一遍。大量案例表明,网站更换域名、目录结构或技术框架后,旧 robots.txt 中的路径往往已经失效,容易误伤新页面的收录。改版上线前后,应重点检查路径前缀、禁止目录的变更情况,以及新站点地图地址是否已同步写入。
robots.txt 是网站与搜索引擎打交道的基础文件,语法简单但影响广泛。核心原则是:明确它只负责引导抓取、不决定收录;注意路径书写的正确格式;善用最长匹配规则,确保 Allow 与 Disallow 组合准确;并同步引入 Sitemap 指令。配置完成后,务必通过站长工具验证一遍规则。如果近期发现收录异常,优先检查近期是否新增了过宽的 Disallow 规则,这是最廉价又高效的排查起点。