网站收录

sitemap 提交了却没动静:常见无效提交与自查顺序

sitemap 只负责把 URL 告诉搜索引擎,既不保证抓取,也不保证收录。提交后长期没动静,问题多半出在清单本身:混入跳转、noindex、被屏蔽或重复的地址,格式与规模出错,或把全站低质页面一并提交。本文梳理无效提交的常见形态,并给出一份从抽样检查到日志核对的排查顺序。

网站收录

sitemap 提交了却没动静:常见无效提交与自查顺序

不少人把 sitemap 当成收录开关:提交之后,就等着页面出现在索引里。实际上,sitemap 只负责一件事——把 URL 告诉搜索引擎,让它更容易被发现。它既不保证被抓取,更不保证被索引。

如果提交之后长时间没有动静,问题往往不在“提交”这个动作,而在这份 URL 清单本身,或者被提交的页面暂时还不具备进入索引的条件。

先分清:sitemap 解决的是“发现”,不是“收录”

爬虫处理一条 URL 大致会经过三个阶段:发现、抓取、索引。sitemap 只作用在第一个阶段。它让 URL 进入待抓取队列,但抓不抓、什么时候抓、抓完之后收不收,都由别的因素决定。

所以看到“已发现,尚未编入索引”这类状态时,说明 sitemap 已经起了作用,URL 也确实被看到了。此时再怎么改 sitemap、再提交几次,都不会让页面往前走一步。

常见无效提交的几种形态

1. 清单里混进了不该提交的 URL

  • 返回 404、410 的已删除页面
  • 发生 301、302 跳转的旧地址,而不是跳转后的最终地址
  • 被 robots.txt 屏蔽的路径
  • 设置了 noindex 的页面
  • canonical 指向其他 URL 的重复版本
  • 同一内容带上跟踪参数、会话参数后的多个变体

这些 URL 提交上去通常不会报错,但也不会有结果,还会稀释整份清单的信噪比,让爬虫把配额花在无效地址上。

2. 格式与规模上的细节

  • 单个 sitemap 文件建议不超过 5 万条 URL、未压缩不超过 50MB
  • 站点较大时用 sitemap index 拆成多个子文件,而不是硬塞进一个
  • URL 要写完整的绝对地址,包含协议与域名
  • gzip 压缩的文件需要保留 .gz 后缀,纯文本则一行一条

这些属于基础要求,出错时往往表现为“文件读取失败”或“URL 数量异常”,比较容易在报告里直接看到。

3. 内容层面:全量不等于有效

把站点所有 URL 一并塞进去,包括分页、筛选、站内搜索结果页、空标签页,是另一个常见问题。这些页面本身可索引价值有限,大量提交只会让爬虫在低价值地址之间来回消耗预算,反而拖慢真正重要页面的抓取节奏。清单不是越全越好,而是越准越好。

4. 放置与声明的位置

sitemap 需要在 robots.txt 中声明,或在搜索平台的相应入口提交。子域名通常要各自提交,不要把多个子域的内容混在一个文件里,也不要把其他域名的 URL 写进来。位置错了,爬虫可能根本读不到。

一份自查顺序

  1. 从 sitemap 里随机抽 20 条 URL,逐条手动打开,看状态码、是否有 noindex、canonical 指向哪个地址。
  2. 检查 robots.txt,确认没有误屏蔽这些路径。
  3. 确认清单里的地址与站内实际可抓取的规范版本一致,跳转地址换成最终地址。
  4. 查看搜索平台后台的 sitemap 报告,关注是否读取成功、发现了多少条、其中多少处于“已发现,尚未编入索引”。
  5. 翻服务器日志,确认爬虫是否真的抓取过 sitemap 文件本身,以及抓取频率是否正常。
  6. 对长期不收录的页面,回到内容本身判断:是否有独立价值、是否与站内其他页面高度重复。

提交之后该关注什么信号

第一,日志里有没有对 sitemap 文件的抓取记录;第二,报告里对 URL 的读取与发现数量是否对得上;第三,这些 URL 后续有没有被抓取、有没有进入索引。

如果状态长期停在“已抓取,尚未编入索引”,说明抓取这一环已经通了,问题出在页面质量或重复判断上。此时继续调整 sitemap 意义不大,重点应放在内容差异化和页面本身是否值得被收录。

sitemap 是告知,不是请求收录。它能加快 URL 被发现的速度,但替代不了页面自身的可索引条件。