不少人在頁面上加了 noindex,過几天去搜,發現结果里還挂着這條 URL,于是怀疑指令没寫對、或者搜尋引擎没听话。多數情况下,問题不在指令本身,而在于對它的预期:noindex 是一句請求,不是一個立刻执行的刪除動作。
noindex 管的是索引,不是抓取
這两個概念经常被混在一起。抓取是蜘蛛来取頁面内容,收錄是内容進入索引並有可能出現在结果里。noindex 属于索引层指令,它不會阻止蜘蛛来抓頁面——恰恰相反,蜘蛛必须先把頁面抓下来,才能讀到這條指令。
所以"加了 noindex 蜘蛛就不来了"是誤解。你依然會在日誌里看到它對這條 URL 的訪問,這是正常的。
把它理解成贴在门口的一張便條:請別把這里登记進册子。便條要被人看到才算數,而看的人什么时候来,不由你定。
為什么加了指令,索引里還留着它
常见原因大致分三類,排查时可以按這個顺序看。
- 時間差。已经進入索引的 URL,需要等蜘蛛重新抓取、重新處理後,才可能被移出。這個間隔取决于頁面的抓取频率、站点体量和整体抓取安排,几周是常態,冷门頁面更久。
- 指令没被讀到。比如 robots.txt 屏蔽了這個目錄,蜘蛛抓不到内容,自然看不到頁面里的 noindex;比如 meta 标簽被寫進了 body;比如靠 JavaScript 後期注入,渲染环节没跑到;比如 X-Robots-Tag 拼寫有誤,或者加在了不该加的那层响應上。
- 留在索引里的是另一個 URL 版本。带追踪參數、大小寫不同、http 與 https、带與不带结尾斜杠、甚至另一個域名下的镜像頁面。你 noindex 的是 A,索引里留的是 B,看上去像是没生效。
和 robots.txt 撞车时最麻烦
這是最容易被忽略的一種组合。如果某批 URL 同时被 robots.txt 屏蔽、頁面里又寫着 noindex,蜘蛛抓不到内容,noindex 就永遠讀不到。结果可能是:這些 URL 因為曾经被抓過或有過外鏈,以缺少摘要的形式長期挂在结果里,而你手上没有任何有效工具把它清掉。
處理顺序建议是反過来的:先放開抓取,让 noindex 被讀到,等它真正掉出索引之後,再考虑是否用 robots.txt 屏蔽。如果一定要屏蔽(比如抓取压力太大),至少心里清楚這批 URL 會處于一個無法用指令控制的狀態。
canonical 和 noindex 一起用會怎样
這两個指令方向是相反的。canonical 的意思是"這一頁要留下,但請把權重算给另一個地址";noindex 的意思是"這一頁不要留下"。同时给,搜尋引擎通常以 noindex 為准,canonical 被忽略。
所以選擇很简單:想让頁面留在索引里,就只用 canonical;想让它彻底出去,就用 noindex。不要指望两個一起寫能拿到"既留又不留"的中間態。
上线前後的检查清單
- 確認 meta robots 寫在 head 里,内容是 noindex 還是 noindex,follow,按需要選。
- 用官方的 URL 检查類工具看渲染後的 HTML,確認指令确實出現在里面,而不是只出現在源碼里。
- 如果走的是响應头,確認响應头里真的有這條,且没有在中間层被覆盖。
- 確認该 URL 没有被 robots.txt 拦住。
- 確認同内容的其他 URL 版本(參數、协议、大小寫)也一並處理了。
- 记下時間点,隔三四周再抽查一次,別当天就下结论。
哪些頁面值得考虑用 noindex
判断标准不是頁面好不好看,而是它有没有獨立價值、會不會和別的頁面争同一批需求。站内搜尋结果頁、篩選和排序參數组合出来的頁面、内容极少的标簽頁、測試頁、纯功能性的感谢頁和登入跳轉頁,通常都在這類清單里。
但也不必一刀切。有些篩選頁确實有稳定搜尋量,那就该给它正经的内容和規范 URL,而不是简單遮掉。
移除之後,別急着删頁面
noindex 生效並不要求頁面消失。頁面仍然可以正常訪問、承接内鏈、服務用戶,只是不進索引。如果直接删掉让它返回 404,反而可能有一段時間索引里還留着舊记錄,用戶点進去看到错誤頁。
更稳的节奏是:先 noindex,等掉出索引,再决定這個地址是保留、做 301 跳轉,還是用 410 明确告知已刪除。
它不是一次性動作
加 noindex 之後真正要做的只有两件事:確認指令真的被讀到了,然後给它時間。如果這两步都没問题,索引里的舊记錄自己會走;如果第一步就有問题,等多久都不會有變化。