很多站点运营者會遇到一個困惑:Sitemap 提交了,頁面也從内鏈挂上去了,日誌里却迟迟看不到蜘蛛請求這個 URL。這里要区分两個环节:URL 發現和URL 抓取。前者只是让蜘蛛知道你存在,後者要等它真正被排進抓取队列並被消費。中間隔着一段看不见的流程,而站点能影响的部分其實不少。
一、發現只是候選,入队才算進入流程
蜘蛛看到一個連結後,通常會先做几件事:解析、規范化、去重、判断是否允许抓取。只有通過這一轮篩選的 URL,才會進入待抓取队列。
- 規范化:大小寫、末尾斜杠、跟踪參數等會被合並成同一個候選。重复出現不會加快速度,反而可能挤占位置。
- robots 與 noindex:robots.txt 里被 Disallow 的路径通常不會入队;带 noindex 的頁面仍可能被抓取,只是不進入索引。
- 去重:站内多個入口指向同一 URL,不會带来多次排队,但入口所在的位置會影响它被發現的先後。
二、队列消費看什么
队列不是先来先服務。調度會综合頁面價值、更新频率、歷史响應质量等因素。對站点来说,下面這几項是能間接影响的。
1. 服務器响應
响應慢、经常出現 5xx 或超时的站点,抓取节奏會被主動放慢。慢不只是每次多花几百毫秒,它會改變蜘蛛對整站抓取的整体安排。
2. URL 的規范程度
同一份内容對應多個地址,等于把候選池撑大。抓取预算被摊薄之後,你真正想让它走的那個地址,等待時間會更長。
3. 入口的位置與新鲜度
放在導航、正文里的連結,被發現優先級通常高于頁脚和邊栏。Sitemap 里的 lastmod 如果長期不更新,參考價值會下降;保持真實、和實际更新時間一致更有意义。
三、站点侧的检查顺序
- 先確認 URL 本身可抓:返回 200、robots 允许、不是登入後才可见的内容。
- 再看是否被規范化合並:检查 canonical、參數、大小寫與斜杠寫法是否统一。
- 检查入口:至少有一條站内連結指向它,且這條連結所在頁面本身被抓取正常。
- 检查 Sitemap:URL 可訪問、格式正确、分片没有遗漏,lastmod 與實际更新時間對得上。
- 回头看日誌:確認蜘蛛是否来過同一目錄下的其他頁面,判断是單個 URL 的問题還是整段路径的問题。
四、几個常见誤区
把 URL 提交当成叫号:提交只是增加被發現的机會,不等于立刻抓取,更不等于收錄。
- 以為多發几次連結就能加快:重复入口對去重後的队列几乎没有帮助。
- 以為 Sitemap 越大越好:塞入大量重复、低质或已失效的 URL,會稀释有效候選。
- 以為偶尔 5xx 無所谓:抓取节奏的調整往往是長期累积判断的结果。
五、小结
從 URL 被發現到真正被抓,中間有規范化、去重、入队、調度好几道环节。站点能做的是把候選质量做干净:地址規范、入口清晰、响應稳定、Sitemap 與實际内容一致。這些做完之後,剩下的等待属于正常流程,不必频繁改動站点结构去催。