在索引报告里,“已发现-尚未抓取”和“已抓取-尚未编入索引”是两条不同的队列。前者意味着地址已经被知道,但蜘蛛还没有来取内容;后者是内容已经取走,评估之后没有进索引。把这两类混在一起看,很容易得出“蜘蛛不来”的错误结论,然后去做一些并不对症的调整。
发现之后为什么不立刻抓
抓取不是按提交顺序来的。搜索引擎会维护一个待抓队列,按地址的预期价值、更新频率和站点整体抓取能力排优先级。新发现一个 URL,通常只是进入队列,什么时候轮到,取决于它前面排了多少。
- 队列优先级低:地址只出现在 sitemap 或某处数据里,站内没有可见入口,也缺少指向它的链接,缺少“值得优先看”的信号。
- 抓取能力被占用:可抓取量有限,被大量参数页、筛选页、重复地址消耗,真正想收录的页面就往后排。
- 响应不稳定:超时、5xx、连接重置都会让搜索引擎主动降低抓取速度,恢复需要一段时间。
- robots.txt 抓取延迟:若设置了较长的 crawl-delay,整体节奏会被压下来。
先分信号量,再看优先级
同样是“已发现-尚未抓取”,处理方式并不一样。
数量少、页面重要
多数情况是信号不足。检查这个 URL 在站内是否有可见入口:位置是在导航、列表页还是页脚深处?面包屑、相关推荐能不能到?有没有指向它的链接?补内链往往比反复提交更有效果。
数量大、成批出现
大概率是抓取额度被稀释。这时先看索引报告里其他状态的数量:是不是有大量重复地址、低价值聚合页、带参数的分页被放进了队列。把不该被抓的收敛掉(robots、noindex、canonical 各管一段),腾出来的额度才会流到目标页。
几个容易被忽略的细节
- sitemap 只负责让地址被知道,不决定抓取顺序;里面的 URL 太多、太杂,反而降低每一条的信噪比。
- lastmod 长期写成“今天”,会被当作不可靠信号,不如按真实更新时间写。
- 同一内容存在多个地址(大小写、带不带结尾斜杠、追踪参数),队列里会塞进大量重复项。
- 页面本身很重、首屏渲染慢,蜘蛛取到内容前就超时,也会一直停在“已发现”。
建议的推进顺序
- 按状态分类,把“已发现-尚未抓取”的 URL 单独导出,做一轮抽样,看它们是不是集中在同一类页面。
- 核对服务器日志,确认这些地址有没有被请求过;没有请求记录,说明确实还排在队列之外。
- 给核心页面补内链入口,从常被抓、层级浅的页面指向它。
- 清理重复和低价值地址,减少队列里的无效项。
- 保持响应稳定,观察一段时间,不要频繁改动设置。
收录由搜索引擎判断,我们能做的是把地址放到容易被发现、值得被优先抓取的位置,而不是保证它一定被抓、一定被收录。
判断进度时,建议固定一份抽样清单,隔几周记录一次状态变化。看趋势比看单次数字更可靠,也更容易区分“真的卡住”和“只是还没轮到”。