URL 被發現和被抓取,是两段路
新頁面上线後,蜘蛛要先知道這個 URL 存在,才會把它放進抓取队列。让它知道的方式主要有三種:站内連結(導航、列表頁、正文里的相關連結)、sitemap,以及站外引用。其中站内連結通常见效最快,因為蜘蛛本来就在爬你的站;sitemap 更像一份清單,用来补漏,不代表提交後就會立刻被讀取;站外引用則取决于對方頁面的抓取频率。
被發現了,也只是排進队列。什么时候真正来抓,取决于站点的抓取配額、對 URL 重要性的判断,以及同一時間排队的 URL 有多少。所以「提交了几百個 URL」和「這几百個 URL 都被抓了」,中間隔着一段排队時間。
一次放出大量 URL,容易出現四個現象
- 抓取配額被摊薄。假设站点每天能被抓取 1000 次,平时靠几百個老頁面消化。突然多出 5000 個新 URL,每個 URL 分到的抓取机會就很少,抓取周期被拉長。
- 同批頁面互相竞争。同一批 URL 之間没有明顯的主次,蜘蛛难以判断先抓哪個,往往先抓结构位置好、入口多的那几個,其余繼續排队。
- 老頁面的更新被挤到後面。抓取资源被新 URL 占用後,舊頁面内容更新後重新抓取的時間也會變長,影响的是整站的索引新鲜度。
- 大量 URL 長期停在「已發現,尚未编入索引」。這個狀態本身不是错誤,但如果一批 URL 長時間停在這里,說明抓取優先級和頁面本身的质量都没能推動它往前走。
分批上线怎么切、怎么排
按栏目或主题切批
與其按時間随便切,不如按栏目、主题或业務模块切。同一批頁面主题集中,彼此之間的内鏈關系更自然,蜘蛛抓到其中一個时,更容易顺着連結發現同批的其他頁面。
每一批都要有真實入口
给每一批頁面准备至少一個能被抓到的入口:栏目列表頁、聚合頁、上一篇/下一篇,或者正文里的相關推荐。只有 sitemap 记錄的 URL,發現速度往往慢于有站内入口的 URL。
sitemap 当补充,不当唯一入口
sitemap 适合用来覆盖那些确實没有合适站内入口的頁面,比如深层分頁、歷史存档。但它不能替代内鏈结构。把几百個 URL 只塞進 sitemap,然後等收錄,通常是最慢的一條路。
已收錄的舊連結不要因為改版被删掉
分批上线时如果同时調整了站内連結,注意別把已被收錄頁面的入口全部撤掉。失去入口的頁面,後續更新更不容易被重新抓取。
看什么指标判断有没有在推進
- 抓取日誌里该批 URL 的命中次數有没有變化,是持續為零還是逐渐出現。
- 「已發現,尚未编入索引」的數量是在繼續堆积,還是在慢慢消化。
- 索引狀態是否随批次推進缓慢上升,而不是長時間横盘。
- 已抓取頁面的响應是否正常,狀態碼和内容完整度有没有異常。
观察周期按周看比按天看更靠谱。新站或者抓取配額本来就小的站点,几周走完一批很常见。如果连續两三周某一批 URL 在抓取日誌里都没有出現,再回头检查入口連結是否生效、robots 和 noindex 是否挡住了這批頁面。
几個常见誤区
- 反复提交 sitemap 或手動提交 URL,認為次數越多越快。提交不等于抓取,重复提交一般不會改變排队顺序。
- 把「没被收錄」当成被惩罚。多數情况下只是還没轮到,或者頁面本身的内容质量不足以支撑它進入索引。
- 為了让新頁面尽快被看到,把首頁和導航的入口全部堆到新頁面,结果打乱了原有的站内结构,反而影响老頁面的抓取。
判断推進是否正常,看的是抓取日誌和索引狀態的變化趋势,而不是某一天收錄了多少條。
分批上线不是技巧,而是承認抓取资源有限之後的取舍:把入口做扎實,把批次切開,让每一批頁面都有机會被完整抓取一次,再决定下一批什么时候放。這样即使收錄推進得慢一些,過程也是可控、可观察的。