💡 核心摘要:robots.txt 规则应围绕明确场景编写:全站禁止、全站允许、目录禁止、文件禁止、只放行子目录、只允许某个抓取器、禁止某个抓取器、限制图片抓取、限制特定文件类型,以及把多个 user-agent 合并到一个规则组。写规则前先确认目标是“控制抓取”,而不是隐藏私密内容或删除索引。
一、先建立规则选择思路
robots.txt 的核心是告诉抓取工具哪些路径可以抓、哪些路径不应抓。它适合减少低价值页面抓取、控制重复路径、阻止资源型文件进入抓取队列,但不适合保护私密内容,也不适合直接从 Google 搜索结果中删除页面。
写规则前先回答三个问题:你要控制哪个抓取工具?要控制哪个 URL 范围?这个 URL 不被抓取后,是否仍可能因为外部链接被发现并进入索引?如果目标是隐私、安全或彻底不展示,应使用登录权限、删除页面、noindex 或移除工具,而不是 robots.txt。
💡 robots.txt 是抓取预算和访问边界工具,不是安全机制。
二、禁止抓取整个网站
这个规则会阻止大多数抓取工具抓取整个网站。它常用于临时测试站、未上线环境或明确不希望被抓取的公开主机。
User-agent: *
Disallow: /
要注意,Google 在某些情况下即使没有抓取页面内容,也仍可能根据外部链接把 URL 编入索引。并且 AdsBot 等部分广告相关抓取工具需要明确指定,不能完全依赖 User-agent: *。
⚠️ 不要把这个规则误发到生产站。
Disallow: /是 robots.txt 里影响范围最大的规则之一。
三、允许抓取整个网站
下面的写法明确允许所有抓取工具访问整个网站。它在功能上等同于没有 robots.txt,或写 Allow: /。
User-agent: *
Disallow:
这种规则适合希望保持文件存在、同时明确表达“没有禁止抓取路径”的网站。它也方便后续在同一个文件里追加 Sitemap 或新增局部规则。
💡 空的
Disallow表示不禁止任何路径,不是禁止空路径。
四、禁止抓取某些目录
如果要阻止整个目录及其内容,在目录名后添加正斜杠。下面示例会阻止 /calendar/、/junk/ 和 /books/fiction/contemporary/ 下的所有内容。
User-agent: *
Disallow: /calendar/
Disallow: /junk/
Disallow: /books/fiction/contemporary/
这类规则适合日历页、临时文件、低价值聚合目录、测试输出目录等。但不要用它隐藏私密内容,因为 robots.txt 文件本身公开可见,反而可能暴露敏感路径。
⚠️ 私密内容应该用身份验证、权限控制或服务器访问控制保护,而不是写进 robots.txt。
五、禁止抓取某个具体页面
如果只想阻止某个页面或文件,可以直接写完整路径。下面示例禁止抓取站点根目录下的 useless_file.html,以及 /junk/ 目录中的某个文件。
User-agent: *
Disallow: /useless_file.html
Disallow: /junk/other_useless_file.html
这适合少量明确的低价值文件。但如果需要屏蔽大量类似页面,不建议逐条列出。更好的方式是通过目录结构、参数治理或通配符规则统一控制。
💡 大量逐条规则会让 robots.txt 难维护,也可能接近 Google 的文件大小限制。
六、禁止全站但允许某个子目录
有些站点只希望开放一个公开目录,其余路径都不希望被抓取。可以先禁止全站,再用更具体的 Allow 放行子目录。
User-agent: *
Disallow: /
Allow: /public/
Google 会按更具体的路径规则判断,因此 /public/ 可以被抓取,而其他路径仍被禁止。这类规则适合文档镜像、有限公开资源或临时发布环境。
⚠️ 放行目录内的页面还需要页面本身返回可抓取内容。如果目录下资源依赖被禁止的 CSS、JS 或图片,页面理解可能受影响。
七、只允许某个抓取工具访问网站
如果只希望某个 Google 抓取工具访问网站,可以为它单独放行,再禁止其他抓取工具。下面示例只允许 Googlebot-News 抓取整个网站。
User-agent: Googlebot-News
Allow: /
User-agent: *
Disallow: /
这种配置适合非常明确的产品场景。但在生产使用前,必须确认目标抓取工具的准确 user-agent,并理解它和普通 Googlebot、图片抓取器、广告抓取器之间的区别。
💡 具体 user-agent 规则不会自动继承
User-agent: *的规则。需要按目标抓取器单独设计。
八、禁止某个抓取工具,允许其他抓取工具
如果某个抓取器不必要或消耗资源,可以单独禁止它,同时允许其他抓取工具继续访问网站。
User-agent: Unnecessarybot
Disallow: /
User-agent: *
Allow: /
这类规则适合非核心抓取器、内部测试抓取器或第三方机器人。对于恶意流量,robots.txt 只能约束遵守协议的客户端;不遵守规则的机器人仍需要通过 WAF、限速、身份验证或 IP 策略处理。
⚠️ robots.txt 是协商规则,不是强制防火墙。
九、禁止全站但允许 Storebot-Google
Google 官方示例中还有一个特殊场景:禁止大多数抓取工具访问全站,但允许 Storebot-Google 访问内容。这样会阻止网页出现在 Google 搜索结果中,但 Storebot-Google 仍可分析页面,用于 Google 购物展示商品。
User-agent: *
Disallow: /
User-agent: Storebot-Google
Allow: /
这个规则只适合明确希望商品可用于购物相关展示、但网页本身不进入普通搜索抓取的场景。上线前要和广告、商品 Feed、Merchant Center、搜索团队确认影响范围。
💡 商品型站点的 robots.txt 改动会影响搜索和购物两个系统,不能只从自然搜索角度判断。
十、控制图片抓取
如果禁止 Googlebot-Image 抓取整个网站,Google 将无法抓取站点图片,图片和视频也无法被编入相关索引。
User-agent: Googlebot-Image
Disallow: /
如果只想禁止某张图片,可以写具体图片路径。
User-agent: Googlebot-Image
Disallow: /images/dogs.jpg
这类规则适合版权图片、临时图片、重复图片或不希望出现在 Google 图片和 Google 探索等位置的资源。但如果图片是产品页、文章页或结构化数据的重要组成部分,屏蔽图片可能降低页面展示质量。
⚠️ 如果 Google 无法抓取图片和视频,就无法把它们编入相关索引。
十一、禁止特定文件类型
robots.txt 支持 * 和 $ 通配符,可以用来匹配特定文件后缀。下面示例禁止 Googlebot 抓取所有 .gif 文件。
User-agent: Googlebot
Disallow: /*.gif$
也可以禁止所有 .xls 文件。
User-agent: Googlebot
Disallow: /*.xls$
$ 表示 URL 结束,所以 /*.xls$ 不会匹配带参数的 cats.xls?personality=loki。如果你的文件 URL 经常带参数,就需要单独测试匹配效果。
💡 文件类型规则适合控制资源抓取,但要注意参数 URL、大小写和 CDN 路径差异。
十二、合并多个用户代理规则
如果多个抓取工具适用同一批规则,可以把多个 User-agent 写在同一个规则组里。这样比重复写多个规则组更简洁,也更不容易出现遗漏。
User-agent: Googlebot
User-agent: Storebot-Google
Allow: /cats
Disallow: /
这表示 Googlebot 和 Storebot-Google 都适用同一组规则:只允许抓取 /cats,禁止其他路径。合并规则适合多个抓取器共享同一策略的场景。
⚠️ 合并前确认这些抓取器确实应共享规则。搜索、购物、广告、图片抓取器的业务影响可能不同。
📌 核心收获
- ✓ 先选场景再写规则:全站、目录、文件、图片、文件类型和指定抓取器的写法不同。
- ✓ robots.txt 不保护隐私:私密内容应使用身份验证,不应通过公开规则文件暴露路径。
- ✓
Disallow: /影响最大:上线前必须确认它没有误发到生产主站。 - ✓
Allow可放行子路径:在全站或目录禁止下,用更具体路径开放例外。 - ✓ 通配符要测试:
*和$对文件类型有用,但参数 URL 可能不按直觉匹配。
🚀 立刻行动
- 备份当前 robots.txt,并标出每条规则对应的业务目的:全站、目录、文件、图片、文件类型或指定抓取器。
- 检查是否存在
Disallow: /,确认它只出现在明确需要全站禁止的环境或抓取器规则中。 - 检查是否把私密路径写进 robots.txt;如果有,改用登录权限或服务器访问控制。
- 对所有带
*和$的规则列出 5 个样本 URL,手动验证是否符合预期。 - 如果多个抓取器共享规则,考虑合并
User-agent组;如果业务影响不同,则保持独立规则。
来源:实用的 robots.txt 规则 | 本文为知识提炼与重新表达
RELATED / 相关推荐
接着读这些
按同一分类、系列与标签为你挑选。
Google robots.txt 解析规则实战指南
robots.txt 写对不等于 Google 一定按你想的方式解析。本篇讲清作用范围、状态码、缓存、字段语法、分组优先级、通配符和冲突规则。
robots.txt 创建与提交实战指南
robots.txt 用来控制抓取工具可以访问哪些路径。本篇教你创建文件、编写 User-agent/Allow/Disallow/Sitemap 规则、上传到根目录并测试是否生效。
Robots Meta 与 X-Robots-Tag 指南
robots meta 和 X-Robots-Tag 用于控制页面或资源的索引、摘要、图片预览、视频预览和缓存展示。它们不能替代 robots.txt,且冲突时更严格规则生效。