robots.txt 安装与使用指南

本文是一份面向实际网站运维和 SEO 基础管理的 robots.txt 指南。重点不是只给你一份模板,而是讲清楚它能做什么、不能做什么、怎么写才不容易出错,以及如何和 sitemapnoindexX-Robots-Tag 配合使用。

适用场景

  • 控制搜索引擎抓取哪些路径
  • 减少无意义页面对爬虫的消耗
  • 为站点地图提供入口
  • 在 CMS 或 Web 项目里统一输出规则
  • 配合 noindex、meta robots 和 X-Robots-Tag 做索引控制

robots.txt 是什么

robots.txt 是放在网站根目录下的文本文件,例如:

https://www.example.com/robots.txt

它属于 Robots Exclusion Protocol 的一部分,作用是告诉爬虫哪些路径允许抓取、哪些路径不要抓取。


重要前提:

  • 它主要影响“抓取”
  • 它不是安全机制
  • 它不能防止敏感内容被人直接访问

核心结论

如果你只记住一件事,那就是:

  • robots.txt 是给爬虫看的,不是给攻击者看的

因此:

  • 不要用它隐藏真正敏感的管理页面
  • 不要把私密地址当作安全边界
  • 需要真正禁止访问时,应使用认证、授权、IP 白名单或服务器级限制

基本语法

robots.txt 每一行通常由字段和值组成:

field: value

常见规则项:

  • User-agent
  • Allow
  • Disallow
  • Sitemap

注释使用 #

# 这是注释

最小可用模板

一个最基础、最常见的模板如下:

User-agent: *
Disallow:

Sitemap: https://www.example.com/sitemap.xml

含义:

  • User-agent: * 表示适用于所有爬虫
  • Disallow: 为空表示不禁止抓取任何内容
  • Sitemap: 给出站点地图地址

这是很多正常公开站点的起点配置。

常见写法

允许全部抓取

User-agent: *
Disallow:

禁止全部抓取

User-agent: *
Disallow: /

屏蔽后台目录

User-agent: *
Disallow: /admin/
Disallow: /login
Disallow: /api/

仅允许某些路径

User-agent: *
Disallow: /
Allow: /public/
Allow: /assets/

说明:

  • 当规则冲突时,具体实现会根据匹配优先级判断
  • 对 Google 来说,Allow 和 Disallow 都是有效字段
  • 规则写得越复杂,越容易出错,尽量保持简洁

robots.txt 能做什么

它最适合做这些事:

  • 减少爬虫抓取压力
  • 避免低价值页面占用抓取预算
  • 告诉搜索引擎站点地图位置
  • 在迁移、测试、临时环境里统一阻止抓取

robots.txt 不能做什么

它不能:

  • 阻止用户直接访问 URL
  • 作为登录或权限控制替代方案
  • 彻底阻止敏感内容被搜索引擎收录
  • 保证所有爬虫都会遵守

MDN 和 Google 都明确说明,这不是安全边界。某些恶意爬虫可能完全无视它。

与索引的关系

这是最容易误解的地方。

1. 阻止抓取,不等于阻止收录

如果一个页面被外部链接大量引用,即使爬虫不能抓取内容,它仍可能在搜索结果中以“URL 级别”形式出现。

2. 想让页面不被索引,应该用别的手段

更合适的方法是:

  • 页面级 meta robots
  • X-Robots-Tag HTTP 头
  • 认证保护

例如:

<meta name="robots" content="noindex, nofollow">

或者:

X-Robots-Tag: noindex, nofollow

3. 不要让 robots.txtnoindex 打架

如果你想让搜索引擎看到 noindex,但你又在 robots.txt 里把该页面完全禁抓,爬虫就看不到 noindex,索引控制可能失效。

与 sitemap 的关系

robots.txt 常常会放一个或多个 Sitemap 行:

Sitemap: https://www.example.com/sitemap.xml
Sitemap: https://www.example.com/sitemap-images.xml

建议:

  • sitemap URL 要用绝对地址
  • sitemap 中的域名要和站点主域名统一
  • 不要把测试环境 sitemap 放到正式站点里

站点级模板

正常公开站点

User-agent: *
Disallow:

