做站内结构时,很多人把目錄层級当成随手一分的文件夹:栏目下再套子栏目,子栏目下再套列表,最後詳情頁的 URL 已经排到第五第六級。等發現收錄慢,才回头怀疑是不是路径太深。层級本身不是收錄的開關,但它實實在在影响抓取路径的長度和内部連結的分配。
层級深,影响的是爬虫能不能走到
從首頁出發点几下能到目标頁,是判断深浅最直观的办法。三到四次点击以内算比較顺畅,超過這個數,連結需要经過的中轉頁變多,而每一层中轉頁本身也未必都被抓取,路径就容易被截断。
另一種常见情况是頁面只出現在 sitemap 里,站内没有任何入口。這類 URL 爬虫能發現,却缺少来自站内的推荐信号,長期看收錄和更新都比較被動。层級深還會稀释抓取预算:同样的抓取次數,爬虫在浅层頁面之間来回走,深层頁面就更难被排上。
先看日誌,再動手改结构
在調整目錄之前,建议先確認問题到底出在哪一层。可以按下面的顺序查:
- 數点击深度:從首頁出發,记錄到達目标頁最少需要几次点击,重点看新上线的栏目和詳情頁。
- 看服務器日誌:篩選主流爬虫的 UA,观察目标路径有没有被抓、抓了几次、返回什么狀態碼。日誌里几乎不出現的路径,通常就是入口不足的路径。
- 對比 sitemap 與站内連結:把 sitemap 里的 URL 和站内實际能点到的 URL 各列一份,差集往往就是“只提交、没入口”的那批。
- 检查連結是否真的可達:有的入口藏在需要交互才展開的菜單里,或者由 JS 動態渲染,爬虫拿到的初始 HTML 里看不到連結。
- 確認路径命名與參數:同一批内容用了多個不同目錄,或者带篩選參數生成了一批地址,會让抓取分散到多條路径上。
收敛层級的常用做法
- 合並中間目錄:如果某一級目錄下只挂着一個子目錄,通常可以合並,直接少一层跳轉。
- 用聚合頁做入口:列表頁、专题頁、标簽頁都能把深层内容拉到更浅的位置,前提是這些頁面本身有獨立價值。
- 补上面包屑:面包屑不只是给用戶看的,它提供了從深层頁逐級回到上級頁的可抓取連結。
- 從重要頁面直连:在高權重頁面(首頁、频道首頁)放少量指向深层頁的連結,比在底层頁面之間互相連結更快生效。
- 改 URL 要配 301:把深层路径改成扁平结构时,舊地址做永久跳轉,別让两套地址同时存在。
改完之後再看一次日誌
结构調整不是改完就結束。過一到两周,重新拉一次日誌,看原来“冷”的路径有没有出現抓取记錄,狀態碼是否稳定在 200。如果仍然没有訪問,多半是入口還不够,或者連結被模板條件挡住,需要繼續從内鏈层面补。
扁平不等于全部堆在根目錄
层級過深有問题,但把成百上千個頁面全放在根目錄下同样不理想:URL 失去可讀性,路径之間也丢了语义關联,後續做栏目划分和資料分析都會變麻烦。比較合理的做法是让目錄层級和内容分類大致對應,同时保證任何一個頁面都能在較少的点击次數内被找到。
层級優化解决的是“爬虫能不能顺利走到”,它不保證收錄,也不替代内容质量。路径理顺之後,仍然要回到頁面本身是否有價值這件事上。
简單说,顺序是:先看日誌確認爬虫是否到達,再检查首頁到目标頁的点击深度,最後用内鏈和聚合頁把深层内容拉出来。這三步做完,多數由结构造成的收錄拖延都能看到變化。