在很多站点的服务器日志里,经常出现这样的情况:某个 URL 明明已经上线,Search Console 里也显示“已发现—尚未抓取”,但日志里翻不到任何一次请求记录。这说明蜘蛛已经知道这个地址,只是还没来。发现和抓取是两件分开的事。
发现和抓取,中间隔着一个队列
发现通常发生在蜘蛛抓取别的页面时——它读到一条链接,或者从 Sitemap、外链、提交接口拿到一个 URL。抓取则是它真的向服务器发起请求。两者之间隔着一个待抓取队列,URL 进去之后要排队,排队顺序不由你直接决定,而是由蜘蛛根据站点整体情况判断。
所以“被发现了”只代表进入候选名单,“还没抓”往往是在等一个更值得先抓的机会。
队列里的等待,通常卡在这几处
一、低价值 URL 占掉了抓取名额
参数组合页、筛选排序页、带会话 ID 的地址、内容近似的列表页,这些 URL 数量可能比正文页还多。蜘蛛每次来都优先处理它们,真正想被收录的新页面自然排在后面。
- 把无意义的参数页用 robots.txt 或 canonical 收口;
- 筛选页不要生成可无限组合的链接;
- 分页保留必要的几页即可,不必全部放开。
二、服务器响应慢,或者不稳定
响应时间明显偏长、频繁超时、偶发 5xx,都会让蜘蛛主动放慢节奏。它宁可少来几次,也不愿意把预算花在等待上。抓取频次下降之后,新 URL 的排队时间自然变长。
三、URL 没有真实入口
只在 Sitemap 里出现、站内没有任何链接指向的地址,优先级通常偏低。Sitemap 是“声明”,内链才是“路径”。蜘蛛沿着链接走,比对着清单找,成本低得多。
四、页面内容太接近已有页面
如果新 URL 的正文与站内某个已抓取页面高度相似,蜘蛛可能把它归并过去,不再单独抓取。典型情况是同一内容被套了多个模板地址,或者 canonical 指向了另一页。
怎么判断卡在哪一步
- 在日志里直接搜该 URL 的路径,确认是否出现过请求;
- 看抓取统计里站点总抓取量的变化趋势,是整体下降还是个别页面没被抓;
- 检查 Sitemap 里的 URL 是否在站内都有可点击的入口;
- 统计服务器响应时间的分布,以及 5xx 的比例;
- 用 URL 检查工具看当前状态是“已发现”还是“已抓取未编入索引”,两者含义不同。
想让新 URL 更快进入抓取,可以做的几件事
- 从已经常被抓取的页面,加一条真实的正文链接指向新 URL;
- Sitemap 只放确实希望被抓取的地址,并保持与实际内容一致;
- 减少重复页和低价值页的暴露面,让抓取名额留给正文;
- 把服务器响应时间和错误率稳定下来,避免高峰期抖动;
- 不要靠批量提交或短期大量外链冲量,这类信号不持久。
抓取频次是结果,不是可以随手调高的开关。你能改变的是站点的结构、入口和响应质量,蜘蛛的回访节奏跟着这些走。
小结
“已发现—尚未抓取”不是故障,而是排队状态。多数时候它反映的是站点里有太多不值得抓的地址,或者入口太浅、响应太慢。把重复和低价值 URL 收掉,把新页面接到已有的内链路径上,并让服务器稳定响应,往往比反复提交更管用。