什么是孤儿頁面
孤儿頁面指的是站内没有任何一個可被蜘蛛抓到的頁面通過連結指向它的 URL。它往往能正常打開、内容也完整,甚至曾经被收錄過,但原有入口一旦被删掉或改版替換,它就只剩一個地址孤零零地存在。
很多人以為只要 URL 能訪問、又放進了 sitemap,蜘蛛就一定會發現。實际上發現路径是多條並行的,sitemap 只是其中一條,而且它對頁面重要性的传递作用有限。
孤儿頁面通常在哪些操作後出現
- 改版或栏目調整时,舊頁面從導航和列表頁里被拿掉,既没做跳轉,也没在其他相關頁面补連結。
- CMS 自動生成的頁面,比如作者頁、附件頁、打印頁、早期分頁,只存在于資料库里,前端没有入口。
- 商品或文章下架後又恢复,恢复时没有回到原来的列表位置。
- 連結只在移動端或某個篩選條件下才出現,其他路径都取不到。
- 活動頁上线时挂在首頁,活動結束後入口撤掉,頁面本身還留在服務器上。
怎么把孤儿頁面找出来
基本思路是拿“站内實际存在的 URL 集合”和“蜘蛛能顺着連結走到的 URL 集合”做對比,差集就是候選名單。
- 從 CMS 或資料库導出全部 URL,或者至少先用 sitemap 整理一份全集。
- 用爬虫工具從首頁開始爬,只跟随站内連結,導出可達 URL 清單。
- 两邊做差集,再排除掉本来就该屏蔽的後台、接口和參數頁。
- 用訪問日誌交叉驗證:如果某個 URL 長期只有直接訪問、几乎没有来自站内的 referrer,嫌疑就更大。
站点規模不大的话,還有個笨办法:在站内搜尋框里搜頁面标题,搜不到入口,基本可以確認没有内鏈。
找到之後,先决定保留還是清理
不是所有孤儿頁面都值得救。建议按這個顺序判断:
- 頁面有没有獨立的搜尋需求、有没有可讀的正文價值?有價值,就考虑保留並补鏈。
- 只是因為分頁或篩選才存在、内容又和主頁面高度重复?更合理的做法是收敛,而不是硬塞内鏈。
- 已经過期、下架、没有内容可看的?做 404 或 410,或者跳轉到最相關的替代頁,別让它繼續挂在 sitemap 里。
补内鏈时的几個注意点
- 連結要放在蜘蛛能爬到的頁面里,用普通 a 标簽,別只寫在 JS 事件里。
- 锚文本和上下文要跟目标頁主题相關,避免在大量不相關頁面底部堆全站連結。
- 優先补重要頁面,把有限的抓取预算留给真正有價值的 URL。
- 补完之後不要马上期待收錄變化,抓取和索引本身存在先後與延迟。
sitemap 能替代内鏈吗
不能完全替代。sitemap 更像是在说“這里還有一批 URL”,但它不传递頁面重要性和上下文關系。對重要頁面来说,内鏈仍然是更可靠的發現路径,sitemap 更适合做兜底和批量提交。
把 sitemap 当作补漏清單,而不是结构問题的解决方案。
別和“已發現但未抓取”混淆
孤儿頁面和“已發現但未抓取”是两回事。前者是入口缺失,蜘蛛可能压根不知道這個 URL 存在;後者是蜘蛛已经知道,只是還没排上抓取。前者要在站点结构上补鏈,後者更多和抓取预算、頁面優先級有關。诊断时先翻日誌確認這個 URL 到底有没有出現過,再决定往哪個方向處理。
小结
孤儿頁面的核心問题是“没有入口”,而不是“頁面打不開”。定期用可達 URL 和全站 URL 做一次差集,把该保留的补上内鏈、该收敛的做跳轉或移除,比事後盯着收錄报表找原因要省事得多。