网站收录

站点地图提交了却没动静:sitemap 的失效原因与自查顺序

站点地图提交后迟迟没反应,多数时候不是文件失效,而是里面混进了不该抓的 URL,或 lastmod 长期失真。本文按「文件可达—内容干净—时间戳可信—提交后看日志」的顺序,梳理 sitemap 常见的失效原因与自查方法,并说明它与内链、URL 发现之间的关系。

网站收录

站点地图提交了却没动静:sitemap 的失效原因与自查顺序

很多站点把 sitemap 当成“提交收录”的开关:文件生成好、在后台点一下提交,就等着收录上涨。实际观察下来,sitemap 能做的只是把 URL 主动放进蜘蛛的候选队列,它既不改变页面质量,也不保证抓取和索引。所以“提交了没反应”往往不是 sitemap 失效,而是文件里塞了蜘蛛不该抓的东西,或者页面本身还不满足收录条件。

先分清 sitemap 解决的是哪一步

URL 从被发现到进入索引,中间至少有三步:被发现、被抓取、被建索引。sitemap 只对第一步有直接帮助,而且只是众多发现渠道之一,内链、外链、历史抓取记录同样会贡献新 URL。把 sitemap 当作“加速收录”的工具,预期一开始就偏了。

文件本身要能被正常读到

这一步最简单,也最容易被忽略。建议逐个确认:

  • 地址可公开访问,返回 200,不是 301 跳转、不是登录后才能看到。
  • 内容是合法的 XML,编码统一,不要出现半截截断的标签。
  • robots.txt 里用 Sitemap 字段声明绝对地址,方便蜘蛛顺带发现。
  • 单个文件不超过 5 万条 URL、未压缩体积不超过 50MB,超了就拆成 sitemap index。
  • 如果用了 gzip,文件名和响应头要一致,别让抓取端解压失败。

文件里该放什么 URL

sitemap 的定位是“这些地址我希望被收录”。只要混入不该收录的地址,整份文件的可信度就会下降,抓取量也会被浪费。

  • 只放返回 200 且允许索引的页面;不要把 301、404、410 的地址留在里面
  • 被 robots.txt 屏蔽或被 meta robots 标为 noindex 的 URL 不要放,两者信号互相矛盾。
  • canonical 指向别的页面的地址,尽量换成规范版本本身。
  • 带 session、排序、筛选等参数的重复变体,先做归一化再决定是否收录。

lastmod 别随手写

lastmod 是一个“可选但容易被滥用”的字段。如果每次生成 sitemap 都把全站时间戳刷成当天,蜘蛛很快会学会忽略它,真正更新的页面反而得不到优先抓取。

lastmod 只在页面正文或主要结构确实变化时更新;模板改动、导航调整、页脚换文案,都不算。

提交之后该看什么

提交完就别盯着“收录数”看了,先看更靠前的信号:

  1. 服务器日志里,抓取端有没有按预期访问 sitemap 文件本身,频率是否正常。
  2. 日志中新出现的 URL 是不是来自 sitemap,还是主要靠内链带动。
  3. 后台的 sitemap 报告里,是否存在“无法读取”“包含被屏蔽地址”等提示。
  4. 索引覆盖率里,这些 URL 是停在“已发现”,还是进入了“已抓取未索引”。

后面两种状态的排查方向完全不同:前者是发现与预算问题,后者更多是页面质量与重复内容问题。

sitemap 替代不了内链

蜘蛛顺着内链走,能同时获得上下文和层级信息;sitemap 给不出这些。一个只存在于 sitemap、站内没有任何入口的地址,即使被抓过一次,后续也很难持续获得抓取。重要页面应该同时具备内链入口和 sitemap 记录,而不是二选一。

一份可用的自查顺序

  1. 直接打开 sitemap 地址,确认状态码、格式和内容完整。
  2. 抽查若干 URL,逐个看返回码、robots 状态、canonical 指向。
  3. 核对 lastmod 是否与实际更新时间一致。
  4. 确认文件条数和体积在上限内,必要时拆分。
  5. 提交后用日志验证抓取端确实来过,再判断问题出在发现、抓取还是索引环节。

把这几步走完,多数“提交了没动静”的情况都能定位到具体环节。至于最终是否收录,仍然取决于页面本身能不能回答用户的搜索需求,这一点没有任何提交入口可以替代。