站点里常有一類頁面:能通過搜尋框、站内推荐或者外部連結打開,但顺着栏目頁一层层点下去永遠到不了。這類頁面常被叫做孤岛頁面。它們不一定是坏頁面,却常常因為缺少内鏈而長時間不被搜尋蜘蛛發現,或者被發現之後隔很久才回来一次。
孤岛頁面是怎么形成的
大多數孤岛頁並不是有意做出来的,而是运营過程中的副产品。
- 活動頁、专题頁上线时只在首頁挂了两周,入口撤掉後頁面本身還在。
- 詳情頁被移出列表頁,比如商品下架、文章取消置顶,但 URL 仍可訪問。
- 只有站内搜尋才能命中的组合结果頁,例如带多個篩選條件的列表。
- 分頁很深的归档頁,第 30 頁之後再没有任何入口指向它。
- 只在 App 或小程序里出現的頁面,網頁端没有對應連結。
這些情况的共同点是:URL 存在、服務器返回 200,但從站点的連結图上找不到一條通向它的路径。
蜘蛛發現 URL 的几條常規路径
理解孤岛問题,先要分清蜘蛛可能從哪里拿到一個 URL。常见来源大致有這么几類:
- 站内連結:首頁、栏目頁、列表頁、詳情頁里的 a 标簽,這是最主要也最稳定的入口。
- XML Sitemap:站点主動提交的候選清單,蜘蛛會把它当作待抓队列的补充来源。
- 外鏈:其他站点指向你的連結,尤其是本身被抓取較频繁的頁面上的連結。
- 歷史抓取记錄:之前抓過的頁面上再次出現連結,蜘蛛會顺着重訪。
孤岛頁通常只能依赖第二條和第三條。問题是,Sitemap 提供的更像一份备選名單,而不是抓取的保證;外鏈又完全不受你控制。只靠這两條路径,URL 被發現的時間、被回訪的频率都會明顯低于有正常内鏈的頁面。
Sitemap 里放着孤岛頁,為什么不等于被正常抓取
不少人把孤岛頁塞進 Sitemap 就算處理完了,實际效果往往打折。原因有几层:
- Sitemap 里的 URL 缺少頁面之間的上下文,蜘蛛較难判断它的重要程度,抓取安排上通常靠後。
- 如果同一份 Sitemap 里混了大量低價值 URL,真正需要抓的頁面會被稀释。
- 孤岛頁没有内鏈,蜘蛛抓到之後也难以繼續向外扩散,這條路径基本到此為止。
- 頁面内容更新时,缺少内鏈带来的再次發現,回訪主要靠 Sitemap 的 lastmod 提醒,节奏會慢一拍。
内鏈解决的是這條路走不走得通,Sitemap 解决的是要不要把這條候選记下来。两者不能互相替代。
把孤岛頁重新接回站点
如果頁面确實有保留價值,比較稳妥的做法是给它补一條站内路径,而不是長期依赖 Sitemap 兜底。
1. 找到合适的上游頁面
它属于哪個栏目、哪類内容,就回到那個栏目里。栏目頁、标簽頁、归档頁都是天然的入口,前提是這些頁面本身能被蜘蛛正常抓到。
2. 用相關推荐和正文内鏈补充
在同類内容里加一两條指向它的連結,比在頁脚堆一排連結更自然。連結锚文本能說明頁面主题,對蜘蛛理解頁面也有帮助。
3. 检查列表頁的分頁入口
翻頁如果只靠按钮触發 JS 而缺少可抓取的 a 标簽,深层的舊内容就會逐渐失去入口。可以在归档頁或按時間排序的列表里保留一條静態入口。
4. 單獨整理一份 Sitemap
把确實需要被發現、但暂时没有内鏈的頁面集中放在一個分片里,別和全站 URL 混在一起,方便在日誌里观察它們的抓取情况。
日常检查时可以先看這几項
- 随机抽一批詳情頁,從首頁出發能不能点到它,大概需要几步。
- 抓取日誌里,頁面的来源是站内連結,還是只有 Sitemap 與外鏈。
- 站内搜尋结果頁、日歷頁、無限滚動列表,有没有生成大量無入口的 URL。
- 下架、合並的頁面有没有做收尾處理,避免留下既無内鏈也無内容的 URL。
孤岛頁不是必须清零的問题,但值得定期清点。判断标准很朴素:這個 URL 如果對用戶有價值,就應该有一條站内路径能走到它;如果没有價值,與其让它挂着,不如干净地下线或做合並。