noindex,follow更适合分页和筛选页:页面不被索引以避免重复,但允许爬虫通过“下一页”等链接抓取新内容;必须静态写入html head,不可js动态添加,且拼写须为全小写、无空格、英文逗号分隔。

noindex,follow 为什么比 noindex,nofollow 更适合分页和筛选页
分页页(如 /blog?page=2)或参数化筛选页(如 /products?category=shoes&sort=price)内容高度重复,但页内链接(如“下一页”、产品详情链接)是爬虫发现新内容的关键入口。设成 noindex,nofollow 会切断权重传递路径,导致深层页面长期不被发现。
正确做法是用 noindex,follow:页面本身不进索引,但允许爬虫顺着链接抓取真实内容页。这既避免重复收录,又保留站内链接权重的自然流动。
-
noindex,follow必须静态写死在服务端输出的 HTML中,不能靠 JS 在mounted或useEffect里插入 - 若用 SSR 框架(Next.js/Nuxt),确保该标签由
getServerSideProps或asyncData注入,而非客户端 hydration 后补 - 验证方式:右键 →「查看网页源代码」→ 搜索
<meta name="robots">,确认它出现在原始 HTML 的 <code>最上方,且拼写为noindex,follow(无空格、小写、英文逗号)
动态路由下如何让 /admin/* 和 /user/* 自动 noindex,nofollow
纯 CSR 应用(如 Create React App 默认模式)无法靠 <meta name="robots"> 区分不同前端路由——所有路由返回的是同一份空壳 HTML,<meta> 标签只能全局写死,没法按路径动态生效。
此时必须放弃 HTML meta,改用 HTTP 响应头 X-Robots-Tag,由服务端(Nginx、Node.js 中间件或 CDN 规则)根据请求路径注入:
- Nginx 示例:
location ^~ /admin/ { add_header X-Robots-Tag "noindex, nofollow"; } - Node.js Express 示例:
app.use('/admin', (req, res, next) => { res.setHeader('X-Robots-Tag', 'noindex, nofollow'); next(); }); - 注意:响应头优先级高于
<meta>,若两者冲突,爬虫以X-Robots-Tag为准 - CDN 缓存需留意:若缓存了带
X-Robots-Tag: noindex的响应,撤掉指令后旧缓存仍长期生效
robots.txt Disallow 和 meta noindex 的组合陷阱
robots.txt 管“能不能进门”,<meta name="robots" content="noindex"> 管“进门后干啥”。两者逻辑不重叠,但配合不当会失效。
常见错误是只在 robots.txt 里写 Disallow: /test/,却以为这样就能阻止 /test/dashboard.html 被索引——如果该页面已被外链引用,Google 可能已缓存并继续展示 URL(无摘要,仅地址)。这时必须双保险:
- 先在
robots.txt中Disallow: /test/阻止后续抓取 - 再确保
/test/dashboard.html的初始 HTML里有<meta name="robots" content="noindex,nofollow">,让已抓取的页面逐步退出索引 - 绝对不要把
<meta name="robots">放在或靠 JS 动态插入——爬虫看不到 - 验证是否生效:用 Google Search Console 的「URL 检查」工具,看提示是否为“页面上有 noindex 标签”;如果不是,说明标签没出现在初始 HTML 中
content="noindex, nofollow" 里那个空格就是废掉整条指令
搜索引擎对 content 值的解析极其严格。noindex, nofollow(逗号后带空格)会被部分爬虫截断为只识别 noindex,nofollow 直接丢弃;NOINDEX,NOFOLLOW 或 no-index,no-follow 同样无效。
唯一安全写法是全小写 + 英文逗号 + 零空格:noindex,nofollow。这不是风格偏好,是协议级要求。
- CMS 或模板引擎中拼接时,务必 trim 空格:
content="{{ $robots|trim }}" - 不要混用中文标点,如全角逗号、顿号
- 多个指令可叠加,如
noindex,nofollow,noarchive,但每项之间仍不可有空格 - 哪怕页面只用
noindex,也建议显式写出完整组合(如noindex,follow),避免因默认行为变化引发意外
真正起作用的从来不是你写了什么,而是它是否在首次 HTTP 响应的 HTML 里真实存在、位置靠前、拼写零误差,且没被更高优先级规则覆盖。动态注入、大小写混用、空格多一个——这些细节不是“可能出错”,而是“必然失效”。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











