robots.txt 是网站根目录下一个简单的文本文件,它的作用是向搜索引擎爬虫说明:站内哪些内容欢迎抓取、哪些路径请绕行。设置得当,网站收录会明显提速;设置失误,重要页面可能长时间无法出现。本文会把它的核心规则和常见操作误区逐一讲透。
很多人把 robots.txt 当成安全工具,这是最大的误解。它对正规搜索引擎有效,但恶意程序和违规工具根本不会遵守这个文件。涉及账号信息、支付记录等内容,一定要用登录验证或访问控制来保护,别指望禁止指令能拦住别有用心的人。
还有一个关键点:robots.txt 管的是抓取,不是收录。就算你禁止了某个链接,搜索引擎仍可能通过其他站点的外链发现它并放到结果里。想让页面彻底不展示,就得同时做两件事——在 robots.txt 里禁止抓取,并在页面里加 noindex 标签,这样才能完全切断展示通道。
文件内容由规则组构成,每组先声明 User-agent,再写对应的 Allow 或 Disallow 指令。字段名用小写字母,冒号后留一个空格,这是最稳妥的写法。
这行用来指定规则适用于哪个爬虫,比如 User-agent: Googlebot 只对 Google 生效,User-agent: * 则对所有爬虫生效。你可以在一个文件里给不同搜索引擎定制策略,比如禁止某个目录对百度开放,同时对 Google 正常开放。不过多组规则并存时容易互相干扰,建议让不同规则组界限分明,不要交叉覆盖。
Disallow 表示禁止路径,Allow 表示放行路径。如果一个 URL 同时命中两种规则,搜索引擎采用最长匹配原则:路径更长的那条规则生效。比如写了 Disallow: /api/ 和 Allow: /api/public/,那么 /api/public/ 下的文件照常抓取,而 /api/ 的其余路径继续被拦截。
这里有个常被忽略的细节:单独的 Disallow: (冒号后无内容)代表全部放行。如果网站全站公开,不写任何 Disallow 行更保险,因为不同搜索引擎对空值的理解可能有细微差别。
Sitemap 指令用于声明站点地图地址,能帮助爬虫快速定位新内容,减少等待时间。Crawl-delay 用来设置抓取间隔,对资源有限的服务器有实际帮助。但要留意,很多主流搜索引擎并不支持 Crawl-delay 这个字段,对支持度不确定的引擎,不应把抓取频率控制寄托于此。
最常见的失误包括:路径写错导致整站被禁、把 sensitive 路径写在公开规则里、过度使用通配符造成误伤。另一个典型问题是规则组顺序混乱,虽然匹配逻辑不依赖顺序,但为了让后来维护的人看得懂,建议把宽泛规则放在前面、精确规则放后面,并在文件开头用注释说明用途。
写完配置后,强烈建议去搜索引擎官方的检测工具里测试一遍。比如在 Google Search Console 的 robots.txt 测试页面中,可以逐条检查规则是否按预期生效,以及在哪个位置命中或解除限制。这里有个实用原则:把规则写得越具体,误判的可能性就越低。
修改完 robots.txt 并不代表立即对所有爬虫生效。搜索引擎通常需要一定时间去重新获取这个文件,不同引擎的刷新周期也不一样。想确认是否已更新,可以访问根目录的 robots.txt 地址,从内容判断是否已替换。对于新上线的页面,主动提交站点地图和链接收录入口,能有效缩短等待时间,而不是坐等爬虫按自己的节奏来巡游。
不能。它只影响搜索引擎爬虫的行为,无法阻止其他网站复制或引用你的内容。要处理版权问题,需要走正规的法律和申诉渠道。
几乎不影响。文件本质是几行纯文本,爬虫读取它耗时极短,不会对正常访客体验产生可感知的影响。
技术上可行,但完全不推荐。这会让全站无法被搜索引擎收录,对依赖自然搜索流量的站点来说,相当于自断入口。如果确有敏感目录,建议只禁用具体路径并配合访问控制措施。
robots.txt 是提升抓取效率的实用工具,但不是万能开关。它管不了安全,也管不了收录。配置时牢记三点:路径写得越具体越好,同时搭配 noindex 处理不想被展示的内容,改完用官方工具核查一遍。把握住这些要点,你的网站就能在搜索引擎面前保持干净而高效的姿态。