在 Search Console 的索引覆盖报告里,"已发现,当前未编入索引"经常被当成故障提示。它其实只是一个状态描述:Google 已经知道这个 URL 存在,但还没来抓取,或者抓取还没排上日程。把它直接当成"内容有问题"的证据,很容易改错方向。
已发现和已抓取不是一回事
收录链路大致是:URL 被发现,进入抓取队列,完成抓取,判断是否索引,最后进入索引。每个环节都可能停住。
- 已发现,当前未编入索引:URL 进了候选池,但抓取还没发生。页面上写了什么,这时候 Google 还不知道。
- 已抓取,当前未编入索引:页面已经抓回来了,内容也读了,但索引判断没有通过,或者认为不值得单独收录。
区别在于,前者要解决的是"什么时候来抓",后者要解决的是"抓了之后为什么不用"。混在一起看,就会做一些对当前状态没有帮助的改动。
URL 通常是从哪里被发现的
- 站内链接,尤其是导航、列表页和正文里的链接
- XML 网站地图
- 外部链接
- 重定向链和跳转
- 手动提交的单个 URL
发现不等于排队靠前。sitemap 只是把 URL 报上去,并不等于立刻安排抓取;一个从首页两步就能点到的 URL,通常比只出现在 sitemap 里的 URL 更早被处理。
长期停在"已发现"的常见原因
抓取配额被更重要的页面占满
站点每天能被抓取的次数是有限的。当大量页面抢同一份配额时,优先级低的 URL 就会被一直往后排。新站、大站的低层级页面,以及一次性批量生成的页面最容易遇到这种情况。
URL 在站内没有像样的入口
如果某个 URL 只在 sitemap 里出现,站内没有任何链接指向它,被发现之后也缺少被优先抓取的理由。孤立 URL 往往要等很久,甚至一直等不到。
一批 URL 在短时间内集中出现
分页、筛选、标签、参数组合一起放开,会让待抓取数量突然放大。候选池变长,单个 URL 排队的时间自然变长,表现就是整批页面都停在"已发现"。
页面本身没有稳定内容
内容为空、只有模板、和已有页面高度相似,都会让抓取优先级降低。这类页面即使被抓,也常常直接落到"已抓取,尚未编入索引"。
服务器响应拖慢了整体节奏
响应慢或频繁超时时,抓取器会主动降低访问频率,候选队列消耗得更慢,看起来就是状态迟迟不动。
可以按这个顺序排查
- 确认该 URL 返回 200,内容能正常看到,不需要登录或交互才出现。
- 检查页面附近有没有正常的内链入口,至少能从列表页或相关内容点进去。
- 看站点整体被抓取的总量是否够用,日志里的抓取请求集中在哪些目录。
- 核对是否有一批 URL 在同一时间被批量放出,必要时先收缩范围。
- 比较同批 URL 里有没有已经进入索引的,找出两者差异。
能做的调整
- 把重要页面放进导航或列表页,缩短点击深度
- 减少低价值参数组合 URL,别让候选池被稀释
- 保持 sitemap 只放需要收录的规范 URL
- 先处理服务器响应和错误率,再谈收录速度
- 给页面稳定的正文内容,避免长期空转
状态是会变的。同一批 URL 里有的几周后进入索引,有的停留更久,这本身不一定是操作失误。判断问题要看趋势和比例,不要只盯单个 URL 当天的状态。
总结下来,"已发现"阶段要处理的是抓取机会,不是内容质量。先把 URL 的入口、数量和服务器表现理顺,再去看内容层面的问题,顺序会清楚很多。