站点里总有一些页面不该出现在搜索结果里:后台入口、尚未定稿的测试页、重复的参数页、只在一段时间内开放的临时页。能处理它们的工具不止一个,用错了,常常会出现“屏蔽了却还在索引里”,或者“该抓的没抓、该走的没走”。
先分清“不让抓”和“不让收”
抓取和收录是两段动作:蜘蛛来取页面内容是一段,把这些内容放进索引、未来可能被展示是另一段。robots.txt 管的是前一段,noindex 管的是后一段。把两者混为一谈,是大多数误操作的来源。
三个工具各自能做什么
- robots.txt 里的 Disallow:告诉蜘蛛不要来抓这个路径。但 URL 本身仍可能进入索引——如果别处有链接指向它,结果列表里也许会出现一个没有摘要的条目。它并不保证页面消失。
- noindex(meta 标签或 X-Robots-Tag 响应头):允许抓取,蜘蛛取到内容后看到标记,再把页面排除在索引之外。这是“让页面离开索引”最常用的手段。
- nofollow:写在链接上,表示“这个链接不必跟着走”。它影响的是链接关系,跟页面本身是否被索引无关,别拿它当屏蔽工具。
最典型的坑:两个一起用
如果 robots.txt 先挡住了抓取,蜘蛛就读不到页面里的 noindex 标记,于是想屏蔽的页面反而可能以“无摘要”的形式留在索引里。
合理的顺序是:想让页面离开索引,先放开抓取,让 noindex 能被读到;等索引里的记录清理得差不多了,再考虑要不要在 robots.txt 里彻底禁止抓取。
想干净地处理一个页面,按这个顺序走
- 确认页面能正常返回 200,蜘蛛可以访问到。
- 加上 noindex 标记。如果页面主要靠 JavaScript 渲染,用响应头形式的 X-Robots-Tag 更稳,可以避免标记迟迟不被识别。
- 把该 URL 从站点地图里移除,同时清理指向它的站内链接,减少再次被发现的入口。
- 如果页面已经下架、不再存在,让它返回 404;确认永久删除的可以用 410,信号更明确一些。
- 站长平台的移除工具可以应急,但它偏临时,源头不改,过段时间还可能回来。
几个容易忽略的细节
- canonical 是“合并”信号,不是“排除”信号。它说的是哪个版本更能代表内容,不负责让页面消失。
- 登录墙、密码保护的页面,只要 URL 被链接引用,仍可能出现在索引里。
- robots.txt 里的路径区分大小写,写错一个字母基本等于没写。
- noindex 的页面不要放进站点地图,两边信号互相矛盾,蜘蛛只会反复来确认。
- 改完之后用抓取测试工具确认一次,看到标记确实被读到再收工。
把这些工具按“抓取”和“收录”分开理解,再按顺序执行,能省掉大部分来回折腾。真正值得检查的不是用了哪个标签,而是页面上给出的信号有没有互相打架。