noindex 是站点给搜尋引擎的一份声明:這個頁面可以来抓,但請不要把它放進索引。它和 robots.txt 屏蔽抓取不是一回事,前者管的是“能不能收”,後者管的是“能不能抓”。很多索引問题反复出現,根源就是把這两個開關用反了。
為什么要专门检查 noindex
如果先用 robots.txt 拦住某個目錄,蜘蛛拿不到頁面内容,自然也讀不到頁面里的 noindex。此时指令等于没寫,URL 仍可能因為外部連結而被记錄,只是没有摘要。反過来,该抓的頁面被批量加上 noindex,内容就再难進入索引,栏目權重也會慢慢被稀释。
robots.txt 管的是“能不能抓”,noindex 管的是“能不能收”。把两者当成同一種開關,是很多索引問题反复出現的根源。
三個投放位置各自能做什么
meta robots
寫在頁面 head 里的 meta 标簽,只對目前這一個 HTML 頁面生效。常见组合是 noindex, follow(不收錄,但連結繼續传递)和 noindex, nofollow(两者都切断)。大多數情况下,如果只是不想让頁面出現在结果里,保留 follow 更稳妥。
X-Robots-Tag
通過 HTTP 响應头下發,适合 PDF、图片、视频、JSON 等非 HTML 资源,也可以按目錄批量配置。它的優势是不依赖頁面渲染,服務器返回什么就是什么,做批量策略时比模板改代碼更省事。
robots.txt
不能用来做 noindex。它只控制抓取范围,被屏蔽的 URL 若仍被外部連結指向,依然可能以無描述的形式出現在结果里。把它当作“省抓取预算”的工具可以,当作“從索引里删掉”的工具不行。
哪些頁面适合考虑 noindex
- 站内搜尋结果頁,以及多层篩選组合出来的參數頁
- 用戶中心、訂單詳情、登入後可见的私有頁面
- 打印頁、纯排序副本、同一内容的重复列表
- 尚未定稿的预览地址和測試环境入口
- 已经废弃但仍有内鏈残留的舊栏目
一份可执行的自查清單
- 先列出所有下發 noindex 或 X-Robots-Tag 的来源:頁面模板、目錄配置、CDN、反向代理可能各有一套,確認它們不會互相覆盖。
- 確認這些 URL 没有被 robots.txt 同时屏蔽,否則指令讀不到。
- 检查 meta robots 是否由前端脚本動態寫入,客戶端渲染出来的指令,蜘蛛不一定来得及执行。
- 核對分頁:第一頁保留可索引,後續頁碼是否被整段誤加 noindex,導致内容無法顺着連結被發現。
- 检查 noindex 與 canonical 是否互相冲突。把主版本指向一個被 noindex 的地址,声明就没有意义。
- 舊地址下线时想清楚用 301 還是 noindex。長期挂着 noindex 的废弃頁,既不传递權重,也繼續占着抓取額度。
- 上线後用命令行查看响應头,或借助抓取工具確認 X-Robots-Tag 真的存在,別只信配置面板上的開關。
几個容易忽略的点
noindex 生效需要時間,撤掉之後重新被處理同样需要時間。不要在“加”和“撤”之間频繁横跳,否則站点狀態會長期處于中間態。
给整個目錄批量加 noindex 之前,先在少量 URL 上驗證效果,確認無誤再放開,避免一次誤操作把整站栏目挡在索引之外。
X-Robots-Tag 可以组合多條指令,但不同搜尋引擎對部分指令的支持范围並不完全一致。寫法上尽量保守,只保留明确需要的那几項,不做没必要的堆叠。
小结
noindex 不是隐藏按钮,而是一份声明。位置放對、组合寫對、在合适的层級驗證,站点结构才不會因為一堆不该出現的頁面而變得松散。把上面這份清單定期過一遍,比出問题後一條條排查要省力得多。