当站点从单一域名扩展成主站、多个子域、备用域名甚至对象存储域名时,搜索蜘蛛面对的入口会变得分散。同一份内容可能被多个 host 指向,也可能因为某些子域长期不可达而白白消耗抓取机会。下面讨论的是如何把这些入口梳理清楚,让发现效率回到可控状态。
先分清哪些 host 真正需要被收录
梳理的第一步不是改代码,而是列清单。
- 主域名:对外宣传、内链指向、Sitemap 声明的唯一规范入口。
- 业务子域:如帮助中心、社区、商城,确有独立内容且需要被搜索到的,保留并单独维护 Sitemap。
- 备用或老域名:通常只做 301,不参与抓取。
- 测试与预发环境:一律用访问控制挡住,不要让它出现在任何公开链接里。
- CDN 与对象存储域名:只承载静态资源,不应出现在页面锚点或 Sitemap 中。
用日志和 Sitemap 反查入口分布
- 把一段时间内的抓取日志按 host 分组统计,看蜘蛛把请求花在了哪些域名上。
- 检查各 host 的返回码分布,长期 4xx、5xx 或超时的 host 基本是无效入口。
- 核对 Sitemap 与实际可抓的 host 是否一致,避免索引文件里混入已废弃的域名。
- 抽查页面源码中的内链,确认是否使用绝对 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 只有一个明确的来源,而不是一次性把所有域名都删掉。