站点做大之后,内容常常被拆到多个子域名上:博客一个、帮助中心一个、商城一个、活动页又一个。对用户来说这没什么问题,但对搜索蜘蛛来说,每多一个子域名,就多一套需要单独发现、单独建立抓取路径的入口。结果往往是主站抓得勤,子站几天才来一次,新页面迟迟进不了抓取队列。
这篇文章讨论的是:在多子域名结构下,如何把分散的抓取入口聚合起来,让内链和 Sitemap 一起把蜘蛛引到该去的地方。
为什么子域名会分散抓取入口
蜘蛛对每个主机名(host)的处理是相对独立的。它需要重新解析 DNS、重新建立连接、重新判断 robots.txt 规则,抓取配额也往往按主机分别计算。子域名越多,单个主机分配到的抓取频次就越稀薄。
更麻烦的是,如果子域名之间几乎没有互链,蜘蛛只能靠外部链接或 Sitemap 偶然发现它们,路径是断的。断掉的路径不会报错,只会安静地不抓。
先把抓取入口理清楚
确认哪些子域名需要被抓
- 静态资源域(图片、CSS、JS)通常不需要被抓,应通过 robots.txt 明确排除,避免浪费配额。
- 测试域、预发布域、旧版域名应完全屏蔽,或直接下线解析。
- 真正承载内容的子域名,才值得花力气做入口聚合。
给每个内容子域一个明确的主入口
主域的导航、页脚或站内搜索入口,应当能稳定地链接到每个内容子域的核心列表页。这个链接不需要很多,但要在全站范围内可见,而不是藏在某个活动页的角落里。
内链收口:让抓取路径回到主干
入口聚合的关键不是“多给链接”,而是让链接方向有规律。可以按下面的顺序做一轮梳理:
- 确定一个主域,作为抓取路径的主干。
- 在各子域页面顶部或底部,保留一条返回主域对应频道或首页的链接,形成回环。
- 子域内部保持清晰的层级:列表页 → 详情页 → 相关推荐,避免详情页之间互相乱链。
- 对不再更新的子域,把内容迁移到主域并做 301,而不是保留两份。
- 检查导航与页脚链接是否为静态可抓取的 a 标签,别让它们依赖脚本渲染。
回环链接的意义在于:蜘蛛从任何一个子域进来,都能顺着链接走到主域,再从主域走到其他子域。路径连通之后,抓取就不再依赖偶然。
Sitemap 与内链的双通道校验
Sitemap 是声明,内链是实际路径,两者对不上就说明有问题。可以定期做一次对照:
- Sitemap 里列出、但没有任何内链指向的 URL,属于孤立页,蜘蛛即使抓到也很难判断它的重要性。
- 内链里大量出现、但不在任何 Sitemap 中的 URL,可能是被忽略的栏目或参数页,需要确认是否有意保留。
- 各子域分别维护自己的 Sitemap,并在主域的 Sitemap 索引中汇总,方便统一提交与观察。
对照不需要很频繁,按内容更新节奏一个月或一个季度做一次即可。重点看的是趋势,而不是某一天的绝对数量。
服务器稳定性决定路径能不能走完
路径再清晰,如果服务器响应不稳定,抓取也会中断。子域分散时尤其要注意几点:各子域的响应速度尽量接近,避免某个子域长期超时导致整条路径被降低访问频率;不要把不同子域指向同一台负载过高的机器;抓取高峰期的带宽和连接数要留有冗余。
抓取路径不是一次性设计出来的,而是在蜘蛛反复访问、站点持续响应的过程中逐步稳定下来的。
观察与迭代
可以结合服务器日志观察几个信号:各子域被访问的频次是否均衡;新发布页面的首次抓取平均需要多久;回环链接是否真的被跟随。如果某个子域长期只有首页被抓,多半是入口太弱或者内容没有更新,先从这里查起。
入口聚合、内链收口、Sitemap 校验和服务器稳定,这四件事单独做都不会有立竿见影的效果,但组合起来能让蜘蛛的抓取路径变得连贯。连贯的路径意味着更可预期的抓取节奏,这对长期运营的站点来说,比短期的抓取量波动更有价值。