做搜尋抓取的人常遇到一個反差:Sitemap 里明明提交了几千條地址,日誌里却没有訪問记錄;另一些頁面則天天被爬,内容却没什么價值。差別往往不在提交動作,而在站点结构本身——搜尋蜘蛛是顺着連結走的,路径通不通、绕不绕,直接决定一個 URL 能不能進入抓取队列。
孤儿頁:没有任何入口的地址
孤儿頁指的是站内没有任何連結指向、也不在 Sitemap 中的頁面,或者只有 Sitemap 一條通道的頁面。前者几乎只能靠外鏈或歷史记錄被發現,後者則把全部希望押在一個入口上,一旦 Sitemap 讀取失敗或未及时更新,頁面就長期處于沉默狀態。
排查孤儿頁比較實用的做法是把几個資料源交叉比對:
- 服務器日誌中出現過的 URL 列表,與 CMS 後台已發布内容總數對比;
- Sitemap 文件包含的 URL 與實际頁面數是否一致;
- 用抓取工具從首頁出發爬一遍,看哪些頁面始终没被訪問到。
差集通常就是問题所在。處理方式並不复杂:给這些頁面补上合理入口,比如在相關聚合頁、正文推荐位或導航里加入連結,让它們至少有一條從首頁可達的路径。
枢纽頁:把路径長度压下来
另一端的极端是枢纽頁——被大量連結指向的列表頁、专题頁、标簽頁。它們承担的是分發职责,把抓取意愿传递给下面的詳情頁。枢纽頁设計得好,深頁只需要两三跳就能到達;设計得差,所有連結都堆在首頁,反而會让首頁變成噪音源。
這里有几個判断标准:
- 從首頁到任意一個内容頁,点击次數是否控制在三到四跳以内;
- 枢纽頁指向的連結數量是否過多,導致單條連結获得的關注被稀释;
- 枢纽頁本身是否有稳定更新,新内容能否第一時間出現在上面。
面包屑與 HTML 站点地图:两條兜底路径
面包屑看起来只是用戶体驗细节,實际上给每個詳情頁补了一條通往分類頁和首頁的固定鏈路。当内容頁因為改版、迁移而暂时失去其他入口时,面包屑往往還是通的。
HTML 站点地图頁的作用類似,它把所有栏目和重要頁面集中在一個頁面里,用纯文本連結的形式呈現。對搜尋蜘蛛来说,這是识別站点轮廓的快捷方式;對运营来说,它也是检查連結是否断裂的直观清單。需要注意的是,這個頁面本身要能被抓取、能被連結到,放在空目錄里就失去了意义。
用日誌驗證路径是否真的走通
结构设計合理不代表蜘蛛就按你想的走。定期看服務器日誌,能發現一些意料之外的情况:某個分類頁被抓得很勤,下面的詳情頁却很少被訪問,說明連結位置可能太靠下;某些 URL 只在第一次抓到,之後就再没出現過,可能需要检查是否有 nofollow 或參數問题。
路径規划和實际抓取之間總會有偏差,日誌是唯一能反映真實情况的資料,比任何结构图都可靠。
服務器稳定性:路径通不等于抓得到
即使内鏈结构没問题,抓取仍然會受服務器狀態影响。返回 5xx、响應時間過長、频繁超时,都會让搜尋蜘蛛降低訪問频率,甚至暂时放弃某段時間的抓取。新 URL 受影响最明顯,因為它們還没有歷史记錄,一旦首次抓取失敗,重新排队可能要等很久。
- 關注 5xx 错誤率的波動,尤其是内容發布高峰期;
- 检查是否有大量請求落在同一時間段,造成瞬时压力;
- 確認 CDN 或防火墙没有對搜尋蜘蛛的請求做誤拦截。
把稳定性当成 URL 發現的一部分来看待,會比把它們分成两個問题更接近實际。
最後,孤儿頁和枢纽頁其實是同一個問题的两端:一邊是入口缺失,一邊是入口過剩。定期用日誌和抓取實测去核對,比每年改一次導航结构更有效。路径清楚、服務器稳定,URL 被發現在多數情况下只是执行顺序的問题,而不是运气問题。