站内所有頁面都能從首頁顺着連結点到,是一種理想狀態。實际运营中,總會有一部分 URL 處于没人指向它的位置:它們能正常返回 200,内容也不差,但站内没有任何一個 a 标簽指向它們。這類頁面通常被称為孤儿頁。
孤儿頁是怎么出現的
大多數孤儿頁不是故意做出来的,而是頁面结构變動留下的痕迹:
- 栏目改版,舊列表頁被撤掉,但詳情頁還挂在服務器上;
- 商品下架後從分類頁移除,URL 本身没有做 410 或 301;
- 由篩選條件、站内搜尋生成的參數頁,只在特定操作下才出現;
- 活動頁下线後入口被删,頁面文件仍然存在;
- 新站上线时先放了頁面,導航和列表還没配好。
這些頁面的共同点是:它們只能被外部线索發現,而無法被站内路径發現。蜘蛛沿連結爬行的习惯决定了,没有入口的 URL 不會在常規抓取中被自然遇到。
Sitemap 是主要补救手段,但有几個前提
Sitemap 的價值在于主動把 URL 递到蜘蛛面前,绕開必须有人連結它這一限制。不過它並不是萬能的:
- 文件本身要能被抓到。放對路径、返回 200、内容類型正确,這些基础項缺一不可。
- Sitemap 里列出的應当是最终地址。放入會 301 的舊地址,蜘蛛要多跟一跳才拿到目标頁,等于多花一次抓取。
- 只放需要被收錄的頁面。把大量低质參數頁、重复頁塞進去,會稀释整份文件的可信度。
- lastmod 要如實。频繁無意义地更新,會让這個字段失去參考價值。
另外,Sitemap 通常對已经建立抓取關系的站点更有效。一個刚上线、几乎没有外鏈的域名,即使提交了 Sitemap,被發現和抓取的节奏也會慢一些,這是正常現象。
外部連結仍然是有效的發現入口
對孤儿頁来说,来自站外的連結往往是它第一次被蜘蛛看到的途径。這可能是一條友鏈、一篇引用了该頁面的外部文章,或者社交平台上的一次分享。數量不需要多,一條稳定存在的連結就足以让 URL 進入抓取队列。
需要注意:外部連結解决的是被發現,不解决被持續重訪。如果這個頁面長期没有任何站内入口,它的抓取频率會明顯低于同類頁面。
服務器日誌能告诉你蜘蛛到底走没走到
判断孤儿頁是否被訪問,最直接的办法是看日誌。按狀態碼和 URL 路径篩選,观察這些頁面的請求来自哪個 UA、频率如何、是否集中在某几天。常见的结果有两種:
- 完全没有任何蜘蛛請求,說明连發現這一步都没完成;
- 有零星請求但没有後續,通常是抓過一次之後缺乏内鏈支撑,優先級被排到後面。
日誌還能帮你確認另一件事:頁面是不是因為服務器不稳定而抓取失敗。5xx 或连接超时較多时,蜘蛛的抓取节奏會整体放缓,孤儿頁這種本来就排在队尾的 URL,受影响最明顯。
更省事的做法是给它补一個入口
與其依赖外部线索,不如在站内结构上做一点調整:
- 確認頁面還有没有保留價值。没有就 301 到最相關的頁面,或者直接返回 410。
- 有價值但位置尴尬的頁面,放進相關的聚合頁、专题頁或推荐模块。
- 列表分頁、标簽頁這類天然聚合入口,保持可被爬取的普通連結形態,不要只靠 JS 渲染。
- 定期抽查内鏈,避免改版之後出現入口指向 404 的断鏈。
孤儿頁的問题本质上不在頁面本身,而在于它和站点结构脱了节。补上一條合理的内鏈,往往比反复提交 Sitemap 更有效。