入口頁的互鏈结构决定蜘蛛能走到哪里,点击深度則决定它要走几步。两者经常被放在一起谈,但問题並不相同:结构说的是連結網絡的形状,深度说的是從入口算起要经過几层。實际观察中,很多入口頁並不是連結结构坏了,而是目标連結被放到了第三层、第四层,蜘蛛爬到第二层就不再往下分了。
点击深度到底指什么
点击深度是從一個入口 URL 出發,到目标 URL 需要经過的最少跳轉次數。直接挂在入口頁上的連結深度為 1,经過一次中間頁到達的是 2,以此類推。它和目錄层級不是一回事:URL 里寫了几层目錄,不代表蜘蛛要点几次連結。一個 /a/b/c/d/page.html 的地址,如果入口頁直接指向它,深度就是 1;反過来,一個根目錄下的短地址,如果只能從列表第五頁翻到,深度也可能很高。
為什么深連結容易被放過
- 预算有限:蜘蛛在一個站点内的抓取次數和停留時間都是有限的,會更倾向于顺着容易到達、看起来更重要的路径走。
- 衰减效應:每多一跳,連結被繼續点開的概率都會下降。到第三、第四层时,剩下的往往只是几條最热门的路径。
- 單路径依赖:只有一個頁面通向某個目标頁时,一旦這條路径上的中間頁出問题,後面的頁面就一起断掉。
几種把連結藏深的常见做法
- 入口頁只挂栏目頁,目标連結塞在栏目頁的二級列表里,還要翻一頁才出現。
- 用“更多”“下一頁”“查看詳情”這類泛锚文本承载關键連結,蜘蛛很难從上下文判断這條連結的價值。
- 連結寫在需要交互才展開的模块里,比如点击展開、标簽頁切換、轮播的第二屏。
- 分頁參數层层叠加,列表第二頁之後的連結長期缺少入口。
這些做法本身不算错誤,有时是出于版面和内容的考虑。問题在于,如果希望被發現的連結全部落在深處,入口頁就只剩一個“指路牌”的作用,效率會明顯下降。
把深度压下来的几個做法
- 重要連結提到一級:把希望被發現的頁面直接挂在入口頁上,而不是让它先過一道中間頁。
- 控制中繼层數:中間頁可以有,但尽量不超過一层,避免出現“入口—栏目—子栏目—列表—詳情”這样的長鏈。
- 给目标頁留多條路径:两三條不同来路通向同一個頁面,比單线更稳,某一條断了還有別的。
- 分批加,不要一次铺開:一次塞進几百條一級連結,蜘蛛反而會分散注意力。分几批上线,看完日誌再加下一批。
- 锚文本寫清楚:用能描述目标頁内容的词,比“点击這里”更容易被繼續跟進。
- 善用列表頁的排序:把重要的目标頁放在列表靠前位置,避免只能從分頁末尾進入。
怎么確認深度没有拖後腿
看訪問日誌时,可以把蜘蛛請求的 URL 和 Referer 拉出来,按来源頁面归组。如果某個目标頁長期只有零星几次請求,而且都来自同一個中繼頁,說明它的路径太單一、太深。也可以自己模拟一條最短路径:從入口頁開始点,數一數要点几下才能到目标頁,通常比看代碼更直观。調整之後不要马上下结论,蜘蛛重新爬一遍需要時間,观察两三周的日誌走势更稳妥。
深度不是越浅越好,也不是所有頁面都值得挂到一級。入口頁的位置有限,關键是让真正想被發現的連結有一條短路径,其余的可以慢慢来。