noindex,follow允许页面不被索引但传递内链权重,noindex,nofollow则既禁止收录又阻断所有链接权重传递;二者指令解耦,需按场景精准组合,且必须服务端输出、位置正确、无覆盖。

noindex,follow 和 noindex,nofollow 对内链权重传递的影响完全不同
很多人以为加了 noindex 就万事大吉,其实它和 follow/nofollow 是解耦的两个指令。搜索引擎会分别执行:是否收录页面、是否追踪该页上的链接——这直接决定你页面的链接权重是否外泄或滞留。
典型场景下:
-
noindex,follow:页面不进搜索结果,但里面所有<a href="..."></a>链接仍会被爬虫抓取并传递 PageRank(比如分页页/blog?page=2) -
noindex,nofollow:页面不被索引,且爬虫会忽略该页所有出站链接(适合登录页、测试页、用户后台入口) - 误配
noindex却漏写nofollow,可能导致爬虫顺着你页面里的“查看更多”链接疯狂抓取低质筛选页,拖慢全站抓取配额
动态路由页(如 React/Vue SPA)根本看不到 meta robots 标签
单页应用返回的初始 HTML 通常是空壳,<meta name="robots"> 如果靠 useEffect 或 mounted 动态注入,Googlebot 等主流爬虫压根不执行 JS,也就读不到这个标签。
解决办法只有一条:服务端必须根据请求路径,在 HTTP 响应头中设置 X-Robots-Tag:
HTTP/1.1 200 OK X-Robots-Tag: noindex, nofollow
注意:
-
X-Robots-Tag优先级高于<meta name="robots">,且适用于 PDF、图片等非 HTML 资源 - Nginx 可用
map指令按路径匹配,Apache 可用RewriteRule+Header set - CDN 缓存了带
X-Robots-Tag: noindex的响应?撤掉指令后缓存不刷新,页面会长期无法被索引
robots.txt 屏蔽路径后,meta robots 完全失效
这是最常被忽略的层级关系:robots.txt 是门禁,<meta name="robots"> 是屋内标牌。如果 robots.txt 里写了 Disallow: /admin/,爬虫根本不会发请求去拿 /admin/login.html 的 HTML,自然也看不到里面的 noindex 标签。
所以双保险不是“可选”,而是关键路径的强制操作:
- 先确保
/robots.txt返回 200 状态码且放在根目录(访问https://yoursite.com/robots.txt必须能直接看到纯文本) - 对敏感路径,
robots.txt屏蔽 + 页面 HTML 中静态写死<meta name="robots" content="noindex,nofollow">(位置必须在内,紧接<meta charset>后) - 别把
noindex当成补救措施——如果某页已被大量外链引用,仅靠noindex会让它以“URL-only”形式留在搜索结果里,必须配合robots.txt阻断后续抓取才能逐步淡出
参数化 URL(如 ?utm_source=xxx)容易触发重复索引
带查询参数的 URL 很难用 robots.txt 精准屏蔽,比如 /product?id=123&ref=email 和 /product?id=123&ref=social 本质是同一页面,但爬虫视为不同资源。
更稳妥的做法是服务端判断:
- 检测 URL 是否含 UTM、分页、排序等参数,若存在则输出
<meta name="robots" content="noindex,follow"> - 避免用
Disallow: /*?这种粗暴规则——它会连带屏蔽/api/docs?version=2这类合法接口文档 - 对已存在的参数化页面,用
rel="canonical"指向规范 URL,比单纯noindex更利于权重收敛
真正起作用的从来不是标签本身,而是它是否在首次 HTTP 响应中真实存在、拼写准确、位置正确,且没被更高优先级机制覆盖。任何环节出错,就等于没设。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











