很多人把 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 当成一次精确的外科手术,而不是全局开关:它只解决索引层面的问题,不解决抓取,也不解决链接关系与页面质量。
最后提醒一句:索引指令的选择应该跟着页面目的走。先问清楚这个页面是给谁看的、在站内承担什么角色,再决定是让它参与索引、只允许抓取,还是彻底不出现。想清楚这一步,比反复调整指令本身更有价值。