给頁面加 noindex 之後,隔一段時間去查,發現它仍然留在索引里;或者反過来,明明希望它被收錄,却始终不進索引。遇到這種情况,先別急着改内容,先核對頁面級收錄指令本身是否真的生效。收錄指令有好几種下發方式,它們的作用层和覆盖范围並不一样,寫错一层,整條規則就可能落空。
先確認指令寫在了哪一层
常见的三種下發方式:
- HTML meta 标簽,寫在 head 里,例如 name 為 robots、content 為 noindex 的寫法。
- HTTP 响應头 X-Robots-Tag,由服務端返回,适合 PDF、图片這類非 HTML 资源。
- robots.txt,它管的是抓取,不是收錄。屏蔽抓取之後,地址可能仍留在索引里,只是内容不再更新。
核對时看原始响應最省事:用命令行查看响應头,再查看未渲染的 HTML 源碼。浏览器里点開“查看源代碼”,有时已经是前端處理過的结果,容易誤判。
几種常见的冲突寫法
meta 與响應头同时存在
两层都寫 noindex,通常不會出問题;如果一层寫 noindex、另一层寫 index,就要先分清谁更具体、谁後出現。稳妥的做法是只保留一层,另一层删掉,別自己给自己制造歧义。
noindex 與 canonical 互相矛盾
想移除的頁面,canonical 却指向一個希望保留的地址,两個信号方向相反,處理结果就不好预判。排除類頁面建议让 canonical 指向自身,或者干脆去掉不寫。
指令拼寫和限定范围出错
content 里多一個空格、把 noindex 寫成 no-index、爬虫名稱拼错,都可能让指令失效。另外,指令後面若跟了具体的爬虫名,就只對那一個生效,其他爬虫照常處理,這一点在只看某個後台报表时最容易被忽略。
前端動態插入的 meta
等脚本执行完才插入的 meta 标簽,不保證一定被讀到。确實要排除的頁面,指令最好寫在服務端輸出的 HTML 里。
一條可以照着走的核對顺序
- 看未渲染源碼,確認 meta 是否存在、拼寫是否正确、是否在 head 范围内。
- 看响應头里有没有 X-Robots-Tag,它和 meta 是否打架。
- 看 robots.txt 是否屏蔽了该路径,分清“抓取屏蔽”和“收錄移除”是两件事。
- 看该地址是否還被其他已收錄頁面用内鏈指向,這會影响它被重新處理的频率。
- 用站長後台的網址检查功能看该地址目前的判定,作為交叉驗證,不要只信一個口径。
- 记住改動時間,给移除或回归留出观察期,改完当天就下结论往往不准。
被排除的頁面還要不要留内鏈
如果頁面确實要長期排除,内鏈留着問题不大,但要接受抓取被浪費;如果只是临时排除,建议减少内鏈,別把信号持續導向一個不打算展示的地址。反過来,想让某個頁面被收錄,如果它的入口全都堆在頁脚、導航或脚本里,可能長時間發現不了,這时問题就不在 noindex 上,而在入口本身。
移除 noindex 之後要看什么
把 noindex 去掉、恢复為可收錄之後,頁面重新進入索引一般需要時間,長短取决于抓取频次、内鏈入口是否稳定。這段時間與其反复提交,不如先把入口和内容本身检查一遍,確認没有別的阻断因素。
收錄指令更像開關,而不是加速器。開關寫對了,也只是让頁面具备了被處理的前提。