蜘蛛發現 URL 的方式,说到底是沿着連結走。它從一個已知地址出發,点開頁面里的連結,把新地址放進队列,然後再去点下一层。這個過程有次數限制,也有先後顺序,所以頁面离入口的“点击距离”,會直接影响它被發現的早晚。
抓取深度指的是什么
抓取深度通常指從網站入口算起,需要经過多少次連結跳轉才能到達某個頁面。首頁可以看作第 0 层,首頁直接鏈出去的頁面是第 1 层,第 1 层頁面再鏈出去的算第 2 层,依次類推。
每一层都會消耗蜘蛛的時間和抓取配額。层級越深,排队等待的 URL 越多,被安排到的概率就越低。對中小站点来说,深层頁面可能很久都不會被碰到一次。
深度過大时會發生的几件事
- 队列變長:同一层級的 URL 數量一旦很多,蜘蛛光在這一层里就要花不少時間。
- 優先級被压低:浅层頁面往往更新更频繁,蜘蛛會優先回头抓它們。
- 路径容易断:中間任何一层出現 404、超时或跳轉異常,後面的 URL 就一起断了。
- 抓取不均:有些分支几乎不被進入,時間久了就成了事實上的死角。
常见的“挖深”结构
不少站点並不是故意把内容藏起来,而是分類和模板一层层套下去,深度自然就上来了。
- 多級分類:一級、二級、三級分類套下来,詳情頁挂在最末一級。
- 标簽與聚合頁:标簽頁互相連結,詳情頁被推到更深的位置。
- 分頁列表:老内容沉到第 10 頁、第 20 頁之後。
- 篩選參數:组合出大量列表 URL,把有限的抓取通路稀释掉。
把重要頁面拉近入口
導航與面包屑
主導航尽量覆盖主要栏目,让重要頁面在一到两次点击内可達。面包屑除了给用戶定位,也给蜘蛛提供了一條回到上級分類的短路径。
相關推荐與热门入口
在文章底部放相關阅讀、热门标簽、最新更新列表,可以给深层頁面补一條来自浅层的連結,相当于在深處開了一扇侧门。
HTML 站点地图頁
做一個纯 HTML 的站点地图頁,從首頁直接鏈過去,把主要栏目和重要頁面平铺出来。它和 XML Sitemap 不冲突,一個给用戶和蜘蛛看,一個给抓取程序讀。
控制层級,而不是追求全平
把所有頁面都塞進首頁並不現實,連結太多也會稀释每個連結的分量。更實际的目标是让重要内容保持在較浅的层級,次要内容可以适当放深。
深度之外還要看連結數量
一個頁面即使深度只有 1,如果首頁上有几百個連結,它分到的注意力也有限。反過来,一個深度 3 的頁面,如果被多個頁面反复連結,蜘蛛也會較快走到。深度和連結數量要放在一起看,單獨盯着其中一個容易得出片面的结论。
自检:抽查几個關键頁面的点击距离
- 從首頁出發,手動數一數到達核心詳情頁需要几次点击。
- 找出超過三次点击的重要頁面,看看是哪一层把它們推遠了。
- 在抓取日誌里核對這些頁面是否出現過,以及出現的频率。
- 對确實推得太遠的頁面,补一條来自浅层的入口,過一段時間再复查。
抓取深度不是越浅越好,而是重要内容不该被無意中埋起来。
調整结构之後,建议观察一段時間的抓取日誌再决定要不要繼續優化。深度只是 URL 發現的一個變量,内鏈、Sitemap、服務器响應速度都會一起影响结果,改動时最好一次只動一處,方便判断哪一步起了作用。