很多站点並不缺頁面,缺的是指向頁面的連結。当一批 URL 只存在于 Sitemap 或後台資料库里,站内没有任何可点击路径通向它們时,搜尋蜘蛛即使知道地址存在,也很难判断這些頁面的價值,抓取频率自然偏低。本文讨论的是内鏈缺口造成的入口遗漏,以及如何用較低成本把這類頁面接回站内鏈路。
先分清两類“抓不到”
一類是技術性阻断,比如 robots 限制、错誤狀態碼、渲染問题;另一類是鏈路問题:頁面能正常訪問,但站内没有入口指向它。前者在日誌里通常表現為拒绝或错誤狀態,後者往往表現為“從没出現過”。把两類混在一起看,會浪費大量排查時間,也容易誤改不该改的配置。
用两份資料交叉定位缺口
抓取日誌侧
先看哪些目錄段長期没有蜘蛛訪問记錄,尤其是已经上线的栏目和詳情頁。需要提醒的是,日誌缺失只能說明“没被抓”,不能直接說明原因,必须和站内連結資料對照才能確認。
站内連結图谱侧
寫一個简單的站内爬虫,從首頁出發,僅跟踪 a 标簽的 href,记錄每個 URL 的入鏈數量和来源頁面。跑完後與全站 URL 列表做差集,差集里的 URL 基本就是孤岛候選。登入態頁面、带參數的篩選頁要提前過滤,否則差集里會混進大量噪音,让结果失去參考價值。
常见的入口遗漏類型
- 新栏目上线只挂了 Sitemap,導航和首頁没有同步更新;
- 詳情頁只能通過站内搜尋或篩選结果到達,預設列表頁翻不到;
- 正文里提到相關内容,但用的是纯文本而不是連結;
- 分頁只保留“下一頁”,更早的頁面在翻頁鏈路中被截断;
- 改版後舊模板里的相關推荐模块被移除,入口一並消失。
补齐入口的顺序
- 栏目頁與導航:優先保證每個栏目在主導航或二級導航中有固定位置,這是最稳定的一层入口。
- 列表頁與分頁:確認列表頁能覆盖该栏目下的内容,分頁鏈路不断档。
- 正文内鏈:在相關内容處用自然语境加連結,比堆砌“相關文章”更有意义,也更利于顺着语义路径發現頁面。
- 聚合頁與标簽頁:可以作為补充入口,但要控制數量和參數,避免生成大量低质入口稀释抓取预算。
- Sitemap 兜底:适合作為交叉驗證和补充,不适合当作唯一入口。
入口收敛的几條原則
补入口不是越多越好。同一頁面被几十個入口指向时,抓取會被引導到重复路径上,反而挤压其他頁面的机會。建议每個頁面至少有 1 到 2 條稳定内鏈;同一模块的連結指向保持稳定,不要频繁更換;參數化入口尽量在連結层面收敛,而不是留给蜘蛛自己去猜。
判断入口是否有效,看的不是“有没有連結”,而是這條連結是否出現在用戶也會走的路径上。只有蜘蛛能看到的入口,通常也维持不了多久。
复查节奏與後續調整
补齐後不必立刻期待變化。按周观察目标 URL 的抓取记錄,同时對比整站被抓 URL 與總 URL 的比例,看结构是否在改善。如果孤岛頁面數量没有下降,多半是入口位置太深,或者連結依赖前端交互才渲染出来,需要回到渲染與連結可见性层面繼續排查。
把内鏈缺口当作一份持續维護的清單,而不是一次性任務。每次改版、上新栏目、調整模板时顺手检查一遍入口是否同步,比事後從日誌里倒推要省事得多。