meta name="robots"不限制爬取深度,只控制单页被抓取后的索引与链接跟踪行为;真正决定爬取深度的是robots.txt的disallow规则、页面内链接结构及sitemap.xml显式声明。

meta name="robots" 根本不限制爬取深度,它只决定单页被抓到后是否索引、是否跟踪链接;所谓“深度”,由 robots.txt 的 Disallow 规则、内部链接结构和 sitemap.xml 共同控制。
robots meta 标签不处理“爬多深”,只管“这一页怎么用”
搜索引擎爬虫的抓取路径是树状展开的:先从首页或 sitemap 入口开始,顺着 <a></a> 链接一层层往下走。而 meta name="robots" 只在每个页面被单独请求并解析时起作用——它不告诉爬虫“别点第 3 层的链接”,只说“当前页别索引”或“当前页上的链接别跟”。
所以:
• 加了 noindex,follow 的页面,爬虫不会收录它,但会顺着它里面的 20 个 <a href="/product/xxx"></a> 去抓产品页;
• 加了 noindex,nofollow 的页面,爬虫既不收录它,也不会点它任何链接,相当于把这页当死路;
• 想阻止爬虫进入 /admin/ 下所有子路径?靠 meta 是徒劳的,必须用 robots.txt 的 Disallow: /admin/。
真正影响爬取深度的三个实际落点
爬虫能走到哪一层,取决于你是否切断了它的“路标”和“入口”:
• robots.txt 中的 Disallow 是第一道闸门。比如 Disallow: /category/ 会让爬虫连 /category/1 和 /category/1/page=2 都不发请求;
• 页面内链接是否可发现:如果某页(如搜索结果页)被设为 noindex,nofollow,而它又是唯一通向 /private/xxx 的出口,那 /private/xxx 就彻底断链;
• sitemap.xml 是否显式列出深层 URL。即使没被自然链接到,只要出现在 sitemap 且未被 noindex,爬虫仍可能抓取——这是绕过“深度限制”的常见方式。
noindex,follow 和 noindex,nofollow 对链接传播的实际差异
这两个组合常被误用,直接决定爬虫能否抵达下一层:
• noindex,follow:适合分页页(/blog?page=2)、筛选页(/shop?color=red&size=m)。它们内容重复,不该进搜索结果,但页内的“下一页”“相关商品”链接必须保留,否则后续页无法被发现;
• noindex,nofollow:适合登录跳转页、A/B 测试分支页(/landing?test=v2)。这些页不该被索引,也不该成为通往其他页面的通道;
• 错误示范:给一个聚合页(含 50 个产品链接)加 noindex,nofollow,等于主动封死整条产品线;
• 更隐蔽的问题:某些 CMS 在分页模板里统一写 noindex,nofollow,结果第 2 页之后的所有内容都不可见。
SPA 路由页的 meta robots 失效陷阱
React/Vue 单页应用中,几乎所有路由页都共享同一个 HTML shell,meta name="robots" 如果靠 JS 动态注入,爬虫看到的永远是初始空壳页,指令完全不生效:
• 不要依赖 useEffect(() => { document.head.append(...);
• 正确做法是服务端根据请求路径(如 req.url === '/user/dashboard')返回带对应 meta 的 HTML,或更稳妥地用响应头:X-Robots-Tag: noindex;
• 注意 CDN 缓存:如果 Nginx 或 Cloudflare 缓存了带 X-Robots-Tag: noindex 的响应,后续即使撤掉配置,爬虫仍会持续收到该头,导致页面长期无法被索引。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











