站内連結是蜘蛛最常走的路径,但總有一些 URL 不在這條路上:它們存在、能正常打開,却没有被任何頁面連結到。這類頁面通常被称為孤立頁面。它們並非完全不能被蜘蛛發現,只是被發現的机會和回訪的频率都低得多。
蜘蛛發現一個新 URL 的入口
- Sitemap:直接把 URL 清單交给蜘蛛,不依赖内鏈。
- 站外連結:別的站点鏈過来,蜘蛛顺着外鏈進入。
- 歷史抓取记錄:曾经被抓過的 URL,即使後来内鏈断了,蜘蛛仍可能隔一段時間回来看看。
- 重定向與跳轉目标:301、302 或脚本跳轉的落地 URL 會被记錄。
- RSS、JSON 輸出、接口返回:只要蜘蛛能請求到,里面的 URL 也可能被讀取。
也就是说,最“孤”的一類頁面,是既没有内鏈,也没有外鏈,又没進過 Sitemap 的 URL,它們基本只能靠偶然。
為什么没有内鏈的頁面會慢慢沉下去
内鏈的作用不只是發現,還是一種持續的信号:只要入口頁面還在,蜘蛛每次抓那一頁时都可能再次看到這條連結。Sitemap 更像一份清單,它能說明 URL 存在,却不會像内鏈那样在每次抓取时反复提醒。外鏈也是同理,一旦對方撤掉連結,入口就断了。所以孤立頁面往往在最初被抓几次之後逐渐消失,尤其是内容更新少、又没有其他入口的頁面。
把站内的孤立頁面找出来
- 導出網站日誌,筛出所有返回 200 的 URL。
- 用爬虫工具從首頁出發爬一遍站内連結,得到“有内鏈可達”的 URL 集合。
- 两個集合做差集,差集里的就是靠内鏈到不了的頁面。
- 再把 Sitemap、RSS 里的 URL 加進来對照,看看這些孤立頁面還剩下哪些入口。
這一步的意义在于分清两類情况:有些頁面是设計上就不打算被大量訪問的,比如临时活動頁;有些是原本有入口、後来因為改版或栏目下架而断掉的。後者的處理優先級更高。
處理顺序:补内鏈、改结构,還是下线
- 有持續價值的頁面:從相關文章、分類頁、聚合頁里补一條有语境的連結,而不是集中塞進一個没人看的友情連結区块。連結放在正文或列表里,比單獨一頁堆几百條更容易被持續走到。
- 内容重复或過期的頁面:考虑 301 到最接近的有效頁面,或者明确下线並返回 404,而不是留在站内当一個無入口頁面。
- 只在特定時間段需要的頁面:可以保留 Sitemap 提交,但要接受它的抓取频次不會高。
- 參數、測試、临时预览 URL:不要放進 Sitemap,也不要長期留在可訪問狀態。
几個常见的誤判
第一,把 URL 寫進 Sitemap 就以為等于被收錄。實际上 Sitemap 只解决“蜘蛛知不知道”,不解决“值不值得抓”,也不解决後續的展示問题。
第二,用一頁几十上百條連結的全站導航来救孤立頁面。這種做法對内鏈结构的改善有限,連結所在頁面本身如果抓取與權重都一般,传递不了多少訪問動力。
第三,只补一次内鏈就以為問题解决了。改版、下架、模板調整都可能再次把連結切断,孤立頁面的检查最好做成定期動作。
判断一個 URL 是不是孤立頁面,不要只看 Sitemap 里有没有,而要看從首頁出發、顺着站内連結能不能走到它。
小结
孤立頁面不是必须消灭的對象,但需要清楚每一類頁面還剩哪些入口。内鏈能覆盖的,补一條有语境的連結;没有保留價值的,尽早 301 或下线;只能靠 Sitemap 的,接受較慢的抓取节奏。定期做一次差集比對,比事後在日誌里翻找要省力得多。