蜘蛛不會凭空知道你的詳情頁在哪里。它從一個已知的 URL 出發,沿着頁面上的連結一步步走。從入口頁到目标頁之間需要点几次連結,這個次數通常被称為点击距离,它直接影响一個 URL 被發現的概率和被抓取的频率。
点击距离是怎么形成的
假设路径是首頁 → 栏目頁 → 列表頁 → 詳情頁,詳情頁的点击距离就是 3。如果某個商品要到列表第 20 頁才出現,它的点击距离就變成 4 甚至更多。蜘蛛每次抓取都要消耗時間和资源,走得越深,愿意繼續往下的可能性越低,尤其是在中間层頁面内容重复度很高的时候。
頁面被埋深之後會發生什么
- 發現變慢:新頁面要等上一层頁面被重新抓取,才有机會進入队列。
- 抓取频率降低:處在深层的頁面通常更新少,蜘蛛复查的間隔也拉得更長。
- 連結信号被稀释:頁面之間隔着越多层,能分到的影响力就越弱。
- 路径容易断:中間某一层如果被 robots.txt 挡住、返回 404,或者連結要靠点击才展開,後面的頁面就没人带路。
哪些结构容易把頁面越埋越深
- 列表頁只靠“下一頁”串联,没有分頁索引,也没有按時間或首字母的归档入口。
- 篩選參數生成的列表,連結只在用戶点击篩選後才出現,預設 HTML 里没有可抓取的 href。
- 标簽頁、专题頁层层堆叠,同一個頁面要经過多层聚合頁才能到達。
- 点击展開的折叠菜單,文字在 DOM 里,但連結不是普通的 a 标簽。
缩短点击距离的几個做法
- 在栏目頁提供全量入口,例如分類索引、按時間归档、按首字母归档。
- 面包屑導航保持每一层都可点,让蜘蛛能顺着路径回到上层。
- 在相關阅讀、最新列表里给重要頁面留固定位置,而不是只依赖随机推荐。
- 對确實重要的深层頁面,用 Sitemap 补一條直達路径。Sitemap 负责被看到,内鏈负责被持續抓取,两者分工不同。
- 控制分頁深度,把翻頁連結做成静態、可爬取的連結。
路径之外還有稳定性
顺着連結走的過程中,如果中途连續遇到超时或错誤,蜘蛛可能放慢這一段的抓取节奏。保持服務器响應稳定、狀態碼正确,比事後补一份 Sitemap 更有效。路径再清晰,走一次掉一次,長期看抓取量仍會下降。
怎么判断自己的站点埋得太深
- 看蜘蛛日誌里的 URL 分布,如果集中在首頁和栏目頁,深层頁面很少出現,說明路径可能偏長。
- 抽一批詳情頁,統計從首頁到它需要几次点击,超過 3 到 4 次就值得检查。
- 對比 Sitemap 里提交的 URL 與實际被抓取的 URL,差額較大的那一批,往往是埋得較深的頁面。
抓取路径的设計目标不是“尽可能多”,而是让重要頁面在少數几步之内就能被找到,並且每次都走得通。
把点击距离当成一項可以测量的指标,定期看看蜘蛛實际走到了第几层,比單纯增加連結數量更有意义。