搜尋蜘蛛發現新 URL 的主要方式,仍然是顺着頁面里的連結一层层走下去。一條 URL 從哪個頁面出發、要经過几跳才能到達,會影响它被發現的快慢,也影响它之後被重訪的频率。這就是常说的連結深度,或者点击深度。
連結深度是怎么算的
把首頁记為第 0 层,首頁上直接出現的連結指向的頁面算第 1 层,第 1 层頁面里的連結指向的頁面算第 2 层,依次往下。一個頁面到首頁的最短跳數,就是它的連結深度。
蜘蛛的抓取资源是有限的,它更倾向于反复訪問靠近首頁、連結多、更新频繁的頁面。深度越大的頁面,被排進抓取队列的机會越少,等待時間也越長。這不等于深层頁面一定抓不到,而是说它們需要更多時間,也更容易在某個环节被漏掉。
深层頁面為什么容易被漏掉
- 入口太少:全站只有一两條連結指向它,而且這两條連結本身在很深的列表頁里。
- 分頁太深:内容只出現在列表的第 8 頁、第 15 頁,前面几頁的連結更新後,這些入口就被挤下去了。
- 連結藏在交互里:需要点击“展開更多”或滚動後才由脚本生成,静態 HTML 里看不到。
- 没有稳定入口:只靠站外偶尔的引用,站内没有任何栏目或導航鏈向它。
這几種情况的共同点不是“頁面质量差”,而是蜘蛛没有一條顺畅的路径走到它面前。
先量一量自己的站点深度
在動手改结构之前,可以先做一次简單的广度遍歷:
- 從首頁開始,记錄頁面上所有站内連結,把它們标為第 1 层。
- 再逐個訪問第 1 层頁面,记錄其中没出現過的新連結,标為第 2 层。
- 按這個方式繼續,直到没有新連結,或者跳到第 5 层就停下。
遍歷完會得到一張深度分布图:哪些栏目在第 2 层,哪些内容只在第 4、第 5 层才出現。如果重要頁面的深度普遍超過四层,就需要考虑给它們补几個更靠前的入口。
另一種办法是對照服務器日誌。把日誌里蜘蛛抓取過的 URL 按栏目归類,再和 Sitemap 里的 URL 清單比對:Sitemap 里有、日誌里長期没出現的,往往就是入口太少的頁面。
把深层頁面往前提的几種做法
- 栏目頁和聚合頁:给同類内容一個稳定的列表入口,让新頁面至少在栏目頁第一屏出現一段時間。
- 相關推荐與热门列表:在正文頁放几條相關連結,把深层内容接到訪問量更大的頁面上。
- 面包屑與上下級導航:让每個頁面都能沿着层級回到栏目頁和首頁,蜘蛛走得進来,也走得出去。
- Sitemap 作為补充:Sitemap 不能代替内鏈,但可以把那些确實没有合适入口的頁面列進去,给蜘蛛多一條發現的线索。
深度之外還要看什么
深度只是判断抓取路径是否顺畅的一個维度。同样在第 2 层,一個每周更新的頁面和一個三年没變的頁面,被重訪的节奏完全不同。連結位置也有影响:正文里的連結和頁脚里的連結,蜘蛛對待的方式並不一样。所以調完结构之後,還是要回到日誌里看實际效果,而不是只看遍歷出来的层數。
几個常见的誤区
把站点做得很平,不等于每個頁面都會被频繁抓取,更不等于會被收錄。
- 為了减少深度,把几十上百條連結堆到首頁,反而让首頁連結失去区分度。
- 以為加了 Sitemap 就不需要内鏈,结果頁面依然缺少可走的路径。
- 只看新頁面的深度,忽略了舊入口被替換後,原本可達的頁面變得更深。
連結深度這件事没有统一的标准答案。比較務實的做法是定期做一次遍歷,找出那些重要但入口單一的頁面,给它們补上稳定、位置合理的連結,然後观察日誌里的抓取變化。