noindex 是一條指令,不是一個開關。它的含义是“這個頁面可以抓,但不要放進索引”。当你把它去掉之後,頁面通常不會立刻回到索引里,而是需要被重新抓取、重新评估。多數排查失敗,問题出在把這三件事当成了一件事。
第一层:確認 noindex 是不是真的去干净了
最常见的坑是“以為去掉了”,其實還有另一處在輸出。同一個 noindex 可能来自多個位置,改動时要逐一確認。
- HTML 里的 meta robots 指令。模板、组件、頁面級配置都可能寫入,改了一處,另一處還在渲染。
- HTTP 响應头里的 X-Robots-Tag。它對非 HTML 资源同样有效,容易被忽略,而且往往和 meta 同时生效。
- CDN、反向代理或安全策略统一下發的規則。改代碼不起作用,因為指令是在請求鏈路上加上的。
- 多域名、多协议、多路径版本。你放行的可能是 A 版本,而索引里记住的是 B 版本。
核對方式很直接:用抓取工具看原始响應,不要只看渲染後的頁面,也不要只看自己电脑上的浏览器。
第二层:確認爬虫能拿到新版本
這一步是把“我改了”變成“爬虫看到了”。這层不通,後面的判断都没有意义。
- 缓存层。CDN、邊缘节点、對象存储可能還挂着舊 HTML,需要回源確認實际返回的内容。
- 抓取频次。大批頁面長期處于 noindex,相關 URL 的抓取優先級會下降,放行之後需要一段時間恢复。
- 入口信号。内鏈、站点地图、列表頁是否還指向這個 URL。入口被删掉,重新發現的概率就明顯降低。
第三层:重新抓取和重新收錄是两件事
頁面被重新抓取,說明爬虫讀到了新版本;能不能進入索引,還要看内容质量、與站内其它 URL 的重复關系以及站点整体信号。曾经被 noindex 的頁面,不會因為一次抓取就自動恢复。
抓取是讀取,索引是入库。放行指令只解决“允许讀”,不解决“值不值得收”。
恢复時間因站而异,主要取决于该目錄的抓取频次、頁面本身的更新频率和站点的整体抓取規模。短則几天,長則數周,這里没有统一答案。
按顺序核對的清單
- 用抓取工具確認 HTML 和响應头里都不再輸出 noindex。
- 確認返回狀態碼為 200,内容不是空頁、错誤頁或跳轉頁。
- 確認缓存返回的是新版内容,而不是改動之前的版本。
- 確認頁面仍有有效内鏈入口,站点地图中包含该 URL。
- 在搜尋後台手動請求抓取,观察抓取狀態是否更新。
- 等待若干天,观察已排除分類中的狀態是否不再标记為 noindex。
几個容易踩的坑
- 把 noindex 和 robots.txt 混着用。被 robots.txt 屏蔽的頁面,爬虫讀不到 noindex,指令等于失效。
- 反复切換 noindex 又放行。频繁變更會让爬虫降低對该目錄的抓取意愿。
- 只放行了入口頁,列表頁和詳情頁仍是 noindex,導致抓取鏈路断開。
- 頁面本身质量不過關。放行前先看内容厚度和是否與站内其它頁高度重复,否則可能以“重复網頁,未選擇規范版本”的狀態停留。
整体思路是:先確認指令层干净,再確認抓取层能看到,最後才谈索引层的恢复。顺序颠倒,就容易在错誤的地方反复排查,越改越乱。