先把两個指令分開看
很多人把 noindex 和 robots.txt 里的 disallow 当成同一類“不让收錄”的設定。實际它們作用在不同环节:disallow 管的是抓取,noindex 管的是索引。若一個 URL 被 disallow 屏蔽,搜尋引擎通常不會去抓取,也就看不到頁面里的 noindex;如果同时又希望它不進入索引,這種组合反而可能让指令失效或延迟生效。
一個常见的矛盾配置:robots.txt 里 disallow 了某個目錄,頁面里又寫了 noindex。抓取被挡住,noindex 可能永遠不會被讀到。
noindex 的几種寫法
noindex 可以出現在 HTML 的 meta 标簽里,也可以放在 HTTP 响應头的 X-Robots-Tag 中。對非 HTML 文件,比如 PDF、图片、视频,通常只能用响應头的方式。寫法上要注意:
- meta 标簽:name=robots,content=noindex:頁面級指令,作用于目前 URL。
- X-Robots-Tag: noindex:响應头指令,适合非 HTML 资源,也可用于整站或目錄。
- noindex, nofollow:同时禁止跟踪連結,但两者是獨立開關,不要預設捆绑。
如果只想让某個頁面不進入索引,但希望蜘蛛繼續抓取並發現其他連結,一般只需要 noindex,不需要加 nofollow,也不需要去 robots.txt 里 disallow。
自查顺序:從頁面到响應头,再到 robots.txt
当發現一個本该收錄的頁面没有出現在索引里,或者搜尋 site 指令查不到,可以按下面顺序排查:
- 查看頁面源代碼,搜尋 meta robots,確認有没有 noindex,以及是否被模板批量輸出。
- 用抓取工具或浏览器開發者工具查看 HTTP 响應头,检查 X-Robots-Tag 是否带了 noindex。
- 检查 robots.txt 是否 disallow 了该 URL 或所在目錄。如果 disallow 存在,先判断它是否必要。
- 查看 canonical 是否指向了別的 URL。canonical 不直接禁止索引,但可能让目前 URL 被合並。
- 確認頁面返回的狀態碼。noindex 只對可正常訪問的頁面有意义,404、410 本身就不會進入索引。
排查时不要只看一個入口。模板、CMS 插件、CDN 邊缘規則、服務器配置都可能加上 noindex 或 X-Robots-Tag。
移除 noindex 之後,收錄不會立刻回来
把 noindex 去掉只是打開了“允许索引”的開關。搜尋引擎還需要重新抓取這個 URL,才能看到更新後的指令。這個周期取决于抓取频率、頁面重要性、内鏈和站点整体更新节奏。可以做的動作包括:
- 確認頁面現在返回 200,並且内容可正常訪問。
- 在 sitemap 中保留该 URL,並更新 lastmod 為實际修改時間。
- 從相關頁面添加内鏈,帮助蜘蛛重新發現。
- 如果頁面重要,可以在 Search Console 等工具中提交單個 URL 抓取請求,但不要反复提交。
提交之後仍然需要等待。索引狀態可能先變成“已發現”或“已抓取”,再進入“已编入索引”,中間有時間差。
容易忽略的几個点
- 分頁與篩選參數:如果模板给所有带參數的 URL 加了 noindex,要確認是否誤伤了需要收錄的主列表頁。
- 标簽頁和聚合頁:noindex 可以作為收敛手段,但前提是這些頁面确實没有獨立搜尋價值,而不是為了省事一刀切。
- 移動版與桌面版:移動優先索引下,要检查移動版頁面是否带了 noindex,而桌面版没有。
- HTTP 與 HTTPS、www 與非 www:noindex 可能只加在了其中一個版本上,另一個版本仍然被索引。
小结
處理 noindex 相關的收錄問题,核心是分清抓取和索引两個环节:disallow 可能让 noindex 讀不到,noindex 才是控制是否建索引的指令。恢复收錄时,先移除多余指令,再保證頁面可抓取、可訪問,並通過内鏈和 sitemap 帮助發現。至于最终是否收錄、多久收錄,仍由搜尋引擎根據頁面质量和站点情况决定,没有固定的時間承诺。