Sitemap: https://www.example.com/sitemap.xml

后台和接口需要屏蔽

User-agent: *
Disallow: /admin/
Disallow: /api/
Disallow: /login

Sitemap: https://www.example.com/sitemap.xml

测试环境完全禁止抓取

User-agent: *
Disallow: /

静态资源站点

如果你的站点主要是公开静态资源,通常可以保持开放,只屏蔽少量管理路径:

User-agent: *
Disallow: /admin/
Disallow: /private/

多爬虫规则

你可以针对不同爬虫定义不同规则:

User-agent: Googlebot
Disallow: /private/

User-agent: *
Disallow: /tmp/

建议:

  • 只有在你确实需要差异化规则时才这么写
  • 大多数站点用统一规则就够了
  • 规则越复杂,维护成本越高

常见路径约定

在真实项目里,经常会屏蔽这些路径:

  • /admin/
  • /login
  • /user/
  • /api/
  • /search
  • /internal/
  • /tmp/

但是否屏蔽,要看业务目标。


例如:

  • /search 可能是低价值页面,常常适合屏蔽
  • /api/ 可能本来就不该被搜索引擎抓取
  • /admin/ 绝大多数情况应屏蔽,但更重要的是服务器级访问控制

文件位置与服务方式

robots.txt 必须放在站点根路径下,搜索引擎会从根路径读取它。


例如:

/robots.txt

如果你的网站用了多个子域名,每个主机名都可以有自己独立的 robots.txt

  • example.com/robots.txt
  • www.example.com/robots.txt
  • api.example.com/robots.txt

注意:

  • 不同主机名下的 robots.txt 是独立的
  • 主域名和子域名不能混用一份文件来替代

HTTP 状态与编码

建议:

  • 返回 200 OK
  • 纯文本输出
  • UTF-8 编码

常见不要做的事:

  • 不要返回 404
  • 不要把 robots.txt 重定向到复杂页面
  • 不要返回 HTML

生成与维护建议

如果你的站点是 CMS 或 Web 应用,建议把 robots.txt 当作一个“可配置输出项”。


例如在程序里维护:

  • 站点主域名
  • sitemap 地址
  • 环境标识
  • 屏蔽路径集合

这样比手工改文件更稳定。


你当前仓库里已经有 robots 字段配置,这说明它很适合做成站点级动态输出,而不只是静态文件。

常见错误

1. 把 robots.txt 当安全机制

这是最常见错误。robots.txt 不会保护你的后台,只会告诉爬虫怎么抓取。

2. 语法写错

常见问题:

  • 字段拼写错误
  • 冒号后面多了奇怪字符
  • 路径没有以 / 开头
  • Sitemap 写成了相对路径

3. 放错目录

必须在网站根目录下:

/robots.txt

不是:

/static/robots.txt

除非你的 Web 服务器做了特殊路由映射。

4. 以为 Disallow 后内容不会被收录

不一定。抓取和索引不是一回事。

5. Disallow: / 用在正式站点

这会让整个站点对爬虫不可抓取,通常只适合测试环境或临时封站。

检查清单

在上线前,建议确认以下事项:

  • robots.txt 能在根路径访问
  • 返回状态码是 200
  • 内容是纯文本
  • sitemap URL 正确
  • 屏蔽路径符合业务预期
  • 不把敏感数据当作“靠 robots.txt 保护”

推荐实践

一个稳妥的默认策略是:

  • 公开内容允许抓取
  • 管理后台和临时接口屏蔽抓取
  • sitemap 只暴露正式站点地址
  • 真正敏感的内容使用认证或访问控制

最小可用示例

User-agent: *
Disallow: /admin/
Disallow: /api/

Sitemap: https://www.example.com/sitemap.xml

结论

robots.txt 是站点对爬虫的“公开规则声明”,最适合用于:

  • 控制抓取
  • 降低无效爬行
  • 暴露 sitemap
  • 配合索引控制策略使用

但它不适合:

  • 做安全隔离
  • 保护私密内容
  • 替代认证和权限系统
本文地址: https://www.vvcms.cn/blog/robots-guid
版权所有 © admin 未经授权不得转载