在索引报告里,“已發現-尚未抓取”和“已抓取-尚未编入索引”是两條不同的队列。前者意味着地址已经被知道,但蜘蛛還没有来取内容;後者是内容已经取走,评估之後没有進索引。把這两類混在一起看,很容易得出“蜘蛛不来”的错誤结论,然後去做一些並不對症的調整。
發現之後為什么不立刻抓
抓取不是按提交顺序来的。搜尋引擎會维護一個待抓队列,按地址的预期價值、更新频率和站点整体抓取能力排優先級。新發現一個 URL,通常只是進入队列,什么时候轮到,取决于它前面排了多少。
- 队列優先級低:地址只出現在 sitemap 或某處資料里,站内没有可见入口,也缺少指向它的連結,缺少“值得優先看”的信号。
- 抓取能力被占用:可抓取量有限,被大量參數頁、篩選頁、重复地址消耗,真正想收錄的頁面就往後排。
- 响應不稳定:超时、5xx、连接重置都會让搜尋引擎主動降低抓取速度,恢复需要一段時間。
- robots.txt 抓取延迟:若設定了較長的 crawl-delay,整体节奏會被压下来。
先分信号量,再看優先級
同样是“已發現-尚未抓取”,處理方式並不一样。
數量少、頁面重要
多數情况是信号不足。检查這個 URL 在站内是否有可见入口:位置是在導航、列表頁還是頁脚深處?面包屑、相關推荐能不能到?有没有指向它的連結?补内鏈往往比反复提交更有效果。
數量大、成批出現
大概率是抓取額度被稀释。這时先看索引报告里其他狀態的數量:是不是有大量重复地址、低價值聚合頁、带參數的分頁被放進了队列。把不该被抓的收敛掉(robots、noindex、canonical 各管一段),腾出来的額度才會流到目标頁。
几個容易被忽略的细节
- sitemap 只负责让地址被知道,不决定抓取顺序;里面的 URL 太多、太杂,反而降低每一條的信噪比。
- lastmod 長期寫成“今天”,會被当作不可靠信号,不如按真實更新時間寫。
- 同一内容存在多個地址(大小寫、带不带结尾斜杠、追踪參數),队列里會塞進大量重复項。
- 頁面本身很重、首屏渲染慢,蜘蛛取到内容前就超时,也會一直停在“已發現”。
建议的推進顺序
- 按狀態分類,把“已發現-尚未抓取”的 URL 單獨導出,做一轮抽样,看它們是不是集中在同一類頁面。
- 核對服務器日誌,確認這些地址有没有被請求過;没有請求记錄,說明确實還排在队列之外。
- 给核心頁面补内鏈入口,從常被抓、层級浅的頁面指向它。
- 清理重复和低價值地址,减少队列里的無效項。
- 保持响應稳定,观察一段時間,不要频繁改動設定。
收錄由搜尋引擎判断,我們能做的是把地址放到容易被發現、值得被優先抓取的位置,而不是保證它一定被抓、一定被收錄。
判断進度时,建议固定一份抽样清單,隔几周记錄一次狀態變化。看趋势比看單次數字更可靠,也更容易区分“真的卡住”和“只是還没轮到”。