蜘蛛進入一個站点时,手里的信息其實很少:几個入口 URL、一份 Sitemap,以及上一轮抓取留下的印象。接下来它要在有限的時間里决定,是先在栏目层横向掃一圈,還是顺着某條路径一路往詳情頁深處挖。這個“深度與广度”的分配,直接决定了哪些 URL 能被發現。
抓取队列不是單纯的深度優先或广度優先
多數搜尋引擎的抓取調度更像一個带優先級的队列:入口頁先入队,解析出的連結按一定規則排進待抓列表,再逐條取出。權重高、更新频繁、歷史抓取正常的頁面會被提前,点击深度深、外鏈少、内容稀薄的頁面則往後排。所以“蜘蛛會怎么走”没有固定路线,但站点结构确實能影响它先看到什么。
横向铺不開,新内容就容易卡在门外
- 新開的栏目頁只在首頁某個角落出現一次,蜘蛛掃過首頁时可能顺手记下,之後再無入口。
- 改版後的新 URL 结构缺少從老路径過来的連結,等于凭空多出一批孤岛。
- 列表頁只放出极少數條目,後面的内容全靠“下一頁”,横向通道太窄。
横向广度不够时,表現往往是:日誌里抓取集中在首頁和几個主栏目,新增的詳情頁長期只有零星几次抓取,甚至完全没有记錄。
纵向挖得太深,抓取概率會一路衰减
從入口算起,每多一次跳轉,頁面被訪問到的概率就會下降一截。第三层、第四层之後,很多頁面只能靠 Sitemap 或站外連結偶尔被翻到。常见的深层结构是:首頁 → 栏目 → 子栏目 → 列表第 5 頁 → 詳情,走到詳情时已经没多少余力繼續跟。
把核心内容控制在三次点击以内
這不是硬性規則,而是一個方便自查的标尺:從首頁出發,三次点击應该能到達大部分想被收錄的頁面。做不到的话,通常意味着中間少了一條直達的横向通道,比如专题頁、热门标簽頁或編輯推荐的聚合入口。
内鏈怎么同时照顾深度和广度
- 首頁给主要栏目稳定的入口連結。位置固定、長期不變,比一次性的推荐位更有用。
- 列表頁留出足够的横向出口。分頁要能正常跟到,同时可以用“相關栏目”“更多分類”這類連結把同級内容串起来。
- 詳情頁之間做横向關联。相關内容、上下篇、同标簽列表,都是让蜘蛛從一條路径跳到另一條的通道。
- 面包屑固定回上級的路径。它既帮用戶定位,也让蜘蛛能顺着层級回到列表頁繼續横向抓取。
Sitemap 是深度抓取的安全網,不是萬能钥匙
Sitemap 的價值在于给深层 URL 一個不依赖点击深度的入口。URL 數量多、层級深的站点,分片提交並與内鏈保持一致,能减少漏抓。但要注意两点:一是 Sitemap 里的連結最好都能在站内正常訪問到,纯粹只存在于 Sitemap 的頁面,抓取優先級通常不高;二是 Sitemap 不能替代内鏈,把它当成唯一發現通道,等于放弃蜘蛛自然漫游带来的抓取動力。
可以從日誌里观察的几個信号
- 抓取是否過度集中在一两個列表頁,說明横向出口太少或结构過于單一。
- 栏目頁反复被抓,但下面的詳情頁很少,可能是列表頁連結輸出不足或連結被遮挡。
- 某些深层頁面只有 Sitemap 提交当天出現過一次抓取,說明站内缺少通向它的路径。
- 整体抓取量不低,但覆盖的目錄很窄,可能是广度被少數高频頁面吃掉了。
為了“广度”而在每個頁面堆上几十上百條連結,通常不會带来更好的抓取效果。連結的價值来自它指向的内容是否值得抓,而不是數量。
與其猜蜘蛛的路线,不如按目錄統計一段時間内的抓取分布:哪些层級被抓得多,哪些目錄几乎空白。深度和广度的問题,基本都會在這張分布表上顯出来。