很多站点會碰到一種奇怪情况:sitemap 里提交了頁面,日誌里也能看到蜘蛛来抓過一两次,但索引里始终没有它。查来查去,頁面本身内容正常、狀態碼 200、也没有 noindex。問题往往不在頁面本身,而在于它在站内是個“孤岛”——除了 sitemap,没有任何一個可抓取的連結指向它。
什么是孤岛頁面
孤岛頁面指的是從首頁出發,顺着正常連結走不到、或者要走很多层才勉强能到的頁面。常见形態有:
- 只出現在 sitemap,站内任何頁面都没有指向它的 a 标簽;
- 入口只存在于 JS 渲染後才出現的列表里,或者被 onclick 事件代替的假連結;
- 連結带了 nofollow,蜘蛛能看到但不跟随;
- 頁面藏在需要登入、需要提交表單、需要点選篩選條件之後。
這些頁面在技術上“存在”,在爬虫的路径图上却“不存在”。
為什么 sitemap 救不了孤岛頁面
sitemap 的作用是告诉搜尋引擎“這些 URL 存在”,它能提升 URL 被發現的机會,但不等于會被持續抓取,更不等于會被收錄。搜尋引擎判断一個頁面值不值得反复抓,會參考站内有多少連結指向它、這些連結来自什么质量的頁面。一個没有内鏈支撑的 URL,即便被 sitemap 带出来,通常也只被抓一次,之後很少再被訪問。
URL 發現、抓取、收錄是三件不同的事。内鏈解决的主要是“被發現”和“再来一次”,内容质量决定的是“能不能留下”。
先把孤岛頁面找出来
不用复杂工具也能做初步排查:
- 導出 sitemap 里的全部 URL,同时用爬虫工具或 site: 指令跑一遍站内可到達的 URL 列表,两者取差集,差集里的就是疑似孤岛。
- 看蜘蛛日誌:某個 URL 只被訪問過一两次、之後再無记錄,且訪問来源不是站内跳轉,基本可以確認。
- 抽查几個頁面的 HTML 源碼,確認連結是真的 a 标簽,且没有 nofollow。
注意,孤岛頁面不等于低质頁面。有些内容确實有價值,只是运营时忘了给入口。
补内鏈的几種做法
相關性入口優先
最自然的方式是在主题相近的頁面里加正文内鏈。比如一篇讲退货流程的頁面,可以從“售後政策”“常见問题”里鏈過去。這種連結既有用戶價值,也更容易被判定為有效連結。
聚合頁與列表頁
如果孤岛頁面成批出現,比如某類文章、某個栏目下的詳情頁,與其一頁頁补鏈,不如建一個分類聚合頁,把這些 URL 收進列表,再把聚合頁挂到導航或首頁可见位置。一條入口解决一批頁面。
面包屑與上一級返回
很多詳情頁只有 logo 和底部導航,没有任何指向同級或上級的連結。补上面包屑,能让爬虫顺着层級往上走,也顺便把同层級頁面串起来。
几個容易踩的坑
- 為了收錄硬塞連結:在頁脚堆几百個連結,權重和可讀性都會被稀释,蜘蛛也未必跟。
- 把連結做成按钮或 JS 跳轉:用戶点得動,爬虫不一定跟得動。關键入口尽量用 a 标簽。
- 补完入口就不管了:加完内鏈後要看一两個抓取周期内的日誌,確認這些 URL 的抓取频次有没有變化。
加完入口之後怎么驗證
先看日誌:目标 URL 的訪問是否從“一次性”變成有稳定来源。再看索引:搜尋该頁面的完整标题或一段獨特文字,看结果里有没有出現。如果抓取變多了但依然不收錄,那問题就轉移到内容质量、頁面相似度或站点整体信任度上,需要另做排查,而不是繼續加連結。
孤岛頁面的處理逻辑其實很朴素:让重要的頁面在站内被人和蜘蛛都能走到。入口通了,抓取和收錄才有後續可谈。