常见问题

robots.txt 挡住了入口页,搜索蜘蛛还能发现里面的目标 URL 吗?

入口页不想被收录、又希望搜索蜘蛛顺着它发现目标 URL,屏蔽方式选错就会直接切断路径。本文拆解 robots.txt Disallow、meta noindex、nofollow 三种屏蔽对 URL 发现的不同影响,给出规则与日志的自查清单,并列出目录级屏蔽、参数版本遗漏、目标 URL 不可访问等常见坑。

常见问题

robots.txt 挡住了入口页,搜索蜘蛛还能发现里面的目标 URL 吗?

做入口页时经常遇到一个矛盾:这个页面本身不想被收录,但又希望搜索蜘蛛顺着它去发现目标 URL。于是有人给入口页加 robots.txt 屏蔽,或者加 noindex,然后发现目标 URL 迟迟没有动静。问题往往不在“屏蔽”本身,而在于屏蔽方式决定了搜索蜘蛛能不能读到页面里的链接。

先分清三种“屏蔽”,作用完全不同

  • robots.txt 里的 Disallow:禁止搜索蜘蛛抓取指定 URL 或目录。被禁止的地址,爬虫通常不会去请求,自然也读不到页面 HTML。
  • meta robots 的 noindex:允许抓取、允许解析链接,只是不希望这个页面出现在搜索结果里。
  • nofollow(链接级或页面级):表达“不传递权重、不背书”的意思,但对是否继续发现链接,各搜索引擎处理并不一致,不能当作可靠的发现通道。

入口页被 robots.txt 屏蔽后会怎样

如果入口页 URL 或它所在的目录被 Disallow,搜索蜘蛛通常不会请求这个页面,页面里写的目标 URL 链接也就不会被它从这个入口读到,顺着链接发现新 URL 的路径等于断了。此时目标 URL 能否被发现,只剩其他渠道:sitemap、其他可抓取页面上的链接、主动提交等。

还有一种更隐蔽的情况:入口页本身没被屏蔽,但它引用的链接指向被 Disallow 的目标 URL。链接能被读到,目标 URL 却无法被抓取,结果就是“发现了却抓不到”,日志里只看到少量尝试甚至完全没有。

meta robots 与 X-Robots-Tag 的差别

给入口页加 noindex 不会阻止抓取。搜索蜘蛛仍然会请求页面、解析 HTML、跟随里面的链接,只是不把这个入口页收录。如果目标是“入口页不收录、但链接照常被发现”,noindex 通常比 Disallow 更合适。X-Robots-Tag 通过 HTTP 响应头下发,效果类似,常见于 PDF、图片等非 HTML 资源。

nofollow 会不会影响发现

页面级或链接级 nofollow 会被搜索引擎当作提示处理。多数情况下爬虫仍可能把链接当线索去抓,但优先级和可靠性会下降。把 nofollow 链接当作主要的 URL 发现手段并不稳妥,尤其是入口页链接数量多、更新频繁时。

自查清单:先确认问题出在哪一环

  1. 用 robots.txt 测试工具检查入口页 URL 和目标 URL 是否被规则遮挡,注意目录级通配符。
  2. 看入口页响应头与 HTML 里的 meta,确认是否存在 noindex、nofollow,以及 canonical 是否指向了别处。
  3. 查服务器日志里搜索蜘蛛的 UA,看它是否请求过入口页、返回什么状态码。
  4. 看目标 URL 是否被单独请求过,状态码是 200、301 还是 5xx、403。
  5. 确认入口页链接是真实可点击的 a 标签,而不是纯 JS 拼接或点击后才加载。

几个容易踩的坑

  • 目录整个被 Disallow,又想靠里面的入口页传递链接:逻辑上互斥,蜘蛛进不来。
  • 规则只写了干净地址,漏掉带参数版本:?utm、?from 等变体不在规则内,抓取行为不一致。
  • 入口页 5xx 或频繁超时:爬虫会降低来访频率,链接发现效率下降,先修稳定性和响应速度。
  • 目标 URL 自身被屏蔽或需要登录:入口页再正常,抓取也无法完成。
一句话判断:想“不收录但要被发现”,用 noindex;想“完全不抓取”,用 robots.txt Disallow,但别指望它还能帮你传递链接。

最后,URL 发现只是第一步,抓取和收录还受站点质量、链接结构、抓取配额等影响。把入口页的抓取状态、链接可读性和目标 URL 的可访问性逐一确认,通常比反复更换入口页更有效。