很多人把 noindex 当成一個刪除按钮,以為加上它頁面就會從搜尋结果里消失。實际上它更像一張便條,告诉搜尋引擎:這個頁面可以抓,但請不要放進索引。抓取、索引、展現是三個不同环节,noindex 只在第二個环节上起作用,另外两個环节它管不了。
noindex 的前提:蜘蛛得先能看到它
noindex 有两種常见的下法:HTML 里的 ,或者 HTTP 响應头里的 X-Robots-Tag。两者都需要蜘蛛實际抓取到頁面、或者至少拿到响應头之後才能讀到。如果一個 URL 已经被 robots.txt 挡住抓取,蜘蛛通常不會去讀頁面内容,也就看不到 noindex。這是最典型的自相矛盾:两個手段叠在一起用,结果谁都没按预期生效。
另外,搜尋引擎讀的是它自己抓到的那一版。如果指令是通過 JavaScript 注入的,而渲染环节没跑到那一步,指令就可能被忽略。所以關键頁面的 noindex,最好放在服務端輸出的 HTML 或响應头里。
几個常见场景,處理方式並不一样
站内搜尋结果頁、篩選參數頁
這類頁面的數量往往是内容頁的几十倍,而且内容重复度高,让它們不參與索引通常是合理的。但完全挡住抓取不一定合适,因為用戶和蜘蛛還要靠這些連結走到商品頁或文章詳情頁。常见做法是允许抓取、頁面加 noindex,同时保留連結可跟随。
内容重复的多個網址
同一個頁面有多個入口地址时,首選工具是 canonical,而不是 noindex。canonical 表達的是這几份内容以哪一個為准,索引里還能留下一個代表;noindex 則是這一份都不要。如果把 noindex 加在被 canonical 指向的主版本上,等于把整块内容都推出索引。两者混用還容易出現互相冲突的信号。
已经下架或不再需要展示的頁面
如果頁面内容對用戶已经完全没有意义,也没有合适的替代頁,直接用 404 或 410 會更干净。noindex 适合的是内容仍然存在、用戶訪問仍有價值,只是不希望它出現在搜尋结果里的情况,比如後台帮助頁、僅供站内跳轉的聚合頁。
分頁頁、标簽頁
這類頁面既是内容的一部分,也承担着連結發現的作用。是否 noindex,要看它們有没有獨立检索價值,以及處理之後蜘蛛還能不能走到深层頁面。一刀切容易被處理掉的,往往是一批本来需要被發現的内容。
容易踩的几個坑
- 模板誤伤:把 noindex 寫進公共模板或统一响應头,整站或整個栏目一起登出索引,常常要過一段時間才被發現。
- 以為改完立刻生效:指令要等下一次抓取才會被讀到,蜘蛛重新訪問之前,舊版本還可能留在索引里。想让它更快消失,可以在站長工具里提交移除請求,但那通常是临时的,最终還是要靠重新抓取。
- noindex 與 canonical 打架:一個说不要這一份,一個说以這一份為准,信号互相抵消,结果不好预测。
- 只看頁面源碼:源碼里没有 noindex,不代表蜘蛛看到的那一版也没有;反過来同样成立。
做完之後怎么確認
用站長工具里的網址检查功能,看的是蜘蛛實际抓取到的版本,包括响應头和渲染後的 HTML。检查时重点看三件事:指令有没有被讀到、頁面能不能被抓取、索引狀態有没有随之變化。改動之後別急着下结论,给蜘蛛留出重新訪問的時間。
把 noindex 当成一次精确的外科手術,而不是全局開關:它只解决索引层面的問题,不解决抓取,也不解决連結關系與頁面质量。
最後提醒一句:索引指令的選擇應该跟着頁面目的走。先問清楚這個頁面是给谁看的、在站内承担什么角色,再决定是让它參與索引、只允许抓取,還是彻底不出現。想清楚這一步,比反复調整指令本身更有價值。