常见问题

目标 URL 一直没被搜索蜘蛛发现,该先排查入口页还是目标站?

目标 URL 迟迟没被搜索蜘蛛发现时,先别急着增加入口页数量。本文把问题拆成「没发现、没抓取、抓了没收」三段,分别给出入口页与目标站两侧的检查清单,并指出两个常见误判,帮助更快定位断点、减少无效试错。

常见问题

目标 URL 一直没被搜索蜘蛛发现,该先排查入口页还是目标站?

遇到目标 URL 一直不出现在结果里,很多人的第一反应是加大蜘蛛池入口页数量,或者反复提交地址。但如果连搜索蜘蛛的抓取记录都没有,加量往往只是把同一个问题放大。更省时间的做法是先定位断点:断在入口页这一环,还是断在目标站这一环。

先把发现和抓取拆成两步看

搜索蜘蛛处理一条链接大致要过两道关:先在某个页面上读到这个 URL,也就是发现;再把它排进队列并发出请求,也就是抓取。两步之间可能隔几分钟,也可能隔几天,甚至一直不执行。所以先确定卡在哪一步:

  • 入口页本身没被访问过,问题在入口页的可发现性;
  • 入口页被抓了,但日志里始终没有目标 URL 的请求,链接可能没被正确解析,或者排队极慢;
  • 目标 URL 被请求过但返回异常,问题在目标站服务端。

这三条对应完全不同的处理方向,混在一起查很容易做无用功。

建议的排查顺序

  1. 先看入口页是否被抓。入口页都没被访问,目标 URL 自然无从谈起。此时优先确认入口页能否正常打开、是否被 robots 拦截、有没有其他页面链接指向它。
  2. 再看链接是否可解析。入口页被抓却没带出目标链接,常见原因是链接藏在需要执行脚本才生成的位置,或者被属性屏蔽。
  3. 最后查目标站。确认蜘蛛确实请求过目标 URL 之后,再去看状态码、响应时间、robots.txt 和页面上的 noindex。
把「没收录」当成一个笼统的问题,很难找到答案;拆成没发现、没抓取、抓了没收三段,往往几分钟就能定下方向。

入口页这一侧值得检查的点

  • 入口页是否稳定返回正常状态码,而不是跳转链或空白页;
  • 目标链接是否写在 HTML 源码里,而不是只存在于脚本渲染之后;
  • 链接是否带上了 nofollow 之类阻止跟进的属性;
  • 入口页自身有没有内链或外链指向,避免变成孤岛页;
  • 入口页链接数量是否过多、体积是否过大,导致靠后的链接被忽略。

目标站这一侧值得检查的点

  • 目标 URL 是否返回 200,有没有频繁超时;
  • 页面 head 中是否存在 noindex,robots.txt 是否屏蔽了抓取;
  • 该地址是否与站内其他页面高度重复,被 canonical 指向别处;
  • 服务器是否对陌生 UA 或高频请求做了拦截;
  • 同一域名下是否已有大量低质页面,影响整站的抓取分配。

两个常见的误判

第一,把入口页数量当成万能药。目标站本身有阻断时,入口页再多也只是让搜索蜘蛛反复撞墙,还可能拉低对方对整批链接的信任度。

第二,只凭提交成功就判断没问题。URL 提交只是把地址告诉搜索引擎,是否抓取、何时抓取由对方决定,提交成功和被抓取是两回事。

处理节奏上的一点建议

排查之后先做最小改动:修掉一条明确的阻断,比如去掉 noindex、恢复 200 状态,然后观察一段时间日志。尽量不要在同一时间点同时改入口页结构、换域名、调服务器策略,否则即便情况好转,也说不清是哪一步起了作用。抓取和收录本身就是慢过程,稳妥排查比频繁试错更省成本。