站内連結是搜尋引擎發現頁面最基础的途径。一個頁面如果從首頁出發要走七八次点击才能到達,它在抓取队列里的位置通常不會太靠前——不是抓不到,而是可能排得很後面。
层級深度為什么會拖慢發現
爬虫從已知入口(首頁、Sitemap、外部連結指向的頁面)出發,沿着連結一层层向外扩散。每深入一层,都意味着一次跳轉和一次抓取請求。站点的抓取资源不是無限的,深层頁面能分到的次數自然更少。
更實际的問题是路径本身。当頁面只能通過「首頁 → 分類 → 子分類 → 列表第 5 頁 → 詳情」這條线到達时,爬虫得先把前面每個环节都抓完才有机會走到它。中間任何一环不配合,比如列表頁由 JavaScript 渲染、分頁被加了 nofollow、參數被屏蔽,這條线就断了。
先量一下:重要頁面离首頁有多遠
不用工具也能做粗略判断:從首頁開始,只点站内連結,找到目标頁面最少要点几次。3 次以内算浅,4 到 6 次要留意,7 次以上基本可以認為偏深。
- 導航栏里有没有直接入口
- 它所在的分類頁本身是否已被抓取
- 列表頁要翻多少頁才能看到它
- 有没有其他内容頁主動鏈向它
這几項里只要有一項不成立,這個頁面的發現路径就變窄了。
内鏈不是「有連結就行」
連結出現的位置
正文里的連結比頁脚的連結更有參考價值,因為它和上下文相關。全站頁脚、侧栏「最新文章」這類模板位置上的連結,每個頁面都指向同一批目标,單條連結的作用會被稀释。
锚文本
锚文本不需要刻意堆词,但至少要让連結指向的内容可被理解。「点击這里」和「XX 型号的配置說明」传递的信息量完全不同,後者也更容易让用戶判断要不要点。
連結數量與集中度
與其在几百個頁面各加一條指向同一地址的連結,不如把連結集中放在與目标最相關的一批頁面上,比如同類目、同主题的内容里。相關性越强,這條連結被顺着走過去的概率越高。
可以按顺序执行的检查流程
- 列出你認為重要的那批頁面,逐一记錄它們從首頁出發的最短点击路径。
- 检查路径上的每個节点能不能被抓:有没有被 robots 屏蔽、連結是不是脚本生成的、分頁是否被特殊處理過。
- 挑 3 到 5 個與目标最相關的頁面,在正文里加入連結,锚文本寫清目标頁在讲什么。
- 改完之後看服務器日誌里這些 URL 的抓取记錄,而不是只盯收錄數量這一個數字。
- 如果路径仍然很長,考虑調整分類结构,或把重要頁面提到更高的導航层級。
几個容易被忽略的情况
- 只出現在站内搜尋结果頁里的連結,通常不會被当作常規發現路径。
- 把 nofollow 标在站内連結上,等于主動放弃這條通路。
- 图片或按钮形式的入口,如果實現方式不對,爬虫讀不到目标地址。
- 同一批頁面之間完全没有横向連結,全部依赖上級分類,分類頁一出問题就集体失联。
层級深度影响的是發現效率和抓取優先級,它不直接决定頁面是否被收錄。它更像一條通路:通路顺畅,後面關于内容质量和重复度的判断才有机會發生。
需要避免的做法
為了「让爬虫多来」而在頁脚或侧栏堆砌大量連結,往往适得其反。模板位置上的重复連結對發現效率帮助有限,還會让頁面顯得杂乱。同样,短期内给一個頁面加上大量站内連結,也不符合站点正常的生長节奏,容易被当成異常處理。
定期花十分钟检查一次重要頁面的路径長度,比反复提交收錄請求更實在。發現路径理顺了,多數「為什么還不收錄」的疑問會少掉一大半。