搜尋抓取

搜尋蜘蛛抓取:多子域與备用域名入口分散的梳理方法

当站点從單一域名扩展為主站、多個子域和备用域名後,搜尋蜘蛛面對的入口會變得分散,無效 host 會消耗抓取机會。本文從 host 清單、日誌與 Sitemap 反查、連結與重定向收敛、解析與證书稳定性四個方面,给出一套可执行的入口整理思路。

搜尋抓取

搜尋蜘蛛抓取:多子域與备用域名入口分散的梳理方法

当站点從單一域名扩展成主站、多個子域、备用域名甚至對象存储域名时,搜尋蜘蛛面對的入口會變得分散。同一份内容可能被多個 host 指向,也可能因為某些子域長期不可達而白白消耗抓取机會。下面讨论的是如何把這些入口梳理清楚,让發現效率回到可控狀態。

先分清哪些 host 真正需要被收錄

梳理的第一步不是改代碼,而是列清單。

  • 主域名:對外宣传、内鏈指向、Sitemap 声明的唯一規范入口。
  • 业務子域:如帮助中心、社区、商城,确有獨立内容且需要被搜尋到的,保留並單獨维護 Sitemap。
  • 备用或老域名:通常只做 301,不參與抓取。
  • 測試與预發环境:一律用訪問控制挡住,不要让它出現在任何公開連結里。
  • CDN 與對象存储域名:只承载静態资源,不應出現在頁面锚点或 Sitemap 中。

用日誌和 Sitemap 反查入口分布

  1. 把一段時間内的抓取日誌按 host 分组統計,看蜘蛛把請求花在了哪些域名上。
  2. 检查各 host 的返回碼分布,長期 4xx、5xx 或超时的 host 基本是無效入口。
  3. 核對 Sitemap 與實际可抓的 host 是否一致,避免索引文件里混入已废弃的域名。
  4. 抽查頁面源碼中的内鏈,確認是否使用绝對 URL,以及绝對 URL 指向的是哪個 host。

這一步做完,通常能發現两類問题:一類是本该被抓的 host 没有入口,另一類是不该被抓的 host 反而占了不少請求。

入口收敛:让連結、Sitemap、重定向说同一件事

收敛的核心是“唯一”。同一份内容只保留一個規范 host,其余入口用 301 指向它。

  • 站内連結统一使用绝對地址,並指向規范 host,避免相對連結在不同子域下解析出不同结果。
  • Sitemap 按 host 拆分或合並时,只列需要被抓的 URL,不要顺手把备用域名也寫進去。
  • 跨子域跳轉如果是常態,可以考虑用主域下的路径替代子域,减少 host 切換带来的額外解析與连接開销。
  • 老域名上的 301 要指向最终地址,不要在主域與备用域之間来回跳。

服務器與解析层面的稳定性

多 host 结构對稳定性的要求更高,因為任何一個 host 異常都會單獨影响一批入口。

  • 確認每個對外 host 的 DNS 解析指向正确且稳定,不要在不同线路下指向不同源站。
  • 證书覆盖所有對外 host,包括带 www 與不带 www 的寫法,避免握手失敗造成抓取中断。
  • 關注各 host 的响應時間差异,某個 host 明顯偏慢时,整体抓取节奏也會被拖低。
  • 定期检查是否有 host 已经下线却仍被内鏈引用,這類連結會持續产生無效請求。

观察收敛後的效果

調整之後不建议立刻下结论。按周對比抓取日誌中的 host 分布,看無效 host 的占比是否下降、内容頁的抓取請求是否回升。如果某些子域的抓取量被压缩過多,再判断是入口确實被收敛了,還是 Sitemap 與内鏈漏掉了應有的入口。

入口整理是長期的维護動作,重点是让每個 URL 只有一個明确的来源,而不是一次性把所有域名都删掉。