robots.txt 是放在网站根目录的一份纯文本文件,作用是告诉搜索引擎爬虫哪些路径可以访问、哪些应该避开。配置合理,爬虫的抓取预算就能花在关键页面上,新内容收录更快;配置失误,轻则重要页面长期不被抓取,重则整站从搜索结果中消失。下面从文件基础、语法规则到实际场景,帮你完整掌握这份文件。
robots.txt 的访问地址固定为域名后直接加 /robots.txt,例如 https://example.com/robots.txt。文件必须放在服务器根目录,且文件名一个字符都不能错,否则爬虫无法识别。它负责管理抓取行为,但不能直接决定页面是否进入索引——若想彻底阻止某页面出现在搜索结果中,必须在页面上使用 noindex 标签。
需要认清的是,该文件的约束力建立在爬虫自觉遵守的基础上。Google、Bing 等正规搜索引擎的爬虫会严格遵循,但恶意采集程序根本不会理会。因此,涉及用户隐私或付费内容的目录,务必叠加登录验证、IP 白名单等硬性防护措施,不能把安全寄托于一份文本文件。同时应定期检查文件内容,避免不小心把敏感路径暴露给爬虫。
文件由若干规则组构成,每组以 User-agent 字段开头,每条指令格式为"字段名: 值",冒号后建议加一个空格,字段名统一小写以保证兼容性。
该字段声明规则的对象。例如 User-agent: Googlebot 仅约束谷歌爬虫;User-agent: * 对所有搜索引擎生效。一个文件里可包含多组规则,为不同爬虫设置不同权限。若同一爬虫命中多组规则,搜索引擎通常以匹配路径最长的那组为准,不确定时可用各站长工具的测试功能验证。
Disallow 表示禁止抓取的路径,Allow 表示明确放行。需要注意的是,Disallow: 后面留空表示不限制任何路径,即开放全站。当 Allow 和 Disallow 针对同一路径冲突时,按"路径更长者优先"处理。例如同时配置 Disallow: /api/ 和 Allow: /api/public/,则 /api/public/ 下的内容仍可被抓取。写路径时建议从根目录写完整路径,避免使用含糊的缩写。
Sitemap 指令用于声明网站地图的完整地址,一般放在文件末尾,方便爬虫直接获取内容清单。Crawl-delay 用于设定抓取间隔,但谷歌已公开声明忽略此指令,若要控制谷歌爬虫频率,需在 Google Search Console 后台配置;对 Bing 等引擎该指令仍然有效,可以保留备用。
以下为高频需求的配置模板,实际使用时替换为自身路径即可。
配置完成后,务必在浏览器中访问 /robots.txt 检查返回内容是否符合预期,建议再用站长工具的抓取测试功能验证每一条规则的实际效果。
常见的错误集中在几个方面:一是把 robots.txt 当成阻止收录的工具,误用 Disallow 屏蔽整站导致页面全部不被索引;二是路径拼写不完整,省略了开头的斜杠,使得规则失效;三是误以为 robots.txt 能防止他人爬取内容,实际它仅对遵守协议的爬虫有效。此外,某些 CMS 会自动生成 robots.txt,修改前需确认是否存在系统级覆盖。
养成定期检查的习惯:每季度查看一次文件内容,确认没有多余或过时的路径;网站改版或目录调整后,及时更新对应规则;利用站长平台的 robots.txt 测试工具,对比预期与实际匹配结果。
不能。robots.txt 只能阻止爬虫抓取,但若页面已收录,仍可能以摘要形式出现在搜索结果中。要实现彻底移除收录,应在页面上添加 noindex 标签,或通过站长工具提交移除请求。
通常爬虫会在下次抓取该文件时读取新规则,时间从几分钟到几天不等,取决于爬虫的抓取频率。修改后可用测试工具立即验证规则语法,无需等待生效即可确认配置是否合理。
可以。文件支持多个规则组,分别针对不同爬虫设置不同权限。例如为 Googlebot 开放全站,同时为其他爬虫限制后台目录。注意每组规则需以 User-agent 开头,且组内指令按顺序匹配。
robots.txt 是一个轻量却影响深远的文件,掌握它的语法与边界能显著提升网站的抓取效率。建议先从最小化配置开始,只屏蔽真正需要屏蔽的路径,避免误伤正常页面;每次修改后立即在浏览器和站长工具中双重验证,并持续观察站点收录与抓取日志的变化,逐步调整到最适合自身网站的状态。