robots.txt是放在网站根目录下的一个纯文本文件,用来告诉搜索引擎爬虫哪些页面可以抓取、哪些页面应当避开。它不强制爬虫遵守,但对绝大多数正规搜索引擎有效。配置得当能保护后台数据和隐私内容,同时让重要页面顺利收录;配置失误则可能导致关键页面不被索引,甚至整站收录异常。
robots.txt由多个规则块组成,块之间用空行隔开,每个块包含几个固定指令,指令对大小写敏感。
路径匹配遵循前缀规则,即URL只要以某个Disallow值开头,就会被屏蔽,而且区分大小写,/Admin与/admin会被视为两个不同目录。一个完整的示例:
User-agent: *
Disallow: /backend/
Allow: /backend/public/
判断标准:写完后通读一遍,确认每条User-agent后面至少跟着一条Disallow或Allow;如果整行留空,默认意味着全开放,容易造成预期之外的放行。
合理的配置顺序,能减少失误。推荐按如下步骤操作:
避坑提醒:修改完文件后并非立即生效,爬虫可能过几天才会重新读取,因此不要频繁改动,改动后至少等待一周再评估效果。
以下错误在实际站点中经常出现,需要重点防范。
一是文件位置错误。robots.txt必须位于域名根目录,若放在子目录或二级文件夹下,爬虫根本找不到。检查方法很简单:直接在浏览器打开自己的robots.txt地址,能正常显示才算有效。
二是误用了通配符和结尾斜杠。Disallow值结尾的斜杠代表整个目录,不加斜杠则代表前缀为这几个字符的所有路径。例如Disallow: /abc会把/abcd也一并屏蔽,如果不希望这样,务必写成Disallow: /abc/。
三是把所有内容都屏蔽。有些人为了快速清空索引,写作Disallow: /。这会导致全站不被抓取,恢复收录需要很长时间,务必谨慎使用。
四是混淆了robots.txt与noindex元标记。robots.txt只负责阻止抓取,已经被抓取的页面仍可能留在索引中;如果目的是让某页从搜索结果消失,应当同时使用noindex标签,两者作用不同,不能互相替代。
配置完成后,至少做两轮检查。第一轮是本地语法检查,确认所有路径都基于根目录绝对路径书写,不要使用/blog/../admin这类带“..”的相对写法;第二轮通过爬虫模拟工具或者站长平台的“抓取测试”功能,查看某条具体URL的模拟抓取结果,判断是被允许还是被拒绝。
如果某条路径结果显示为“已禁止”,但该页面必须被收录,就要回头检查Disallow的匹配范围是否过宽,或者确认Allow是否放在了同一个User-agent块内。注意,Allow必须与对应的Disallow在同一规则块里,写错位置会导致整个规则失效。
不会直接造成惩罚,但可能导致重要内容无法收录,或者隐私页面被意外抓取。发现错误后立即修正,并在站长工具中提交更新即可,通常无需担心评级受罚。
搜索引擎不会实时读取该文件,通常需要几分钟到几天不等。可以借助站长平台的“更新robots.txt”按钮,或者用抓取测试功能主动触发一次读取,能明显缩短等待时间。
技术上可以写作Disallow: /屏蔽所有,但这样做会让全站无法被抓取,适合尚未上线或需要完全封闭的阶段。正式运营中的站点不建议整站屏蔽,否则恢复收录周期可能持续数周。
配置robots.txt的核心是四件事:把敏感路径写进Disallow,用Allow精确放行所需页面,在文件末尾标注Sitemap,最后通过根目录访问和站长工具做双重验证。每次修改前先备份原文件,改完后记录变更时间和内容,便于出现问题时快速回退。把握住这些要点,就能既保护好隐私内容,又不影响搜索引擎的正常收录。