搜索引擎爬虫访问网站时,根目录下的 robots.txt 文件是它们最先读取的内容。这个纯文本文件相当于给爬虫的一份访问守则,明确标注哪些路径可以抓取、哪些区域需要绕行。配置得当,既能保护后台与隐私目录不被收录,又能让爬虫把有限的抓取配额集中在核心页面上,对 SEO 产生直接的积极影响。
robots.txt 必须放在站点根目录,例如 https://yourdomain.com/robots.txt,文件名和目录区分大小写,推荐用 UTF-8 编码保存。每条指令单独占一行,行尾最好不要留多余空格。想写出正确的规则,先要理解几个基础字段的含义与边界:
除了以上三条,还可以加入 Sitemap 行指明地图文件的位置。来看一个典型组合:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml
这段配置的意思是:默认允许抓取全站,但 /admin/ 目录不开放,其中 /admin/public/ 属于例外,可以访问。这里有个容易出错的地方:如果某个爬虫不理解 Allow 指令,那么它只会看到 Disallow 的限制,/admin/public/ 对它们依然是禁区。
不同站点的目标不同,robots.txt 写出来的样子也差别很大。下面三种模式覆盖了绝大多数需求,你可以直接参考并替换自己的路径。
内容型站点或者刚上线的新站,通常希望所有页面都能被抓。这时只需一行规则:
User-agent: *
Disallow:
其实把 Disallow 整行去掉效果也一样。最怕的就是手误写成 Disallow: /,一旦如此,所有爬虫都会被拒之门外,收录数据会立刻停摆。改完规则后,最好用站长平台的抓取测试工具确认一下实际效果。
如果你的站点不想被某个特定引擎收录,可以单独给它写一条规则:
User-agent: Bingbot
Disallow: /
这样设置后,其他爬虫的抓取策略完全不受影响。注意爬虫名称要写准确,比如 Googlebot、Baiduspider 和 Sogou 蜘蛛各不相同,写错名称规则就不会生效,建议到各搜索引擎的官方文档里核对名称写法。
有些工具型站点希望爬虫只进入特定目录,其他路径全部阻止。这时可以这样配置:
User-agent: *
Disallow: /
Allow: /public/
这种写法存在风险:如果爬虫不支持 Allow,那么 /public/ 也会被封锁。稳妥的做法是逐条列出需要禁用的具体路径,而不是先禁止全部再开放个别目录。例如:
User-agent: *
Disallow: /admin/
Disallow: /api/
Disallow: /private/
这样写既能保护敏感路径,又不会误伤需要被收录的页面。
很多网站在 robots.txt 上栽过跟头,大多是因为以下几个原因:
还有一点值得注意:robots.txt 只是礼貌性的协议,并非强制措施。恶意或非正规爬虫不一定遵守,因此真正的敏感内容还应配合密码或防火墙保护,不能只依赖 robots.txt。
写好 robots.txt 后,不能想当然地认为规则生效了。推荐做以下几步验证:
如果发现规则没生效,优先排查文件名拼写、文件位置和 User-agent 名称是否准确。很多时候问题就出在这些细节上。
不影响。robots.txt 本身只是一个极小的文本文件,只被爬虫读取,对普通用户访问页面完全没有影响。它不会增加页面体积或拖慢服务器响应。
后台目录如果被收录,可能泄露内部结构、API 接口地址甚至是未发布的敏感信息。更严重的是,攻击者可能利用这些暴露的路径尝试入侵。因此,后台目录应当明确禁止抓取,并配合用户验证机制。
robots.txt 是告诉爬虫哪些不能抓,sitemap.xml 是告诉爬虫有哪些重要 URL 可以抓。两者功能互补,同时配置效果最佳。robots.txt 中可以声明 sitemap 的路径,方便爬虫更快发现地图文件。
robots.txt 虽小,却在搜索抓取中扮演重要角色。配置时建议遵循三个原则:一是指令写准确,User-agent 和路径都要仔细核对;二是按实际场景选用模板,避免"禁止全部再开放个别"这类高风险写法;三是时刻记住它只是协议而非屏障,敏感内容还需要其他手段保护。如果当前配置长期未变,正好借此机会检查一遍,确认它依然符合站点的最新需求。