robots.txt 是独立于 html 的纯文本文件,必须置于网站根目录供爬虫主动请求,不能写入 html;html 中仅能用 控制单页行为,且依赖爬虫遵守规范。

robots.txt 文件和 HTML 没有直接关系——它不是写在 HTML 里的,而是一个独立的纯文本文件,必须放在网站根目录(例如 @#@#@#@#@#@#@#@#@#@0)下,供爬虫主动请求读取。
你无法在 HTML 文件中“声明”robots.txt 规则。混淆通常来自两个地方:一是误以为 meta name="robots" 就是 robots.txt;二是想用 HTML 控制爬虫但选错了方式。
robots.txt 不是 HTML 标签,也不能写进
你在 HTML 中能用的只有 <meta name="robots" content="noindex, nofollow"> 这类标签,它只对当前页面生效,且依赖爬虫遵守 HTML 规范(比如 Googlebot 会读,但很多简单爬虫直接忽略)。而 robots.txt 是服务器端的访问控制入口,所有主流爬虫(Google、Bing、Yandex 等)启动抓取前必先请求它。
-
robots.txt文件必须是 UTF-8 编码、无 BOM、放在域名根路径,不能放在子目录或 HTML 页面里 - HTML 中写
robots.txt内容(比如把User-agent: *塞进<script></script>)完全无效 - 服务器返回非
200 OK(如404、403)时,多数爬虫会默认允许抓取全部公开页面
真正该放哪里:Web 服务器根目录 + 正确响应头
部署 robots.txt 的关键是让 GET /robots.txt 返回可读的纯文本,且 Content-Type 为 text/plain(不是 text/html)。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
- Nginx 示例:确保
location = /robots.txt块未被重写规则覆盖,且不走 PHP 或前端路由 - Apache 示例:确认没有
RewriteRule把/robots.txt重定向到index.html(常见于 SPA 配置错误) - 静态托管(如 GitHub Pages、Vercel):直接上传
robots.txt到项目根目录,注意大小写(必须全小写) - 验证方式:直接浏览器访问
https://yourdomain.com/robots.txt,应看到明文内容,且开发者工具 Network 标签中状态码为200,Content-Type为text/plain
常见写错的规则及其后果
语法看似简单,但几处小错误会导致规则完全失效或反向放行:
-
Disallow: /admin/—— 正确:禁止抓取/admin/及其子路径 -
Disallow: /admin(末尾无斜杠)—— 错误:可能放行/administer、/admin.php等匹配前缀的路径 -
User-agent: Googlebot后没空行,紧接着写Disallow: /tmp/—— 多数解析器会忽略该规则,因为缺少空行分隔段落 - 混用大小写:
User-agent: googlebot在部分旧爬虫中可能不识别(建议全小写) - 试图用
Allow覆盖全局Disallow却放错顺序:规则按出现顺序匹配,Allow必须写在对应Disallow之后才有效
HTML 页面里该用什么替代 robots.txt?
如果目标只是控制单页是否索引,或限制某类链接是否跟踪,就该用 HTML 元素或 HTTP 头:
- 禁用索引:
<meta name="robots" content="noindex">(仅当前页) - 禁止跟随链接:
<meta name="robots" content="nofollow"> - 更严格的控制(如登录后页面):服务端返回
X-Robots-Tag: noindexHTTP 头,比 meta 标签优先级高且不可被前端篡改 - 敏感资源(如 PDF、图片):不在
robots.txt中暴露路径,而用登录态校验或X-Robots-Tag控制
真正容易被忽略的是:robots.txt 不提供认证或加密,所有规则都是“君子协定”。它不能阻止恶意爬虫,也不能隐藏页面——反而可能把本想保密的路径(比如 Disallow: /private/)无意中暴露出去。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










