蜘蛛每天開工时,並不會随便挑一個 URL 開始抓。它手里是一份已知 URL 的清單,從中選出本轮的起点。起点選在哪里,很大程度上决定了這一轮抓取能覆盖到站点的哪些角落。讨论抓取路径、Sitemap 和内鏈时,很少有人單獨看“入口”這一环,但它其實是所有抓取路径的第一個分叉点。
入口頁不只是首頁
很多人預設蜘蛛從首頁開始,然後顺着導航往下走。實际情况更杂一些:首頁只是最稳定的入口之一,蜘蛛還會從 Sitemap、外鏈、歷史抓取记錄以及上一轮没抓完的队列里挑起点。几類常见入口大致是這样:
- 首頁和主栏目頁:長期存在、連結密集,通常是預設起点。
- Sitemap 中列出的 URL:给了蜘蛛一條绕開层級、直接跳到深层的通道。
- 外部連結指向的 URL:尤其是被多個站点連結的頁面,容易被單獨挑出来抓。
- 歷史记錄中變化频繁或長期未回訪的 URL:更新节奏稳定的頁面,回訪間隔也相對稳定。
這四類入口對應的是不同的發現逻辑:内鏈是顺藤摸瓜,Sitemap 是清單直達,外鏈是外部投票,歷史记錄是记忆延續。它們互相补充,任何一條断了,抓取压力都會往另一條上压。
入口太窄,深层頁面就被拖住
如果首頁几乎不挂連結,Sitemap 又只有寥寥几條,蜘蛛能拿到的起点就非常有限。這时候即使站内有几千個正常頁面,它們也只能排在队列後面等,發現速度成倍下降。反過来,入口很多但都指向同一批 URL,效果和入口很少差不多——蜘蛛绕了一圈,能走的路還是那几條。
還要注意一点:入口多不等于抓得多。入口的價值在于“能通向多少不同的 URL”,而不是“提交了多少條”。Sitemap 里堆大量參數頁、重复頁,反而會把抓取预算摊薄,让真正需要抓的頁面排队更久。
把入口铺開,几個能落地的做法
- 保證首頁和主栏目頁稳定返回 200,不要因為改版、A/B 測試或中間层拦截而临时變成跳轉或错誤頁。
- 让 Sitemap 覆盖到最需要被抓的那一层,而不是把所有 URL 一股脑塞進去。
- 重要的詳情頁至少有一條来自栏目頁或相關推荐位置的普通連結,不要只靠 JS 渲染出来的連結。
- 新内容發布後,從已被频繁抓取的頁面给出連結,让它有机會被顺带發現。
- 专题頁、聚合頁如果長期维護,可以当次級入口用;如果只是临时活動頁,用完就撤,別長期留在導航里。
入口頁挂掉,损失的是整條路径
入口頁和普通頁面對服務器稳定性的敏感度不一样。普通頁面暂时 5xx,损失的是一個 URL;入口頁持續 5xx 或响應時間很長,损失的是它下游那一整片頁面的發現机會,而且蜘蛛會據此下調對整站的抓取节奏。所以监控的重点可以往入口頁倾斜:首頁、主栏目頁、Sitemap 文件本身的可用性和响應時間,比一個深處詳情頁更值得盯。
入口頁出問题,不是少抓一個頁面,而是少了一整條路径的起点。
日誌里怎么看入口和抓取分布
訪問日誌不會直接标出“本次入口是哪個”,但能看出的信息不少:某段時間内抓取是集中在首頁和少數几個栏目,還是均匀分布在多個层級;新發布的 URL 從上线到第一次被抓,中間隔了多久;Sitemap 里的 URL 是否真的被逐個訪問過。這些都能侧面反映入口是否够用、路径是否通畅。
把入口当作抓取鏈路的第一段来對待,比只盯着單個頁面優化更容易看出變化——路径再顺,起点不通,後面的安排都無從谈起。