常见问题

入口页指向的目标 URL 写了 noindex 或 canonical,搜索蜘蛛还会抓吗?

入口页把目标 URL 交给搜索蜘蛛,但目标页自己写了 noindex 或 canonical,会发生什么?本文说明抓取和收录的区别:页面级指令通常不阻止抓取,真正拦下蜘蛛的是 robots.txt、访问限制和持续报错,并给出排查顺序。

常见问题

入口页指向的目标 URL 写了 noindex 或 canonical,搜索蜘蛛还会抓吗?

在蜘蛛池和入口页的讨论里,经常有人问:入口页明明放了链接,但目标 URL 自己写了 noindex,或者 canonical 指向了别的页面,搜索蜘蛛还会不会顺着入口页去抓这个地址?回答这个问题前,要先分清抓取(crawl)和收录(index)是两件独立的事。

抓取和收录不是一回事

搜索蜘蛛的大致流程是:发现 URL → 抓取页面 → 判断是否索引。入口页的作用主要停在第一步,也就是把这个 URL 送到蜘蛛面前。至于它之后会不会被收录、以什么形式收录,取决于目标页自身的信号,以及搜索引擎对整站质量的判断。

所以,目标 URL 加了 noindex,并不等于搜索蜘蛛不会去抓。更准确的理解是:可以来看,但看完不要收进索引。

noindex 的页面,蜘蛛通常还是会抓

noindex 是页面级指令,写在 meta 标签或 HTTP 响应头里。它表达的是“不要把这个页面作为搜索结果展示”,而不是“不要访问这个页面”。蜘蛛只要通过入口页或别的方式发现了这个 URL,一般仍会发起请求、读取 HTML,看到 noindex 之后才决定不索引。

这意味着两件事:

  • 入口页的链接确实能把蜘蛛引到目标 URL,目标站日志里也会出现抓取记录;
  • 如果目标站大量页面都带 noindex,抓取会持续发生,但收录不会出现,此时继续增加入口页意义不大。

另外要注意,noindex 页面上的链接通常仍会被继续跟进(除非同时加了 nofollow),所以它对整条链接路径不是完全断开的。

canonical 不影响抓取,影响的是收录归属

canonical 指向另一个 URL 时,蜘蛛同样会抓取当前页面,只是会把它当作重复或次要版本,把收录信号集中到 canonical 指定的那个地址上。如果入口页指向的目标 URL 恰好 canonical 到了别处,就可能出现“抓了、日志有记录,但搜索结果里显示的是另一个 URL”的情况。

排查时先确认 canonical 指向的到底是不是你希望被收录的地址。如果目标 URL 本身就是被指向的那一个,那它仍然有收录机会。

真正会挡住抓取的是 robots.txt 和访问限制

和 noindex、canonical 不同,robots.txt 里的 Disallow 属于抓取层面的拦截。被 Disallow 的路径,蜘蛛一般不会去请求,入口页放再多链接也看不到内容,日志里也不会有对应记录。此外,登录墙、验证码、WAF 误拦、服务器持续返回 5xx,同样会让抓取停在半路。

判断“是入口页没生效,还是目标页自己拒绝”时,建议顺序是:先看 robots.txt,再看响应状态码,最后才看页面级指令。

入口页运营里更实用的判断方式

  1. 对比两边日志:入口页访问日志里出现搜索蜘蛛,目标站日志里没有,先查目标站是否屏蔽或超时。
  2. 目标站日志有抓取、但搜索结果里始终没有这个 URL,优先检查 noindex、canonical,以及页面内容是否过于单薄。
  3. 不要因为“没收录”就不断加入口页。如果目标页本身写了 noindex,加多少入口都不会改变结果。
  4. 把入口页当作发现渠道,把目标页自身的技术状态当作决定收录的关键,两者分开优化。
入口页能影响的是“蜘蛛有没有机会看到这个 URL”,不能替目标页决定“这个 URL 值不值得被收录”。目标页写了 noindex,就等于明确表示不希望被收录,此时继续用蜘蛛池引流并不会改变结论。

总结一句:noindex 和 canonical 一般不会阻止搜索蜘蛛抓取目标 URL,它们影响的是收录结果;真正会挡住抓取的是 robots.txt、访问限制和服务器错误。排查时按“抓取层 → 响应层 → 页面指令层”的顺序走,比盲目增加入口页更有用。