很多站点把 sitemap 当成收录开关:文件生成、提交、等结果。它的实际定位更接近一份「推荐清单」,作用是帮搜索引擎更快发现 URL,至于抓不抓、收不收,仍取决于页面本身和站点整体质量。
sitemap 只解决「发现」这一环
搜索引擎发现 URL 的主要途径仍是站内链接。sitemap 的价值在于补上链接覆盖不到的部分:新发布的页面、层级很深的页面、内链较少但确实有价值的页面。它不会让低质量页面被收录,也不会绕过 noindex 或 robots.txt 的限制。
所以「sitemap 里的 URL 数和索引数对不上」是常态。两者本就不是同一口径:前者是你声明的候选集合,后者是搜索平台判断后的结果。
哪些 URL 该放进去
- 返回 200,内容对用户有实际价值
- 页面自身可索引,没有 noindex,也没被 robots.txt 屏蔽
- canonical 指向自己,或明确指向另一个规范版本(此时放规范版本即可)
- 主要靠 JS 渲染的页面,服务端最好能返回基础内容
反过来,这些不适合放:重定向地址、404 或 410 页面、被 noindex 的页面、筛选和排序参数组合出的临时 URL、纯占位或空壳页。把明显不该收录的 URL 塞进去,除了浪费抓取配额,也会让整份文件的数据变得不可信。
格式和规模上的几个坑
- 单个 sitemap 有 5 万条 URL、50MB 未压缩的上限,超过就用 sitemap index 分片
- 地址要用绝对 URL,参数和特殊字符按规范编码
- lastmod 要反映真实修改时间,不要每次生成都刷成当天
- 有多个 sitemap 时,确认 index 文件里都列全,且每个子文件能正常访问
怎么判断 sitemap 有没有被用上
最直接的方法是看抓取日志。一是 sitemap 文件本身有没有被定期抓取;二是其中那些主要靠 sitemap 暴露的 URL,之后有没有出现抓取记录。如果文件很久没被访问,先检查是否被 robots.txt 误屏蔽、文件是否可访问、提交位置是否正确。
搜索平台后台的 sitemap 报告会给已发现 URL 数和格式错误提示,可以对照着修,但报告里的数字不直接等于收录量,把它当成「提交是否成功」的检查项更合适。
它替代不了内链
一个只在 sitemap 里出现、站内没有任何入口的页面,即使被发现,抓取优先级通常也很低。正常做法是:先保证重要页面能从导航、列表页或正文链接点到,再用 sitemap 补漏。两者是叠加关系,不是替代关系。
一个可执行的核对顺序
- 确认 sitemap 文件可访问、格式无误,并已在后台提交
- 核对 robots.txt 没有屏蔽 sitemap 及其中的 URL
- 用抓取日志确认文件被访问,并观察其中 URL 是否被逐步抓取
- 对长期只出现在 sitemap、始终没被抓取的页面,回头补内链或评估内容价值
- 定期清理已失效、已改版重定向、已 noindex 的旧条目
sitemap 是基础设施,不是加速按钮。把它维护干净、和站内链接配合好,URL 发现会顺一些;指望靠它单独解决收录问题,往往会失望。