robots.txt 是存放在网站根目录下的一个纯文本文件,用于向搜索引擎爬虫说明站内哪些路径可以抓取、哪些需要避开。这份文件配置得好,爬虫会把抓取额度用在刀刃上,重要页面能更快被收录;配置失误则可能带来整站收录异常甚至被清空索引的严重后果。本文将围绕这份文件的语法规则、使用场景和易错点展开说明。
这个文件的访问地址是固定的,即域名加 /robots.txt。它的职责是调度爬虫的抓取行为,相当于路口的交通指挥,但无法决定页面能否出现在搜索结果中。如果希望某个页面不被收录,应当使用 noindex 标签来阻止索引,robots.txt 只能限制抓取动作,两者不能混为一谈。
另外需要留意,robots.txt 对爬虫而言只是自律性约定。正规搜索引擎会遵守规则,但恶意采集程序和非正规工具完全可以无视。凡是涉及用户隐私、支付通道或核心商业数据的目录,必须叠加登录验证、IP 白名单等安全措施,不能只依靠 robots.txt 防护。
robots.txt 由多个规则组构成,每组必须以 User-agent 开头。书写时遵循"字段名: 值"的格式,建议统一用小写字母,冒号后留一个空格,以减少兼容性问题。
User-agent 指定该组规则作用于哪个爬虫。例如写入 User-agent: Googlebot 则只对谷歌爬虫生效;使用通配符 User-agent: * 则覆盖所有搜索引擎爬虫。Disallow 声明禁止抓取的路径,Allow 相反,用来声明允许抓取的路径。当 Disallow 后面为空,即 Disallow: 时,表示允许抓取全站。
若 Allow 与 Disallow 同时命中同一 URL,搜索引擎遵循最长匹配优先原则,路径写得更详细的那条规则优先级更高。例如同时存在 Disallow: /api/ 与 Allow: /api/public/,则 /api/public/ 下的链接仍会被放行。
Sitemap 指令用于声明网站地图的完整 URL,帮助爬虫更快获取站点内容清单,一般放在文件结尾。Crawl-delay 表面上用于设定抓取时间间隔,但谷歌早已明确会忽略该指令。如需控制抓取频率,应前往 Google Search Console 后台设置。
以下列举几个高频配置需求,可直接套用并替换为实际目录路径。
配置文件修改后,建议进行一次完整校验。先确认文件通过 https://你的域名/robots.txt 可以正常访问,再检查是否存在语法错误,例如拼写错误的字段名或未闭合的注释。多数搜索引擎站长平台都提供 robots 测试工具,可以模拟爬虫对指定 URL 进行抓取测试,查看是否被规则拦截。值得注意的是,规则变更后搜索引擎可能需要数天才能重新抓取此文件,因此不要频繁改动,避免影响收录进度。
不能。robots.txt 只能阻止爬虫去抓取页面内容,但页面仍可能因外部链接等原因被搜索引擎发现并建立索引。若想彻底阻止收录,请使用 noindex 标签。
注释需以 # 开头,会被爬虫忽略。空行则用于分隔不同爬虫的规则组,不影响解析结果,但保持整洁有助于后续维护。
爬虫会优先匹配与其名称完全对应的规则组,若找不到再匹配 User-agent: * 的通配组。具体规则组内部按最长匹配原则运行。
配置 robots.txt 的关键在于分清它与 noindex 的分工,并确保 Allow 与 Disallow 的配合不发生冲突。建议上线前用站长工具进行模拟测试,同时为敏感目录配置服务器层面的访问控制。维护时尽量保持文件简洁,减少频繁改动,以保障爬虫抓取的稳定性。