很多站点在内容下架、改版過渡或活動結束时,會顺手给頁面加一個 noindex。這個标簽确實能阻止頁面進入索引,但它與「搜尋蜘蛛是否會發現這個 URL」是两件事:被 noindex 的頁面仍然可以被抓取和讀取,頁面上的連結仍然會被顺着爬。真正容易被忽略的,是 noindex 和 X-Robots-Tag 用错位置之後,连带把整块目錄的 URL 發現一起掐掉。
先分清 noindex 與「不被抓取」
noindex 的语义是「可以来看,但不要收錄」,而 robots.txt 的 Disallow 是「不要来看」。两者组合會带来一個常见陷阱:如果先用 robots.txt 屏蔽目錄,再指望頁面里的 noindex 生效,搜尋蜘蛛可能根本讀不到那個 noindex,结果是這些 URL 在部分情况下仍以無描述的形式出現在结果里。稳妥的做法是:要彻底不收錄且不需要被發現,用 robots.txt 配合 404 或 410;要保留被抓取、只是不進索引,用 noindex。两者不要混用。
常见的几種誤用场景
- 模板层誤加。主题或 CMS 的 head 模版里寫死了 noindex,只在首頁做了條件判断,结果栏目頁、标簽頁、作者頁全部中招。
- 分頁與聚合頁。為了「避免重复内容」给分頁加 noindex,但列表頁本身是新文章的主要入口,屏蔽之後新 URL 的發現路径會明顯變窄。
- 附件與文档。PDF、表格文件的 noindex 常常寫在 Nginx 或對象存储的响應头里,只看頁面源碼是查不到的。
- noindex 與 canonical 打架。頁面同时声明 canonical 指向另一個地址,又给自己加 noindex,信号之間容易互相拉扯。
- 上线後忘记摘掉。灰度或维護期間加的 X-Robots-Tag 被带進了生产环境,整站静默登出索引。
一份可执行的自查流程
- 在浏览器打開目标頁面,查看源碼中的 robots meta,记錄是 noindex 還是 noindex, nofollow。
- 查看 HTTP 响應头,重点是 X-Robots-Tag。静態资源、下载連結也要走一遍。
- 對比不同环境:预發布、灰度、生产三套配置是否一致,有没有一份被複製到了別處。
- 抽查近 30 天的服務器日誌,看被 noindex 的目錄里還有没有搜尋蜘蛛的請求记錄。請求數骤降,通常說明入口被切断了。
- 建立一張頁面清單,寫清哪些頁面允许抓取、哪些允许索引,改版时逐條核對,而不是凭印象。
什么时候该用 noindex,什么时候不该
适合 noindex 的,一般是确實没有獨立检索價值的頁面:站内搜尋结果頁、用戶個人中心、需要登入才能看到完整内容的頁面、一次性活動頁。需要谨慎對待的,是承载新内容入口的列表頁、分類頁和标簽聚合頁——這些頁面的主要價值不在于被搜到,而在于让搜尋蜘蛛顺着連結走到詳情頁。
如果只是想让某個 URL 從索引里消失,先確認内容本身是否已经下线。内容确實不存在了,用 404 或 410 比 noindex 更干净,也能让搜尋蜘蛛更快收敛。
noindex 像一把「只關灯、不鎖门」的開關。它挡的是收錄,不挡抓取,也挡不住連結把蜘蛛带進来。真正需要關閉入口时,要回到 robots.txt、狀態碼和内鏈结构上一起改。
最後建议把 noindex 相關的改動纳入變更记錄:谁加的、加在哪一层、什么时候去掉。這類問题排查起来往往不复杂,但因為藏在响應头或模版里,很容易一直挂着没人發現。