先分清 noindex 和 robots.txt 拦截的区别
很多人在入口页上加 noindex,目的是避免入口页本身出现在搜索结果里。但它和 robots.txt 里的 Disallow 是两件不同的事:
- robots.txt Disallow:告诉蜘蛛不要抓取这个 URL。既然不抓取,页面里的链接自然也不会被解析到。
- meta noindex:告诉蜘蛛可以抓,但不要放进索引。页面照样会被下载和解析,里面的链接也能被发现。
所以只加 noindex,不会像 Disallow 那样把入口页变成盲区,搜索蜘蛛仍然能顺着入口页找到目标 URL。真正会切断发现链路的是 robots.txt 拦截,而不是 noindex 本身。
蜘蛛还会不会持续来抓这个入口页
这里有个容易忽略的点:noindex 只是去掉索引资格,不代表蜘蛛会固定回访。蜘蛛凭什么知道这个入口页存在?通常是靠外部链接、蜘蛛池内部互链,或者 sitemap 提交。
常见情况是这样:入口页本身有外链或其他页面指向,noindex 之后仍然会被抓取;如果入口页唯一的发现来源是 sitemap,而你又把它从 sitemap 里删掉了,那抓取次数会慢慢减少,最后目标链接也不再新鲜。
noindex 对目标 URL 的间接影响
直接影响有限,但有几处间接影响值得留意:
- 链接信号变弱。noindex 页面不参与索引,链接一般仍会被跟进,但入口页在搜索系统里的分量通常低于可索引页面,目标 URL 拿到的推荐信号不强。
- 抓取间隔拉长。入口页长期无索引,蜘蛛重新访问的周期可能变长,目标 URL 内容更新后的再次发现会变慢。
- 区域兴趣下降。如果入口页本身模板化、内容稀薄,再加上 noindex,蜘蛛对整个目录块的抓取意愿可能进一步降低。
如果想让入口页承担传递信号的作用,就不该加 noindex;如果只是把入口页当作纯粹的 URL 分发通道,noindex 是比较合理的选择。
几种配置组合的实际效果
- noindex + 可抓取:蜘蛛能抓、能发现链接,入口页不进索引。这是常见的通道型配置。
- robots.txt Disallow + 页面内 noindex:蜘蛛既不抓取,也读不到页面里的 noindex。链接不会被发现,属于最差的组合,等于白做。
- nofollow + 可抓取:nofollow 现在更多是提示,蜘蛛可能仍会跟进,但不保证。它和 noindex 是两个维度的问题。
- canonical 指向他页:页面本身可能被合并处理,链接通常仍会被解析,但优先级不固定,不宜把它当成发现目标 URL 的主要手段。
怎么确认入口页里的链接确实被看到了
看服务器日志最直接。按 User-Agent 过滤出搜索蜘蛛的请求,先看它有没有访问入口页,再看紧接着有没有请求同一批目标 URL。如果入口页有访问记录、目标 URL 一个没来,问题通常出在链接写法上,比如用 JavaScript 动态插入、放在 iframe 或图片按钮里,或者入口页返回了异常状态码,而不是 noindex 造成的。这种情况下改 noindex 的设置没有意义。
做与不做的几点建议
- 只是不想让入口页进搜索结果:加 noindex,不要动 robots.txt。
- 想让入口页帮目标 URL 传递信号:不要加 noindex,同时把入口页内容做得像正常页面一些。
- 别把 noindex 当成隐藏蜘蛛池的手段,它隐藏不了抓取行为,也挡不住别人看到页面里的链接。
- 入口页是否 noindex,应当根据它的定位决定,而不是习惯性加上去。
最后提醒一句:noindex 只决定这个 URL 本身能不能进入索引,能不能发现链接,取决于页面是否被抓取,以及链接是否以搜索蜘蛛可读的形式写在 HTML 里。