站点做大之後,内容常常被拆到多個子域名上:博客一個、帮助中心一個、商城一個、活動頁又一個。對用戶来说這没什么問题,但對搜尋蜘蛛来说,每多一個子域名,就多一套需要單獨發現、單獨建立抓取路径的入口。结果往往是主站抓得勤,子站几天才来一次,新頁面迟迟進不了抓取队列。
這篇文章讨论的是:在多子域名结构下,如何把分散的抓取入口聚合起来,让内鏈和 Sitemap 一起把蜘蛛引到该去的地方。
為什么子域名會分散抓取入口
蜘蛛對每個主机名(host)的處理是相對獨立的。它需要重新解析 DNS、重新建立连接、重新判断 robots.txt 規則,抓取配額也往往按主机分別計算。子域名越多,單個主机分配到的抓取频次就越稀薄。
更麻烦的是,如果子域名之間几乎没有互鏈,蜘蛛只能靠外部連結或 Sitemap 偶然發現它們,路径是断的。断掉的路径不會报错,只會安静地不抓。
先把抓取入口理清楚
確認哪些子域名需要被抓
- 静態资源域(图片、CSS、JS)通常不需要被抓,應通過 robots.txt 明确排除,避免浪費配額。
- 測試域、预發布域、舊版域名應完全屏蔽,或直接下线解析。
- 真正承载内容的子域名,才值得花力气做入口聚合。
给每個内容子域一個明确的主入口
主域的導航、頁脚或站内搜尋入口,應当能稳定地連結到每個内容子域的核心列表頁。這個連結不需要很多,但要在全站范围内可见,而不是藏在某個活動頁的角落里。
内鏈收口:让抓取路径回到主干
入口聚合的關键不是“多给連結”,而是让連結方向有規律。可以按下面的顺序做一轮梳理:
- 确定一個主域,作為抓取路径的主干。
- 在各子域頁面顶部或底部,保留一條返回主域對應频道或首頁的連結,形成回环。
- 子域内部保持清晰的层級:列表頁 → 詳情頁 → 相關推荐,避免詳情頁之間互相乱鏈。
- 對不再更新的子域,把内容迁移到主域並做 301,而不是保留两份。
- 检查導航與頁脚連結是否為静態可抓取的 a 标簽,別让它們依赖脚本渲染。
回环連結的意义在于:蜘蛛從任何一個子域進来,都能顺着連結走到主域,再從主域走到其他子域。路径连通之後,抓取就不再依赖偶然。
Sitemap 與内鏈的双通道校驗
Sitemap 是声明,内鏈是實际路径,两者對不上就說明有問题。可以定期做一次對照:
- Sitemap 里列出、但没有任何内鏈指向的 URL,属于孤立頁,蜘蛛即使抓到也很难判断它的重要性。
- 内鏈里大量出現、但不在任何 Sitemap 中的 URL,可能是被忽略的栏目或參數頁,需要確認是否有意保留。
- 各子域分別维護自己的 Sitemap,並在主域的 Sitemap 索引中匯總,方便统一提交與观察。
對照不需要很频繁,按内容更新节奏一個月或一個季度做一次即可。重点看的是趋势,而不是某一天的绝對數量。
服務器稳定性决定路径能不能走完
路径再清晰,如果服務器响應不稳定,抓取也會中断。子域分散时尤其要注意几点:各子域的响應速度尽量接近,避免某個子域長期超时導致整條路径被降低訪問频率;不要把不同子域指向同一台负载過高的机器;抓取高峰期的带宽和连接數要留有冗余。
抓取路径不是一次性设計出来的,而是在蜘蛛反复訪問、站点持續响應的過程中逐步稳定下来的。
观察與迭代
可以结合服務器日誌观察几個信号:各子域被訪問的频次是否均衡;新發布頁面的首次抓取平均需要多久;回环連結是否真的被跟随。如果某個子域長期只有首頁被抓,多半是入口太弱或者内容没有更新,先從這里查起。
入口聚合、内鏈收口、Sitemap 校驗和服務器稳定,這四件事單獨做都不會有立竿见影的效果,但组合起来能让蜘蛛的抓取路径變得连贯。连贯的路径意味着更可预期的抓取节奏,這對長期运营的站点来说,比短期的抓取量波動更有價值。