网站收录

已发现但尚未抓取:URL 排队太久时,先排查这几项

页面索引报告里,“已发现,尚未抓取”与“已抓取,尚未编入索引”卡住的环节不同。前者是 URL 已知但抓取还没发生,排查方向应落在抓取预算、内链、服务器响应与站点层面,而不是先怀疑内容质量。本文梳理常见原因与对应检查动作。

网站收录

已发现但尚未抓取:URL 排队太久时,先排查这几项

在页面索引报告里,“已发现,尚未抓取”和“已抓取,尚未编入索引”经常被放在一起讨论,但它们卡住的位置并不相同。前者说明搜索引擎已经知道这个 URL 存在,但还没有去取内容;后者说明内容已经取回来了,正在决定要不要放进索引。把这两个状态混为一谈,很容易在错误的方向上花时间。

这个状态是怎么出现的

URL 被发现的途径通常有几条:站点地图提交、站内链接指向、外部链接,以及以往抓取过程中顺带发现的地址。被发现之后,URL 会进入待抓取队列等待调度。队列顺序并不是先来先到,而是取决于站点可用的抓取额度、页面自身的优先级判断,以及服务器响应是否顺畅。

所以看到“已发现,尚未抓取”,第一反应不应该是“页面质量太差”。质量信号主要在索引阶段起作用,抓取阶段更关心的是能不能抓、值不值得优先抓。

常见原因与对应检查

抓取额度被低价值地址占满

当站内存在大量不值得收录的地址时,爬虫的请求会大量消耗在这些路径上,重要页面只能排在后面。常见的消耗来源包括:

  • 由筛选、排序、会话参数组合出的重复地址
  • 翻页层级过深或近似无限的列表
  • 可被抓取的站内搜索结果页
  • 内容稀薄的标签页、归档页、作者页

检查方式是看抓取统计中的请求分布,如果请求集中在这类地址上,而重要内容页很少被抓,就要先收敛入口。

服务器响应慢或抓取时超时

抓取是有时间成本的。响应时间偏高的页面,被反复抓取的概率会下降。可以关注首字节时间、整页加载耗时,以及是否存在爬虫请求被限流、被防火墙拦截的情况。

站内链接深度不足

站点地图能帮助发现地址,但替代不了链接。一个页面如果只出现在站点地图里,没有任何站内链接指向它,被抓取的优先级通常偏低。可以从首页出发数一数需要几跳才能到达,看看栏目页、上一级列表页、相关内容区是否指向它。

站点层面的长期表现

新站、长期不更新、频繁返回 5xx 的站点,在抓取调度上会更保守。这不是某个页面能单独解决的问题,需要从站点整体持续改善。

服务端层面的限制

  • robots.txt 中是否误封了需要抓取的路径
  • 是否按 UA 或 IP 做了访问限制
  • CDN 或安全策略是否把爬虫挡在外面

要注意,robots.txt 中的 Disallow 只影响抓取,不影响地址被发现,因此确实会出现“已发现但抓不到”的情况。

可以动手做的几件事

  1. 对个别重要页面使用 URL 检查工具发起一次抓取请求,确认能否正常返回。这只适合少量地址,不要当成批量手段。
  2. 检查站点地图:地址是否返回正常、是否混入了重定向、404 或 noindex 的地址,更新时间是否真实。
  3. 查看服务器日志:爬虫是否来过、返回了什么状态码、主要抓了哪些路径。日志往往比报告更接近事实。
  4. 优化站内链接:把重要页面放进导航、栏目或相关内容区,缩短点击深度。
  5. 收敛低价值地址:该设 noindex 的设 noindex,该在 robots 中屏蔽的屏蔽,减少无效消耗。
  6. 改善服务器:压缩响应时间,保证稳定返回,避免超时和 5xx。
手动抓取只是把 URL 放进队列,解决的是“能不能抓”。它不保证抓取一定发生,也不保证最终的收录结果。

什么时候该换思路

如果几个重要页面长期停在“已发现,尚未抓取”,同时站点整体抓取量也很低,说明问题多半在站点层面,而不是单个页面。反过来,如果抓取量正常,只是个别页面排队靠后,通常补上站内链接、给一点时间就能改善。真正需要留意的是长期不动、又没有内链和外链支撑的孤立页面。

把它和“已抓取,尚未编入索引”分开看:前者查能不能抓、值不值得抓,后者查内容值不值得进索引。两个状态对应两套动作,混在一起做只会来回折腾。