网站收录

想屏蔽一类页面:noindex 和 robots.txt 该怎么选

站内搜索结果页、后台路径、打印版本这些不希望被收录的页面,用 robots.txt 还是 noindex?两者管的层次不同:一个管抓取,一个管索引。顺序用错,页面可能既屏蔽不掉也移除不了。本文梳理各自适用场景、常见冲突和自查顺序。

网站收录

想屏蔽一类页面:noindex 和 robots.txt 该怎么选

站点里总有一些页面不希望出现在搜索结果里:后台登录地址、站内搜索结果页、带参数的筛选页、测试页面、重复的打印版本。最常被提到的两个手段是 robots.txt 和 noindex,但它们管的事情并不一样,顺序用错,页面可能既屏蔽不掉,也移除不了。

两者管的不是同一件事

robots.txt 管的是抓取,相当于在门口放一块路牌,告诉蜘蛛哪些路径不必进来;noindex 管的是索引,是页面自己声明“不要把我放进搜索结果”。一个是入口层面的限制,一个是页面层面的表态,作用位置完全不同。

robots.txt 能省抓取,但不会移除已有收录

如果某个地址已经被抓取并收录,再把它写进 robots.txt 的 Disallow,蜘蛛通常不会再去读取这个页面,也就看不到你后来补上的任何新指令。已经建立的索引记录可能长期保留,只是内容快照会逐渐变旧。

所以 robots.txt 更适合挡住那些你根本不想浪费抓取预算的地址,比如无限翻页、会话 ID、后台路径,而不是用来做“下线”操作。

noindex 生效的三个前提

  • 页面要能被抓取。如果同一路径已被 robots.txt 挡住,蜘蛛读不到 noindex 标签,标签等于没写。
  • 页面要返回可索引的状态码。通常是 200 才谈得上“抓取后判断是否索引”;301、302 会把判断交给跳转目标。
  • 标签要出现在能被读到的地方。HTML 的 meta robots 需要放在 head 里,或者改用 X-Robots-Tag 响应头,后者对 PDF 等非 HTML 文件也适用。

只想靠 noindex 做下线,速度往往偏慢

noindex 是“下次抓取时生效”的机制,抓取节奏不由站点决定。页面越深、被链接得越少,生效越慢。着急的场景更合适的做法是:先让页面返回 404 或 410,或者用 301 指到替代页面,再配合 Search Console 的移除工具做临时处理。临时移除有期限,到期后需要重新提交,因此它只是缓冲,不是长期方案。

一条常见的错误链路:robots.txt 挡住路径 + 页面加 noindex + 什么都不做,过了几个月页面还在索引里。原因不是指令无效,而是蜘蛛根本没机会读到它。

几类典型页面怎么处理

  • 站内搜索结果页:通常不希望被大量收录,可以先用 robots.txt 挡掉参数路径,同时页面加 noindex 做双保险。
  • 分页第 2 页之后:如果决定不收录,用 noindex 让蜘蛛能读到;直接 Disallow 会让蜘蛛无法顺着翻页继续发现更深的内容。
  • 打印页、纯文本版本:优先用 canonical 指回主版本;如果确实不想要这个地址,再补 noindex。
  • 已下线的旧活动页:不要只加 noindex,直接返回 410 更干脆。
  • 需要登录的页面:靠权限控制而不是靠元标签,蜘蛛看不到内容时也可能保留 URL 记录。

noindex 和 canonical 别混着写

两个信号方向不同:canonical 的意思是“请把权重算给另一个地址,但这个页面本身可以存在”;noindex 的意思是“别收录这个页面”。同时出现时,搜索引擎可能只采纳其中一个,最终结果难以预测。想让页面存在但不被收录,用 noindex;想让两个地址合并成一个,用 canonical。

一个可执行的自查顺序

  1. 先确认这个地址目前是否已经被收录。
  2. 如果是长期屏蔽、且想节省抓取预算,考虑用 robots.txt。
  3. 如果要移除已有记录,先保证页面能被正常抓取。
  4. 在页面级加 noindex,确认返回 200、标签位置正确。
  5. 着急的场景用移除工具做临时处理,同时准备长期方案。
  6. 观察日志与收录状态,避免叠加互相冲突的指令。

屏蔽这件事没有万能开关。先想清楚你要的到底是“别来抓”还是“别收录”,是“以后别再收”还是“现在就要下线”,再选工具,通常比一次堆上好几条指令更有效。