robots.txt是网站根目录下的一个纯文本文件,用来告诉搜索引擎爬虫哪些内容可以抓取、哪些应当跳过。对SEO而言,它既不是流量开关,也不是排名工具,而是一个流量调度员:配置得当,爬虫能把抓取预算花在真正重要的页面上;配置失误,则可能让整站从搜索结果中消失。理解这份文件的语法与边界,是每个站点管理者的基本功。
robots.txt遵循“默认放行”原则:文件不存在或规则不匹配时,爬虫有权抓取一切。规则由注释行、User-agent声明和指令行组成。
一个最简示例:
User-agent: *
Disallow: /admin/
“User-agent”指定规则适用的爬虫,如Googlebot、Baiduspider、Bingbot;星号表示所有爬虫。每条规则块只允许一个User-agent行,其下可跟随多个Disallow或Allow指令。文件的编码建议统一为UTF-8,避免特殊字符导致解析异常;行尾不要留多余空格。
判断文件是否生效,可以在浏览器中访问“域名/robots.txt”,若能看到纯文本内容即说明文件存在。若返回404,则所有爬虫都视为无限制抓取。
Disallow后面跟的是路径前缀,匹配范围是该路径下的所有URL。例如“Disallow: /tmp/”会屏蔽/tmp/及/tmp/下的全部子路径。常见的屏蔽对象包括:后台管理目录(如/wp-admin/)、用户隐私页面、测试环境目录、重复的筛选页或排序参数。
需要特别留意的是“Disallow: /”代表禁止抓取整个站点,这通常只用于网站改版或临时闭站。若不确定路径是否被误封,可在浏览器地址栏直接输入该路径,确认它是否是真正需要屏蔽的资源。
Allow允许在Disallow的限制中开出例外。它的生效规则是“最长匹配优先”:当两条规则同时命中一个URL时,路径更长的规则胜出;若长度相同,则Allow优先。这一机制让“先禁后开”成为可能。
示例:屏蔽整个目录,但保留其中某个栏目
User-agent: *
Disallow: /category/
Allow: /category/seo/
这条配置的结果是:/category/下的所有页面不可抓取,但/category/seo/下的内容仍然正常可爬。写Allow规则时,务必确保路径与Disallow的前缀严格对应,否则可能出现“允许了却在禁区内”的误解。
对于服务器性能有限的中小站点,Crawl-delay可以指定爬虫每次抓取后等待的秒数,例如“Crawl-delay: 5”即要求间隔5秒。Bingbot、Yandexbot等爬虫会遵守这一指令,但Googlebot并不认它——Google官方要求改用Search Console中的“抓取速率”设置进行控制。
设置抓取延迟时,建议从3-5秒起步,观察服务器负载与收录速度之间的平衡。延迟过大可能拖慢新内容的收录,反而影响SEO指标的及时反馈。
以下场景几乎贯穿所有网站的生命周期,可按需组合配置:
修改后必须检查两件事:一是规则是否仍然语法正确,二是新增的Disallow是否误伤了需要收录的页面。推荐的做法是在修改前记录当前抓取量数据,修改后对比一周内的抓取趋势,若核心页面抓取明显下降,及时回滚。
robots.txt只控制“抓取”,不控制“收录”。被Disallow屏蔽的页面仍可能被其他网站引用,搜索引擎虽然没有抓取内容,却可以从外链锚文本推断页面主题。若想真正阻止页面出现在搜索结果中,应当使用noindex标签,且页面内容必须能被爬虫读取到才能识别该标签。
另一个常见误区是:用robots.txt屏蔽JavaScript或CSS文件。这会破坏搜索引擎的页面渲染能力,反而可能因无法完整理解页面结构导致排名表现打折。正确做法是允许抓取静态资源,仅屏蔽真正无价值的目录。
此外,robots.txt不应被视为安全工具。文件本身是公开可读的,任何规则都可能被反向利用。敏感路径(如数据库备份、源码压缩包)应当通过服务器访问控制或文件权限来保护,而不是仅仅依赖robots.txt。
建议每季度对robots.txt做一次系统性复查:核对现有规则与URL结构是否一致,清除过期路径,确认是否存在意外屏蔽的板块。同时可利用搜索引擎的robots测试工具,验证规则后的实际匹配结果,降低上线风险。
文件必须放置在网站根目录,并通过访问“域名/robots.txt”确认可访问。子域名各自拥有独立的robots.txt,例如blog.example.com的规则需要放到该子域名自身的根目录下,主站规则并不会继承到子域。
不是必须,但建议添加。在robots.txt末尾单独一行声明“Sitemap: https://example.com/sitemap.xml”,可以加速搜索引擎发现你的最新内容,尤其是新站点或Sitemap地址较隐蔽的情况。注意该指令不依赖User-agent,放在文件任何位置均可被读取。
删除文件等同于移除所有已有的抓取限制,按理说被屏蔽的页面会逐步恢复抓取,但这不代表已被搜索引擎收录的页面会消失。如果此前误用了“Disallow: /”导致整站未被收录,删除文件后需要等待搜索引擎自然重新发现并抓取,过程可能持续数周,建议配合主动提交Sitemap来加速。
robots.txt是一把双刃剑:它能帮你节省服务器开销、引导爬虫聚焦重点内容,一旦规则写错,代价却是核心页面无法进入索引。写完后务必用浏览器打开检查,结合抓取日志确认实际效果,并把“最小化屏蔽”作为默认原则。与其追求复杂的规则组合,不如保持清晰简单的配置,让爬虫把精力花在你真正想被收录的页面上。