一、什么是 robots.txtrobots.txt是一个放在网站根目录下的纯文本文件用于告诉搜索引擎爬虫Robot/Spider/Crawler哪些页面可以抓取哪些不可以。它诞生于 1994 年的Robots Exclusion Protocol机器人排除协议虽然不是国际标准但已被 Google、Bing、百度等主流搜索引擎广泛支持。核心作用作用说明隐私保护阻止爬虫抓取后台、用户数据等敏感页面SEO 优化避免低质量页面被索引集中权重到核心内容带宽节省减少爬虫对服务器资源的无效消耗抓取引导通过 Sitemap 告诉爬虫网站结构二、文件位置与基本格式 必须放在根目录https://example.com/robots.txt ✅ 正确 https://example.com/path/robots.txt ❌ 错误搜索引擎只认根目录 基本语法结构User-agent: [爬虫名称] Disallow: [禁止抓取的路径] Allow: [允许抓取的路径] Sitemap: [站点地图地址]三、指令详解与实战示例1. User-agent — 指定爬虫身份# 针对所有爬虫 User-agent: * # 只针对 Google User-agent: Googlebot # 只针对百度 User-agent: Baiduspider常见爬虫名称对照表搜索引擎爬虫名称说明GoogleGooglebot网页抓取GoogleGooglebot-Image图片搜索百度Baiduspider网页抓取百度Baiduspider-image图片搜索BingBingbot微软必应搜狗Sogou spider搜狗搜索360360Spider360搜索2. Disallow — 禁止抓取# 禁止抓取整个网站不推荐除非特殊场景 User-agent: * Disallow: / # 禁止抓取后台目录 Disallow: /admin/ # 禁止抓取所有 .php 文件 Disallow: /*.php$ # 禁止抓取包含 ? 的 URL通常是动态参数 Disallow: /*?3. Allow — 允许抓取覆盖 Disallow# 禁止抓取 /private/ 目录但允许抓取其中的 public 子目录 User-agent: * Disallow: /private/ Allow: /private/public/⚠️ 注意Allow 优先级高于 DisallowGoogle 支持部分搜索引擎可能不支持。4. Sitemap — 提交站点地图Sitemap: https://example.com/sitemap.xml Sitemap: https://example.com/sitemap2.xml可以放置多个 Sitemap帮助爬虫更快发现网站内容。四、高级匹配规则与通配符通配符使用符号含义示例*匹配任意字符序列Disallow: /*.pdf$$表示 URL 结尾Disallow: /*.jpg$实战示例复杂规则配置# # 示例电商网站 robots.txt # # 规则1针对所有爬虫的基础规则 User-agent: * Disallow: /admin/ # 后台管理 Disallow: /cart/ # 购物车 Disallow: /checkout/ # 结算页面 Disallow: /user/ # 用户中心 Disallow: /search/ # 站内搜索结果避免重复内容 Disallow: /*?sort # 排序参数产生的重复页面 Disallow: /*?page # 分页参数如果有独立分页规则 Disallow: /api/ # 内部 API Disallow: /*.pdf$ # PDF 文件 Disallow: /*.zip$ # 压缩包 # 但允许抓取商品详情和分类 Allow: /product/ Allow: /category/ # 规则2针对 Google 图片搜索的特殊规则 User-agent: Googlebot-Image Disallow: # 允许抓取所有图片 Allow: /uploads/images/ # 规则3禁止恶意爬虫 User-agent: BadBot Disallow: / # 站点地图 Sitemap: https://example.com/sitemap.xml五、常见误区与陷阱❌ 误区 1robots.txt 能保护隐私真相robots.txt只是建议不是强制。恶意爬虫完全可以无视它。# 错误的隐私保护方式 Disallow: /secret-page.html # 虽然合规爬虫不会抓但所有人都能看到你的秘密路径✅ 正确做法敏感内容使用HTTP 认证、IP 白名单或noindex 元标签。❌ 误区 2Disallow 后页面就不会出现在搜索结果真相如果其他网站链接了这个页面它仍可能出现在搜索结果中只是没有描述。✅ 正确做法对不想被索引的页面同时使用!-- 在页面 head 中添加 -- meta namerobots contentnoindex, nofollow❌ 误区 3用 robots.txt 屏蔽 CSS/JS 文件真相Google 需要渲染页面屏蔽资源会影响 SEO 评分。✅ 正确做法不要屏蔽/css/、/js/目录。❌ 误区 4规则顺序无所谓真相规则匹配是从上到下以第一个匹配的规则为准。# ❌ 错误Allow 永远不会生效 User-agent: * Disallow: / Allow: /public/ # ✅ 正确先允许再禁止 User-agent: * Allow: /public/ Disallow: /六、验证与测试工具1. Google Search Console访问 Google Search Console → 抓取 → robots.txt 测试工具2. 在线验证工具Google Robots Testing Tool百度搜索资源平台3. 手动验证直接访问https://your-site.com/robots.txt检查内容。七、最佳实践清单✅ 应该做❌ 不应该做明确指定 Sitemap用 robots.txt 保护敏感数据屏蔽低价值页面搜索页、过滤页屏蔽 CSS/JS 文件为不同爬虫设置差异化规则在 robots.txt 中暴露后台路径定期检查和更新规则使用复杂的正则表达式兼容性差配合meta namerobots使用期望所有爬虫都遵守规则八、完整模板参考# # robots.txt for example.com # Last updated: 2026-07-15 # # 全局规则 User-agent: * Disallow: /admin/ Disallow: /api/ Disallow: /tmp/ Disallow: /search? Disallow: /*?*sort Disallow: /*?*filter Allow: / # 允许图片爬虫 User-agent: Googlebot-Image User-agent: Baiduspider-image Allow: /uploads/ Allow: /static/images/ # 禁止已知的恶意爬虫 User-agent: MJ12bot User-agent: AhrefsBot Disallow: / # 站点地图 Sitemap: https://example.com/sitemap.xml Sitemap: https://example.com/sitemap-news.xml九、总结要点核心记忆本质爬虫的交通规则非强制法律位置必须放在网站根目录隐私不能替代身份验证只是防君子不防小人SEO配合 noindex 使用引导而非阻止索引维护定期审查特别是网站重构后一句话总结robots.txt是网站与搜索引擎的君子协定——它告诉爬虫该去哪里但无法阻止恶意访问。真正的安全需要结合服务器层防护。