搜尋抓取

没有入鏈的頁面:蜘蛛怎么知道它存在,又该怎么补救

站内没有任何連結指向的 URL,蜘蛛往往無從發現。本文梳理孤儿頁面的常见来源,說明除了 Sitemap 和外鏈之外還有哪些窄路能让蜘蛛找到它,並给出判断该救還是该清的方法、补充内鏈的具体做法,以及用日誌驗證抓取是否真正發生的方式。

搜尋抓取

没有入鏈的頁面:蜘蛛怎么知道它存在,又该怎么补救

一個 URL 能不能被抓,第一步不是它長什么样,而是蜘蛛有没有机會知道它存在。绝大多數被抓的頁面,都是蜘蛛顺着其他頁面上的連結走過去的。如果某個 URL 在站内没有任何連結指向它,它就成了孤儿頁面——除非有外部連結或者被寫進 Sitemap,否則它在抓取队列里基本没有出场机會。

孤儿頁面通常是怎么产生的

  • 内容從列表頁撤下,詳情頁却還留在线上,入口被删、頁面還在。
  • CMS 自動生成的标簽頁、作者頁、归档頁,數量大且互相之間不互鏈。
  • 站点改版时栏目被删,舊 URL 保留了下来,只在外鏈或歷史记錄里出現。
  • 只有通過站内搜尋框提交關鍵詞才能到達的结果頁。
  • 表單提交、篩選组合或接口拼接出来的參數型 URL,本身不寫在任何連結里。

這些頁面的共同点是:它們存在,但站内没有任何一條路径把蜘蛛引過去。

蜘蛛還能從哪几條窄路找到它

  1. Sitemap:這是最常见的兜底方式。但要清楚,寫進 Sitemap 只是告知存在,不等于會被抓,更不等于會被認為重要。
  2. 外部連結:別站鏈過来,蜘蛛就會顺着外鏈進来。這條路你控制不了多少。
  3. 歷史抓取记錄:如果這個 URL 以前被抓過,蜘蛛可能會再来看看,但频率很低,也不稳定。
  4. 站内搜尋入口:通常這類路径是希望被禁止的,不适合当作發現通道。

換句话说,這几條路都属于补丁,而不是结构。真正稳定的發現方式,仍然是頁面之間有一條能点得到、能被解析的連結。

先判断:這個頁面值得救吗

不是所有孤儿頁面都要抢救。先分两類:

  • 值得保留:有搜尋需求、有轉化價值、被外鏈引用,或者内容本身有長期參考意义。
  • 應该處理:過期活動頁、重复的參數頁、内容已合並的舊版本。這類頁面直接 301 到相關頁面,或在不影响用戶的前提下返回 410。
一個常见的誤区是,把所有孤儿頁面都塞進 Sitemap。這通常只是把問题從一個列表搬到另一個列表,抓取预算被摊薄,真正该被發現的頁面反而排队更久。

给重要頁面补一條更短的入鏈路径

确定要保留之後,重点是把它重新接回站内结构,而且路径越短越好:

  • 從首頁往下數,目标頁面最好在两三层以内能被点到,避免只有一條深鏈條通向它。
  • 用主题相關的栏目頁、聚合頁或专题頁作為入口,让連結出現在有實际抓取價值的頁面上。
  • 在相關文章的正文里加自然的锚文本連結,比模板化的“相關推荐”更容易被稳定解析。
  • 检查面包屑是否可点击、是否指向真實的栏目頁,很多站点的面包屑其實只是装饰。

還有一個容易忽略的点:新补上的入鏈如果出現在靠 JavaScript 後置渲染的模块里,蜘蛛未必讀得到。重要入口尽量放在服務端輸出的 HTML 里。

驗證蜘蛛是否真的走到了

补完連結以後不要就此結束,用几個简單方式確認效果:

  • 查服務器日誌,看该 URL 是否出現首次抓取,以及抓取時間是否集中在調整之後。
  • 用抓取工具從首頁出發模拟走一遍,確認路径真的点得到,中間没有断在某個 404 或重定向环里。
  • 检查這個頁面自身的出鏈,別让新入口把另一個死胡同又接了進来。

孤儿頁面的問题,说到底不是技術故障,而是结构上的断线。给它接一條能被点到、能被解析、路径够短的連結,比反复提交 Sitemap 有效得多。