noindex,nofollow 生效需满足位置(必须在 head 中)、格式(逗号无空格、小写)、时机(服务端直出 html);优先级最高的是 x-robots-tag 响应头,且不替代权限控制。

noindex,nofollow 必须写对位置、格式和时机
加了 <meta name="robots" content="noindex,nofollow"> 却没生效?大概率是它根本没出现在爬虫看到的初始 HTML 里。爬虫不执行 JS,也不等 React/Vue 渲染完再读标签——它只解析服务端返回的第一份 HTML 字符串。
常见翻车点:
-
<meta>被插在里,或放在但被动态脚本注入 - content 值写成
noindex, nofollow(逗号后带空格)或NOINDEX,NOFOLLOW(部分旧爬虫忽略大写) - 页面路径被
robots.txt的Disallow拦住,爬虫压根不请求该 HTML,标签自然失效 - CDN 缓存了带
X-Robots-Tag: noindex的响应,之后撤掉指令也长期不更新
noindex 和 nofollow 是两个独立开关,不是捆绑套餐
noindex 控制“这页要不要进搜索结果”,nofollow 控制“别顺着这页里的链接爬”。它们可以单独用,也可以组合,但效果不能混为一谈。
典型误配场景:
- 只加
rel="nofollow"到「后台登录」链接上,但登录页 HTML 里没写noindex→ 页面照样被收录 - 在搜索结果页写了
noindex却漏掉nofollow→ 爬虫不存这页,却顺着结果里的商品链接把全站抓穿 - 用户中心页加了
noindex,nofollow,但页脚有「帮助文档」链接 → 文档页失去关键入口权重
noindex,follow 和 noindex,nofollow 怎么选
选错组合,轻则放行垃圾子页面,重则切断重要链接路径。核心判断依据是:你是否希望当前页作为“跳板”帮爬虫发现其他内容。
适用 noindex,follow 的场景(允许传递权重):
- 分页页:
/blog?page=2,内容重复但“下一页”链接值得爬 - 筛选页:
/products?category=shoes&price=low,需让爬虫发现真实商品页 - 排序页或带参数的聚合页,本身无独立索引价值,但内链质量高
适用 noindex,nofollow 的场景(彻底断连):
- 登录页、注册页、密码重置页
- 测试环境页、灰度发布页、A/B 测试分支
- 用户私有页(如 /user/profile),既不该被搜到,也不该泄露导航结构
比 meta 标签更优先的是 X-Robots-Tag HTTP 头
单页应用(SPA)、PDF、JSON 接口、图片资源……这些都超出了 <meta> 标签的能力范围。此时必须用 HTTP 响应头 X-Robots-Tag: noindex,它优先级高于 HTML 中任何 meta 指令,且支持非 HTML 类型。
服务端配置要点:
- Nginx 示例:
add_header X-Robots-Tag "noindex,nofollow";(按路径匹配) - Node.js/Express 示例:
res.set('X-Robots-Tag', 'noindex'); - 注意缓存:若 CDN 缓存了该头,后续删掉也不会自动刷新,得主动 purge 或设短 TTL
- 不要和
robots.txt冲突:比如robots.txt放行/api/,但 API 返回X-Robots-Tag: noindex,爬虫会抓取但不索引——这没问题;但如果robots.txt屏蔽了/api/,HTTP 头就完全没机会生效
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











