robots.txt 配置完整教程:写法规则、网站案例与常见报错排查

📍 WDQWDWQD987AAAAA:216.73.216.168
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /df89fb89a48c.html
📄

搜索引擎爬虫访问一个网站时,通常会先查看根目录下的 robots.txt 文件,把它当作抓取行为的“通行规则”。这个文件告诉爬虫哪些页面可以收录、哪些页面应当绕开,一份设置合理的 robots.txt 既能保护后台和临时目录不被搜到,又能引导爬虫优先抓取重要内容,有效提升收录效率。

1. 基础概念:文件位置、格式要求与指令说明

robots.txt 对存放位置有硬性要求,必须放在网站根目录,路径为 https://yourdomain.com/robots.txt,放在任何子文件夹里都不会生效。文件需用纯文本格式保存,编码统一为 UTF-8,文件名全部小写,且路径拼写区分大小写,写错一个字母就可能让规则失效。

文件内容由多个规则组构成,每个规则组针对特定的爬虫。最常用的指令有三个,掌握它们就能完成大部分配置需求:

文件最后可以加一行 Sitemap 声明,帮助爬虫更快定位网站地图地址。

举一个实际的配置例子:

User-agent: *
Disallow: /admin/
Disallow: /temp/
Allow: /admin/login/
Sitemap: https://yourdomain.com/sitemap.xml

这段配置表示:所有搜索引擎不能访问 admin 和 temp 两个目录,但 admin 下的 login 页面属于例外可以抓取。需要特别注意的是,路径遵守前缀匹配原则,Disallow: /admin/ 会拦截该目录下所有页面,必须用更具体的 Allow 才能解除某个子路径限制。

2. 实战配置:三类典型网站的差异化方案

不同性质的网站对抓取策略的需求完全不同,生搬硬套容易适得其反,建议根据自身情况参考以下三组方案。

2.1 内容展示类网站:全部放行

新闻媒体、博客或产品介绍页,追求的是尽可能多地被搜索引擎收录。这类网站的配置可以非常简洁,明确不拦截任何内容:

User-agent: *
Disallow:

Disallow 那行也可以直接省略。这类配置最怕把值误写成正斜杠,变成禁止全站抓取,那会导致收录量急剧下降,恢复周期很长。修改完成后最好直接在浏览器打开 robots.txt 地址核对一遍。

2.2 资源消耗型网站:定向屏蔽高风险路径

视频平台、素材下载站或会员制站点,抓取行为往往带来较大的服务器开销。此时应针对性地屏蔽后台、临时文件夹、筛选参数等无用地址,减少服务器压力:

User-agent: *
Disallow: /admin/
Disallow: /search?page=
Disallow: /user/login/
Disallow: /tmp/

如果网站正常运营依赖百度流量,也可以单独替换为百度爬虫的识别名称。实施时要盯紧服务器监控,观察抓取量的变化趋势,防止误伤正常页面的收录。

2.3 电商或平台型网站:区分爬虫与放行核心页

商城和平台站点同时存在公开商品页、用户个人中心和支付入口等多种页面,需要分割处理分类放行。实际操作中先拦截敏感路径,再利用 Allow 逐一打开必要的二级页面。

User-agent: *
Disallow: /account/
Disallow: /checkout/
Allow: /product/*
Allow: /category/*

配置完成后务必检查排名靠前的商品页能否正常抓取,同时确认账户类页面已经被完全隔离。不同平台的支付系统路径略有差异,需要结合自身站点结构来调整。

3. 常见报错类型与排查思路

robots.txt 配置出错的表现形式很有迷惑性,通常不是直接报错,而是表现为收录减少、抓取异常或者爬虫忽略指令。以下是集中高发的情况。

检查文件访问状态:如果抓取工具显示无法访问 robots.txt,首先确认文件是否真的放在根目录,其次检查服务器是否返回 200 状态码。有的防火墙或 CDN 规则会误拦截爬虫访问该文件的请求,导致爬虫判定全站不可抓取。

查看是否有冲突规则:当 Disallow 和 Allow 指向相同的路径前缀时,搜索引擎会采用“最长匹配”原则判定。判断不了相互覆盖的关系时,可以把规则精简到一行,避免产生歧义。

确认语法与编码问题:全角冒号或中文标点、文件开头出现 BOM 头、路径多了空格等情况都会被爬虫解读失败。编写时建议使用无格式的纯文本编辑器,保存时选择 UTF-8 无 BOM 模式,能减少多数低级错误。

最后可以利用搜索引擎站长工具里的“抓取测试”功能模拟爬虫,直接查看实时抓取结果,远比反复修改后等待自然抓取来得高效。

4. 误设风险与实际操作提醒

robots.txt 本质上是一种“君子协定”,并非强制的法律手段,主要依靠搜索引擎自觉遵守。任何改动都存在操作风险,务必重视以下几类情况。

禁止全站的情况要谨慎确认:有些人想暂时停止某个页面的收录,顺手写了 Disallow: /,结果整站都从搜索结果消失,恢复索引需要等待较长时间。建议把范围缩小到具体路径,而非全站封锁。

不要把重要文件放入封锁范围:CSS、JS 这类渲染资源一旦被屏蔽,搜索引擎看到的页面可能是残缺样式,反而会降低页面质量的判断。确认封锁列表里没有静态资源目录。

留意大小写与通配符支持:Google 支持星号和美元符来表示模糊路径匹配,但其他搜索引擎对这类符号的接受程度不一。要保证兼容性,尽量使用明确的路径前缀,不要依赖通配符。

总体上,修改后记录原文件内容作为备份很重要。若出现问题,能迅速回滚恢复,避免造成长时间的收录空白。

5. 常见问题

5.1 robots.txt 文件必须每天检查吗?

没有必要频繁查看。只要站点结构不发生大调整,配置可以长期保持不变。一般在改版、迁移服务器或新增目录后检查一次即可。也可以用站长工具中的抓取统计定期观察异常波动。

5.2 robots.txt 能完全保护网页内容不被复制吗?

不能。它只是一个声明规范,正经搜索引擎会遵守,但它无法阻止恶意爬虫和第三方工具读取页面。需要真正保护核心数据,仍要求登录验证或其他的访问控制手段,不能单靠这个文件封锁内容。

5.3 子域名需要单独配置 robots.txt 吗?

需要。每个子域名被视为独立站点,搜索引擎会分别访问各子域名的根目录来读取对应的配置。若只在主域名设置了该文件,子域名的抓取行为不会受到影响,必须单独为子域名创建并维护各自的文件。

6. 总结

robots.txt 的配置精髓在于精准取舍:明确告知爬虫什么能看、什么不能看,而不是简单粗暴地一刀切封锁。动手修改前先备份原文件,完成调整后立刻查看抓取报告并用站长工具验证,确认核心页面正常收录、敏感路径屏蔽成功。合理配置能保护站点资源,反过来也是一条优化收录路径的基础工作。

图1 图2

nginx