一个 5 万页的 SaaS 文档站,sitemap 之前只有 40% 的页面被收录。我们按内容类型拆成 18 个分片、给 lastmod 立了规矩,8 周后收录率到 78%。分片不是玄学,有三条能落地的规则。
我们接手的那个站
2025 年 11 月接的一个开发者工具客户,站点 5 万页左右:文档 3.2 万页、博客 6000 页、产品页 800 个、剩下的是一堆版本归档和参数页。
当时只有一份 sitemap.xml,5 万条 URL 塞在一个文件里,lastmod 全部写成抓取当天。Google Search Console 显示已发现 5 万条、已收录 2.1 万条,百度那边更差,收录不到 1.5 万。
规则一:按内容类型分,不按日期分
第一版分片我们按月份拆,每个月一个 sitemap。结果证明这是错的:文档页和博客页混在一起,版本归档页和老文档混在一起,搜索引擎没法判断哪个分片值得优先抓。
第二版改成按内容类型拆:docs、blog、product、changelog、archive 五个大类,docs 再按产品模块拆成 12 份,一共 18 个分片,外面套一个 sitemap index。
改完第二周,GSC 里"已发现"从 5 万涨到 4.9 万(之前有一部分根本没被发现),文档页的抓取频次涨了 2 倍。
规则二:单文件不超过 3 万条,留余量
协议上限是单文件 5 万条,但我们建议控制在 3 万以内。原因很简单:文件越大,解析越慢,出错的概率越高。
这个站的文档分片每个控制在 1.5 万到 2 万条,18 个文件加起来不到 600KB。搜索引擎的抓取和解析都很顺。
还有一条:sitemap 文件本身不要做 gzip 之外的压缩,不要加登录鉴权,不要 301。我们见过一个客户把 sitemap 放在需要登录的 CDN 后面,蜘蛛拿到的是 403,白等了三个月。
规则三:lastmod 只写真实更新时间
这个站的 lastmod 之前全写抓取当天,等于告诉搜索引擎"所有页面每天都在变"。结果搜索引擎不再相信这个字段,抓取优先级完全按别的信号走。
改成真实更新时间之后:只有内容实质变更的页面才更新 lastmod,模板调整、样式修改不算。改完第六周,GSC 里"已发现未收录"从 2.8 万降到 9000。
一次失败:分片后忘了更新索引
第一版上线时我们只提交了 18 个子 sitemap,忘了更新 sitemap index 里的引用。搜索引擎三天没发现新分片,我们以为分片没用,差点回滚。
教训:分片上线后必须验证三件事——index 能访问、index 里的子文件都能访问、每个子文件里的 URL 都能打开。我们后来写了个脚本,每次发布跑一遍,5 分钟。
判断
sitemap 分片不是给搜索引擎看的"提交动作",是给抓取排优先级的"结构声明"。内容类型清楚、文件大小可控、lastmod 可信,这三件事做到,收录率自然上来。
5 万页以下的站,其实一份 sitemap 就够。分片是给大站和内容类型复杂的站准备的,别为了"看起来规范"过度拆分。
元析智能
为软件公司做 SEO 和 GEO 优化