做 URL 發現时,很多站点的入口並不是被封鎖,而是没有被“指出来”。頁面能打開、返回 200、也没有 robots 限制,但蜘蛛從站内連結走不到它,只能依赖 Sitemap 或外部連結碰运气。這類頁面通常被称為孤岛頁面,它未必完全不被抓,但發現路径明顯變窄,更新後的回訪也更容易滞後。
孤岛頁面常见的形成方式
先別急着补鏈,先確認它為什么没有入口。常见原因有几種:
- 頁面只提交了 Sitemap,站内没有任何指向它的連結。
- 連結由前端 JS 在交互後才插入,首屏 HTML 里找不到 href。
- 入口藏在很深的分頁、篩選或折叠组件里,蜘蛛翻不到。
- 導航、面包屑、相關推荐都遗漏了该栏目或该批内容。
- 入口連結被 nofollow 或 robots meta 阻断,虽然存在但不传递發現路径。
這些情况里,只有最後一種属于“寫了但被限制”,其余大多属于“根本没有寫”。
先判断是不是真孤岛
用日誌和抓取记錄交叉驗證
判断时不要只看 Sitemap 提交量。可以拉一段服務器日誌,按蜘蛛 UA 過滤,看目标 URL 有没有被請求過、首次請求時間是什么、請求时返回的狀態碼是什么。如果日誌里完全没有记錄,再去检查站内連結。
- 在栏目頁、首頁、聚合頁搜尋目标 URL,看是否存在可点击的 a href。
- 检查連結是否被 JS 渲染,首屏 HTML 是否包含该地址。
- 對比 Sitemap 中的 URL 數與内鏈可達 URL 數,看差值集中在哪些目錄。
- 確認連結没有被 nofollow、robots meta 或 WAF 規則誤伤。
如果日誌顯示蜘蛛来過但返回 5xx、超时或连接重置,那它更可能是“临时孤岛”,問题在服務器稳定性,而不是内鏈。
内鏈补鏈的優先級
补鏈不是把所有頁面都堆到首頁。更合理的顺序是從离首頁近、相關性强的位置開始:
- 先补栏目頁和分類頁,让每個内容至少有一個稳定入口。
- 补面包屑和上一級列表,保證层級路径可回溯。
- 补相關推荐、同标簽、同系列入口,增加被發現的机會。
- 检查分頁组件,確認翻頁連結可抓取,不要只用按钮加载。
- 確認新發布的頁面會自動出現在某個固定列表或聚合頁中。
补鏈後不要立刻期待抓取變化,URL 發現和回訪調度需要時間。更實际的做法是观察一段時間的日誌,看新入口是否带来請求。
服務器稳定性會放大孤岛問题
即使入口已经补上,如果服務器在蜘蛛来訪时频繁超时、返回 5xx 或连接被重置,蜘蛛也可能降低回訪频次。對孤岛頁面来说,本来入口就少,一次失敗可能意味着很長時間不再被尝试。核對时可以把時間對齐:日誌里蜘蛛請求的時間段,是否正好對應服務器负载高峰、發布任務或备份窗口。
孤岛頁面不等于永遠不被抓,但它對服務器稳定性和入口完整性的要求更高。入口越少,容错空間越小。
一個可执行的核對顺序
- 從 Sitemap 抽一批 URL,去站内搜尋是否存在内鏈。
- 查看首屏 HTML,確認連結不是纯 JS 交互产物。
- 检查連結是否被 nofollow、robots meta、WAF 拦截。
- 用日誌確認蜘蛛是否来過,以及返回狀態和耗时。
- 從栏目、面包屑、相關推荐、分頁四個位置补入口。
- 观察两周日誌,確認新入口是否带来抓取請求。
把這几步做完,通常能区分“没入口”和“入口不稳定”两類問题。前者靠内鏈结构解决,後者要回到服務器稳定性和抓取窗口去處理。