结论先说清楚:只要入口页本身能被正常抓取,页面里的 noindex 只影响这个入口页自己要不要进索引,不会阻止搜索蜘蛛顺着页面上的链接继续往下走。目标链接能不能被抓住,取决于目标 URL 那一侧的状态,而不是入口页有没有写 noindex。真正会把链接跟进掐断的,是 nofollow 和 robots.txt 的 Disallow。
noindex 和 nofollow 是两件事
很多人把 noindex 理解成“这一页作废了”,其实它的语义只是“别把这个页面放进搜索结果”。在默认情况下,蜘蛛仍然会解析页面上的链接并跟进,也就是隐含了 follow 的行为。只有当你明确写成 noindex, nofollow 时,链接才不会被继续跟进。
对蜘蛛池入口页来说,这恰好是一个有用的组合:入口页本身没有内容价值,不希望它污染索引,但要靠它把目标 URL 递到蜘蛛面前,因此 noindex, follow 往往比什么都不写更合理。
几种控制手段,作用范围完全不同
- robots.txt 的 Disallow:禁止蜘蛛抓取这个页面。蜘蛛连页面都不取,自然看不到里面的链接,也读不到页面里写的 noindex。
- meta robots 的 noindex:页面能被抓取,只是被要求不进入索引,链接默认仍可跟进。
- meta robots 的 nofollow:明确要求不要跟进页面上的链接。
- X-Robots-Tag:写在 HTTP 响应头里,作用和 meta 标签一致,对非 HTML 类型的响应同样适用。
- a 标签上的 rel=nofollow:只影响那一条链接,不会波及整页。
一个常见的自相矛盾
如果用 robots.txt 把入口页整段屏蔽掉,同时在页面里写 noindex,这是一个无效组合。蜘蛛遵守 robots.txt,不会去抓这个页面,也就永远看不到那个 noindex 标签。结果往往是:入口页的 URL 仍可能出现在结果里,没有描述也没有快照,而页面里的目标链接一条都没被发现,等于白做。
想控制索引,就用 noindex 并保持页面可抓取;想彻底断开链接传递,就用 nofollow 或 robots.txt。两者混用之前,要清楚各自会付出什么代价。
入口页可以按这个顺序配置
- 确保入口页允许被抓取,不要放进 robots.txt 的 Disallow 列表。
- 在页面 head 里写 noindex, follow,让入口页不进索引但继续带路。
- 不要给目标链接随手加 rel=nofollow,除非确实想切断某一条。
- 入口页不要放敏感信息,因为它毕竟会被人和蜘蛛看到。
- 定期抽查入口页是否返回 200。被 403、503 或验证码挡住时,noindex 一样读不到,链接跟进也无从谈起。
目标链接那一侧也有自己的门槛
入口页这边配置正确,并不等于目标 URL 一定会被抓取或收录。目标站自己的 robots.txt 是否放行、返回的是 200 还是跳转、内容是否值得索引、服务器是否稳定,都会左右最终结果。入口页能做的只是把 URL 递到蜘蛛面前,抓不抓、收不收,是后面几步的事。
把 noindex 理解成给入口页挂了一块“免收录”的牌子就够了。这块牌子不影响它带路,也不该被当成万能开关,更不能用它替代 nofollow 或 robots.txt 去处理链接跟进的问题。