给入口頁加 noindex 是很常见的操作:不希望入口頁本身出現在搜尋结果里,只让它充当一個連結中轉站。但很多人這时會冒出一個疑問——頁面既然都不让收錄了,那里面的連結搜尋蜘蛛還會不會跟?這個問题的答案,取决于你有没有把 noindex 和 nofollow 混為一谈。
先把 noindex 和 nofollow 分清楚
這两個指令管的事情完全不同:
- noindex:告诉搜尋引擎這個頁面不要放進索引,但頁面本身仍然可以被抓取,頁面上的連結也仍然可能被识別和跟随。
- nofollow:作用在單條連結上,表示這條連結不传递權重。至于還抓不抓,不同引擎的處理並不完全一致。
所以頁面級別的 noindex,並不等于頁面里的連結失效。把這两件事放在一起谈,很容易得出错誤结论。
搜尋蜘蛛怎么處理 noindex 頁面上的連結
有個前提容易被忽略:蜘蛛要讀到 noindex 這個标记,本来就得先把頁面抓下来。頁面被抓取之後,正文里能解析出来的标准 a 标簽連結,通常會被提取出来進入待抓队列。也就是说,noindex 主要影响的是這個 URL 會不會出現在搜尋结果里,而不是它上面挂着什么連結。
不過要让這套逻辑成立,還得满足几個條件:
- 搜尋蜘蛛必须真的能抓到頁面。如果同时用 robots.txt 屏蔽了整個目錄,蜘蛛压根不會来,noindex 也没机會被讀到,連結自然也就無從發現。
- 連結要是可解析的标准形式。用 JavaScript 临时插入、或者只挂在图片点击事件上的連結,發現率會明顯下降。
- 入口頁本身得有机會被訪問。没有任何外部或内部連結指向它、也没提交過 sitemap,蜘蛛就没有理由主動去抓。
给入口頁加 noindex 前,先想清楚你要什么
- 只想避免入口頁出現在搜尋结果里——noindex 是對路的做法。
- 想让入口頁彻底不被抓取——那是 robots.txt 或者反爬策略要解决的問题,但這样目标連結也會一起被切断。
- 想控制連結的權重传递——那應该用 nofollow 或者其他方式,而不是 noindex。
把 noindex 当成整頁的開關,是最常见的誤用。它更像是在说:這頁別上台亮相,但可以繼續留在後台。
几個容易踩的细节
1. HTTP 头和頁面内标记冲突
响應头里的 X-Robots-Tag 和頁面里的 meta robots 如果都設定了,規則會叠加。只要任意一處寫了 noindex,頁面基本就不會進索引。
2. 長期没人抓的入口頁,寫什么都没有意义
如果入口頁本身没有外鏈、也没提交 sitemap,抓取频率會很低甚至為零。這種情况下頁面上寫了什么标记都無所谓,因為蜘蛛根本不来,目标連結也就谈不上被發現。
3. 別把 noindex 和 robots.txt 一起用
這是很典型的一個坑:robots.txt 一旦屏蔽了入口目錄,蜘蛛就没机會讀到頁面里的 noindex。要是頁面上還放着目标連結,等于连連結一起被拦在门外。
落地时的检查清單
- 確認入口頁没有被 robots.txt 整体屏蔽;
- 確認目标連結是 HTML 里可直接解析的 a 标簽,不依赖脚本渲染;
- 確認入口頁本身有被訪問的路径,比如外鏈、sitemap 或蜘蛛池内其他頁面的指向;
- 到服務器日誌里核對,搜尋蜘蛛是否真的抓過這個入口頁。
最後提醒一句:noindex 能让入口頁不進索引,但它並不保證目标 URL 一定被發現,更不保證被收錄。它只是一個指令,實际效果取决于抓取有没有發生、連結是否可解析,以及目标站自身的情况。