做蜘蛛池入口页时,很多人会问:给入口页加上 noindex,是不是就等于告诉搜索蜘蛛「别来」,链接也就白放了?答案没那么绝对。先把三件事拆开看:能不能抓取、要不要收录、会不会跟进链接。noindex 只管第二件事。
noindex 到底管什么
noindex 的准确含义是「不要把本页放进索引」。它不阻止抓取,也不自动阻止链接被发现。搜索蜘蛛仍然可以访问该 URL、读取 HTML、把页面上的链接加入待抓取队列。也就是说,noindex 不等于不抓取,也不等于不跟进链接。
想阻止抓取,用的是 robots.txt 的 Disallow,或者针对链接的 nofollow;想阻止索引,才用 noindex。两者作用层级不同,混着用容易得到意外结果。
实际排查里最常见的误解,就是以为入口页加了 noindex,搜索蜘蛛就不会再来了。日志里依旧能看到它抓取,这恰恰是正常表现。
两种写法效果基本等价
声明 noindex 有两种常见方式:
- 在 HTML 里用 meta robots 标签,content 中写明 noindex;
- 在 HTTP 响应头里用 X-Robots-Tag,值为 noindex。
两者对主流搜索引擎的作用大体一致,区别在于响应头对各种文件类型都有效,meta 只对 HTML 生效。响应头还能针对特定 UA 单独设置,但这样做要谨慎,容易被认为是刻意区分来源。
入口页用 noindex 是好主意吗
入口页的定位是链接中转,本身通常不需要参与排名,用 noindex 让它不占用索引位置,逻辑上说得通。但有几件事要认清:
- 抓取预算照常消耗。搜索蜘蛛仍要下载入口页 HTML 才能读到链接,noindex 省不掉这次请求。
- 链接能否被发现,取决于页面可访问、链接可解析。noindex 不会削弱这一点。
- noindex 不能「洗白」链接页。如果入口页本身内容单薄、外链集中,noindex 也改变不了它在链接分析中的角色。
别和 nofollow 搞混
如果目标是让搜索蜘蛛不跟进页面里的某条链接,应该用 rel 的 nofollow 值,或者响应头里的 nofollow、none,而不是 noindex。noindex 针对页面,nofollow 针对链接。两者可以叠加,叠加之后那条链接就不再算作可发现的路径。
还有一种常见组合是 noindex 加 follow:允许跟进链接,但不索引本页。这种写法在入口页里出现得最多,也最贴合入口页的功能定位。
怎么确认它真的在跟进
- 看服务器日志:noindex 页面的抓取是否持续,抓完之后目标 URL 有没有新的访问记录。
- 看抓取统计:入口页通常落在「已抓取未收录」或「被 noindex 排除」这一类里,属于预期现象。
- 看目标页:如果目标页长期完全没有抓取记录,问题多半出在链接可发现性或站点整体质量上,而不是 noindex 本身。
几个容易踩的点
- noindex 需要蜘蛛真正抓到页面才生效,不要指望它立刻起效。
- 如果同时用 robots.txt 屏蔽入口页,蜘蛛既读不到 noindex,也读不到链接,等于双重阻断,反而两头落空。
- 入口页数量很大时,批量使用 noindex 是常规操作,但不要把它当成掩盖质量问题的工具。
回到最初的问题:入口页加 noindex,搜索蜘蛛依然可能抓取并跟进链接,它改变的是索引状态,不是发现路径。真想把某条链接排除,用 nofollow;真想阻止抓取,用 robots.txt。三者各管一段,先想清楚要的是哪一段,再决定写哪种。