robots.txt 是纯文本协议文件,必须置于网站根目录且全小写命名,仅对遵守协议的爬虫生效,无法强制屏蔽敏感数据或替代权限控制。

robots.txt 不是 HTML 文件,它是一个纯文本协议文件,放在网站根目录下供爬虫读取,和 HTML 无关。直接在 HTML 页面里写 robots.txt 内容毫无作用。
robots.txt 文件必须放在网站根目录下
爬虫默认只认 https://example.com/robots.txt 这个路径。如果放错位置(比如 /assets/robots.txt 或 /admin/robots.txt),所有规则都会被忽略。
- 正确路径:
https://yoursite.com/robots.txt(HTTP 状态码必须是 200) - 常见错误:用 Nginx/Apache 重写把请求代理走了,导致返回 404 或 302
- 注意大小写:
Robots.txt或ROBOTS.TXT无效,必须全小写
User-agent 和 Disallow 的基本写法
User-agent 指定规则适用的爬虫,Disallow 声明禁止访问的路径。两者必须成对出现,空行分隔不同规则块。
-
User-agent: *匹配所有爬虫;User-agent: Googlebot只针对 Google -
Disallow: /admin/禁止抓取整个目录(注意结尾斜杠表示“目录”语义) -
Disallow: /tmp.html禁止单个文件;Disallow: /tmp会同时匹配/tmp、/tmp.html、/tmp/xxx - 空
Disallow:表示允许抓取全部内容(不是留空行)
示例:
User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php
Allow 规则优先级与通配符支持情况
Allow 是非标准但被主流爬虫(Google、Bing、Yandex)支持的扩展字段,用于在 Disallow 范围内开白名单。但不被所有爬虫识别,且不支持正则表达式。
- 规则按顺序匹配,**最先匹配的生效**(不是最精确的)
-
Disallow: /page+Allow: /page/1.html→/page/1.html仍被禁止(因为/page先匹配) - 正确写法应调换顺序:
Allow: /page/1.html在前,Disallow: /page在后 -
$和*通配符仅在 Google/Bing 支持,且只出现在Allow/Disallow值末尾(如Disallow: /*.php$)
robots.txt 无法实现的内容屏蔽
它只是建议协议,不具强制力;不能隐藏敏感数据,也不能替代权限控制。
- 不会阻止用户直接访问 URL,也不影响已收录页面的展示(需用
noindexmeta 或 HTTP 头) - 不阻止恶意爬虫或采集工具——它们根本不会读这个文件
- 不能用来屏蔽参数差异的 URL(如
/article?id=123),需配合rel="canonical"或 robots meta - 禁止写绝对路径:
Disallow: https://example.com/private/无效,只能写相对路径/private/
真正要阻止索引,得靠页面级控制:HTTP 响应头 X-Robots-Tag: noindex 或 HTML 中的 <meta name="robots" content="noindex">。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











