仅当静态写入服务端返回的初始html的中、全小写、逗号无空格、未被更高优先级规则覆盖时才生效;动态插入无效,需通过“查看网页源代码”验证。

直接加 <meta name="robots" content="noindex"> 不保证页面不被索引,关键在于它是否真实存在于服务端返回的初始 HTML 的 中、拼写全小写、逗号无空格、且未被更高优先级规则覆盖。
meta name="robots" 必须静态出现在初始 HTML 的 里
爬虫不执行 JavaScript,也不会等页面渲染完成再解析 meta 标签。用 useEffect、mounted 或 document.write 动态插入的 <meta name="robots"> 基本无效。
- 静态站点:手写进 HTML 模板的
最上方,建议紧接<meta charset>后 - SSR 框架(如 Next.js、Nuxt):确保该标签由服务端首次响应输出,而非 hydration 后补
- 纯 CSR 应用(如 CRA 默认模式):无法靠此标签控制不同路由,必须改用
X-Robots-Tag响应头或服务端路径判断 - 验证方式:右键 →「查看网页源代码」→ 搜索
<meta name="robots">,必须出现在原始 HTML 中且位于 <code>内部
content 值必须严格小写、无空格、英文逗号分隔
拼写或格式错一个字符,指令就失效。主流爬虫(Google、Bing)只认精确格式。
-
noindex,nofollow✅ 合法 -
noindex, nofollow❌ 逗号后有空格,部分旧爬虫忽略 -
NOINDEX,FOLLOW❌ 大写,不识别 -
no-index,nofollow❌ 连字符错误,整个值被跳过 - 混入中文逗号、顿号、全角符号、注释包裹,均会导致解析失败
noindex 和 nofollow 是独立开关,组合要按意图选
它们不是绑定对,各自生效,误配会引发意外行为。
-
noindex,nofollow:页面不收录,页内链接也不跟踪 —— 适合后台登录页、测试环境页、用户私有页 -
noindex,follow:页面不收录,但允许爬虫顺着页内链接发现其他页面 —— 适合分页页(/blog?page=2)、筛选页、排序页 -
index,nofollow:页面照常收录,但页内链接不传递权重 —— 慎用,易被视作操纵信号 - 单独
noindex:只屏蔽当前页收录,不干预链接发现 —— 若该页本身是入口(如搜索结果页),可能意外暴露大量子页面
别忘了 robots.txt 和 X-Robots-Tag 的分工与优先级
robots.txt 控制“能不能抓”,meta name="robots" 控制“抓了之后怎么处理”,X-Robots-Tag 响应头优先级最高且适用于 PDF、JSON、图片等非 HTML 资源。
- 若
robots.txt已Disallow: /admin/,爬虫根本不会请求 HTML,meta标签没机会生效 - 若同时存在
X-Robots-Tag: noindex和<meta name="robots" content="index">,爬虫以响应头为准 - SPA 页面中,前端路由页返回空壳 HTML,此时必须由服务端根据 URL 路径注入
X-Robots-Tag - CDN 或反向代理若缓存了带
X-Robots-Tag: noindex的响应,撤掉指令后页面仍可能长期无法被索引
真正容易被忽略的是:标签本身不重要,重要的是它是否在首次 HTTP 响应体中真实、准确、及时地存在——所有验证都该基于原始 HTML 源码,而不是浏览器开发者工具里渲染后的 DOM。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











