robots.txt是网站根目录下的纯文本协议文件,用于告知爬虫哪些路径可抓取(如disallow:/admin/),不通过html实现;它仅控制抓取权限,不影响索引,且必须满足文件名小写、200状态码、text/plain类型等硬性条件。

不能通过 HTML 实现 robots 协议引导。robots 协议靠的是独立的 robots.txt 文件,它必须放在网站根目录下(如 https://example.com/robots.txt),是纯文本格式,与 HTML 无关。
robots.txt 是什么,不是什么
robots.txt 是一个服务器端的纯文本协议文件,供搜索引擎爬虫(如 Googlebot、Bingbot)在开始抓取前主动请求读取。它不写在 HTML 里,也不能用 <link>、<script></script> 或任何 HTML 标签嵌入或加载。把规则塞进 或页面源码中,完全无效。
真正起作用的两种方式要分清
控制搜索引擎行为,实际有两类互不替代的机制:
-
robots.txt:决定爬虫“能不能访问某个路径”。例如
Disallow: /admin/表示禁止访问该目录及其所有子路径。它只影响抓取动作,不影响索引结果——被禁止抓取的页面,如果从外部链接进来,仍可能被索引(只是没内容可分析)。 -
meta name="robots":写在 HTML 的
中,决定爬虫“抓到页面后怎么处理”。例如<meta name="robots" content="noindex, nofollow">告诉爬虫:可以抓这个页面,但别索引、也别追踪里面链接。它只对当前页面生效,且必须是静态写入源码,JS 动态插入无效。
robots.txt 正确部署的关键点
想让它生效,必须满足四个硬性条件:
- 文件名全小写,严格为
robots.txt(不是Robots.txt、robots.TXT或robots.txt.html) - 放在网站根目录,能通过
https://yourdomain.com/robots.txt直接访问 - HTTP 状态码返回
200 OK(不是 404、302、403) - 响应头中
Content-Type必须是text/plain,不能是text/html
常见错误及后果
很多问题其实源于混淆或部署失误:
- 把
robots.txt放进/public或/static子目录 → 爬虫根本找不到,等同于没设 - 前端路由(如 Vue Router history 模式)未配置 Nginx/Apache 对
/robots.txt的静态响应 → 返回 404 或跳转到首页 - 写
Disallow: /admin(无结尾斜杠)→ 可能意外屏蔽/admin-api、/administer等前缀匹配路径 - 混用大小写:
User-agent: Googlebot后跟Disallow:但中间没空行 → 多数爬虫忽略后续规则
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











