robots.txt是放在网站根目录下的一个纯文本文件,用来告诉搜索引擎的爬虫哪些页面可以抓取、哪些页面需要回避。它既是引导蜘蛛重点抓取优质内容的工具,也是保护后台数据和隐私信息的一道屏障。配置得当能促进收录,配置不当则可能造成整站不被收录或敏感信息暴露的后果。下面从基础语法到应用场景,再到容易踩的坑,逐步梳理清楚。
robots.txt由一组指令构成,每条指令都有规定的写法。需要掌握的字段一共四个,理清这些就能覆盖绝大多数使用需求:
一个基础示例大致如下:
User-agent: *
Disallow: /temp/
Allow: /temp/public/
Sitemap: https://www.yourdomain.com/sitemap.xml
书写时有两个细节需要格外留意:一是路径区分大小写,/admin/和/Admin/会被视为两个不同的目录;二是必须使用半角英文字符,一旦误用全角符号,整条规则就可能失效。
网站的运营阶段和架构类型不同,robots.txt的配置思路也会有很大差异。以下几个场景覆盖了最常见的实际需求。
网站改版调试或者暂时下线维护时,需要临时阻止蜘蛛访问,这时可以用一条全局规则完成。注意该操作只能阻止新的抓取请求,无法删除搜索结果里已有的旧页面,若想清理历史索引,还需到百度搜索资源平台或Google Search Console提交索引清理申请。
User-agent: *
Disallow: /
对于纯展示型网站或内容博客,如果没有必须隐藏的目录,就无需写任何Disallow规则,仅声明Sitemap即可。这种极简配置对蜘蛛最友好,有利于全站内容被充分爬取。
User-agent: *
Sitemap: https://www.yourdomain.com/sitemap.xml
企业官网和内容平台通常需要隐藏后台入口、用户中心以及临时上传目录,这样既能避免敏感数据出现在搜索结果中,也能降低攻击者根据搜索页面找到后台入口的风险。
User-agent: *
Disallow: /admin/
Disallow: /member/
Disallow: /uploads/tmp/
配置完成后,建议在浏览器里直接输入 域名/robots.txt 检查内容是否生效,并逐条核对路径是否写准确。
如果只希望屏蔽某一类爬虫,而对其他搜索引擎完全开放,可以通过指定User-agent来实现。比如百度蜘蛛的标识为Baiduspider,Google爬虫为Googlebot。先给特定爬虫设置规则,再用星号给其余爬虫设定开放策略,可以实现精细管控。
User-agent: Baiduspider
Disallow: /member/
User-agent: *
Disallow:
实际运营中,很多问题并非语法错误,而是逻辑或细节上的疏忽。以下几个情况尤其值得留意:
robots.txt与sitemap是两类互补的工具,前者负责划定范围,后者负责主动引导。在robots.txt中声明Sitemap地址,能帮助新站或改版后的网站更快被搜索引擎识别结构。注意Sitemap的地址必须是完整URL,不能使用相对路径。对于内容较多、更新频繁的站点,建议同步在搜索引擎站长平台中提交sitemap,双通道配合效果更稳定。
修改完成后,先使用各搜索引擎站长工具中的抓取测试或URL检查功能,确认规则解析无误。观察周期一般在3到7天,重点检查以下几个指标:抓取频率是否回升、收录数量是否变化、是否出现异常拦截提示。如果发现核心页面被误屏蔽,及时修正并重新提交抓取即可。
不会立刻消失。Disallow只是阻止后续抓取,对已有索引的影响需要等待搜索引擎逐步处理。如果希望尽快从搜索结果中移除页面,还需要在站长平台提交删除申请或使用noindex标签。
不能。robots.txt只是给规范爬虫看的建议文件,恶意爬虫完全不理会它,而且只要知道具体网址仍然可以直接访问。对真正敏感的数据,应该在服务器端设置访问权限或密码保护,不能依赖robots.txt。
可以。使用井号(#)开头的行会被视为注释,方便记录配置时间和意图。但注意注释仅用于说明,不影响规则解析,也不要将有效的指令放在注释行中。
robots.txt虽然只有几行内容,但影响范围却不小。配置前先梳理网站目录结构,明确哪些资源需要开放、哪些需要隐藏;配置时注意大小写、半角符号和路径层级;配置后通过站长工具验证效果,并配套sitemap使用效果更佳。每隔一段时间复查一次文件内容,特别在改版、迁移或新增功能模块后及时更新规则,就能让robots.txt真正为网站收录服务。