搜索抓取

noindex 之后蜘蛛还会来吗:抓取与索引是两件事

给页面加上 noindex,不少站长以为蜘蛛就不来了,但日志里这些页面往往还在被反复抓取。原因在于抓取和索引是两条线。这篇梳理 noindex、nofollow、X-Robots-Tag 各自管什么,robots.txt 与 noindex 同时使用为什么会互相拆台,以及已收录页面改 noindex 后该盯哪些信号。

搜索抓取

noindex 之后蜘蛛还会来吗:抓取与索引是两件事

很多站长把 noindex 当成一道关门的动作,以为加上之后蜘蛛就不会再来了。但去看服务器日志会发现,带 noindex 的 URL 经常还在被反复抓取。原因并不复杂:抓取和索引是两个独立动作,noindex 管的是后面那个。

抓取与索引:两个动作,两套判断

蜘蛛访问 URL、拿到 HTML 内容,这一步是抓取;把内容存进索引、参与排序,这一步是索引。noindex 的作用点在后半程,它传递的意思是:这个页面可以抓,但不要放进索引里。所以被 noindex 的页面出现在访问日志里,属于正常现象,不是设置失败。

反过来说,一个页面能被索引,通常以被抓取过为前提。没有被抓过,搜索引擎基本没有素材去判断它该不该收录。

noindex 页面的几种常见表现

  • 继续被抓取,但搜索结果里不再出现该 URL 的链接。
  • 原本已收录的页面加上 noindex 后,从结果中移除需要一段时间,快慢取决于蜘蛛的回访频率。
  • 如果页面同时被 robots.txt 屏蔽,蜘蛛抓不到内容就读不到 noindex,页面有可能以无摘要的形式仍留在结果里。
  • 内链指向 noindex 页面仍然会被正常跟随,蜘蛛会顺着链接走过去,只是那个目标页面依然不进索引。

meta robots 和 X-Robots-Tag 的差别

两者写法基本一致,区别在位置。meta 标签写在 HTML 里,必须等页面被抓到、解析到 head 部分才生效;X-Robots-Tag 放在 HTTP 响应头里,不用等解析。对 PDF、图片、音视频这类非 HTML 资源,页面里没有地方放 meta 标签,通常只能靠响应头来传指令。

如果页面需要登录才能看到,或者主要内容由 JS 渲染,noindex 的判断可能落在更靠后的处理阶段,生效时间也会更长一些。

nofollow 管的是链接,不是页面

nofollow 加在链接上,表示对这个链接不做背书,它既不阻止目标页面被抓取,也不等于目标页面不会被收录。想让某个页面彻底从索引里排除,用 noindex 更直接有效。

还有一种情况值得注意:页面 A 设了 noindex,但页面 B 上有很多锚文本指向 A。这些链接依然会被看到,蜘蛛也会顺着走到 A,只是 A 始终不进索引。指望用 noindex 顺手掐断链接关系,通常达不到目的。

noindex 和 canonical 同时用会怎样

有人给同一个页面同时加上 noindex 和 canonical,想让两套机制一起生效。但两者传递的信号并不一致:noindex 表示不要这个页面,canonical 表示把它当成另一个 URL 的副本。遇到冲突时,搜索引擎可能选择忽略其中一个,具体行为不容易预测。实际操作里,一般只保留一个,按真正想达成的目的来选。

实操中值得注意的几点

  1. 尽量不要同时用 robots.txt 屏蔽和 noindex,蜘蛛抓不到页面就读不到 noindex,两套指令会互相拆台。
  2. noindex 是页面级别的指令,不要指望它能连带处理该页面上的其他 URL。
  3. 已收录页面改成 noindex 后,先确认改动在服务器端真实生效,而不是只改了前端版本或停留在缓存里。
  4. 想临时下架内容,分清 404、410 与 noindex 的区别:前者表示页面已经没了,后者表示页面还在但不给索引。
  5. 定期对日志抽样,看看 noindex 页面被抓的频率。如果明显偏高,检查是不是有大量内链或 sitemap 在持续推送这些 URL。

小结

noindex 只是把页面挡在索引之外,抓取该来还是会来。想减少无效抓取,与其在 noindex 上反复纠结,不如从内链、sitemap 和 URL 入口这几处下手。