很多站长把 sitemap 当成收录开关:文件提交上去,就等着页面进索引。等了一两周没动静,又怀疑是 sitemap 没被读到。实际上 sitemap 只是一份候选清单,它影响 URL 被发现的速度和覆盖面,不决定蜘蛛是否来抓,更不决定最终是否进入索引。
sitemap 能做什么,不能做什么
它能做的事很明确:告诉搜索引擎这些 URL 存在,给站内链接之外的页面一个入口,尤其是新建页面和层级较深的页面。它不能做的事同样明确:不保证抓取,不保证收录,也不参与排名。把这些期待压在 sitemap 上,后面判断问题时就容易找错方向。
一条 URL 的完整链路
从提交到出现在索引里,中间大致要经过这几步,任何一步卡住,结果都是“没收录”。
- 发现:sitemap、站内链接、外部链接或提交接口中的任意一种,让 URL 进入候选集合。
- 抓取排队:结合站点抓取预算和页面优先级,决定什么时候来抓。
- 抓取:返回状态码是否 200、响应是否超时、robots 是否允许。
- 渲染:如果正文依赖 JS 生成,需要确认渲染后内容是否拿得到。
- 索引判断:内容质量、是否与已有页面高度相似、canonical 指向哪里。
- 结果:进入索引,或停留在“已抓取未编入索引”“已排除”等状态。
问题通常卡在哪一步
卡在发现
sitemap 长期没更新,新页面既不在 sitemap 里,也没有任何站内链接指向,蜘蛛自然没有理由知道它存在。这类 URL 需要先解决入口问题,再谈收录。
卡在抓取
服务器返回 5xx、响应过慢、或者被 robots.txt 挡住,都会让抓取直接失败。此时索引报表里往往看不到该 URL,或者显示为抓取异常。
卡在索引判断
抓取正常但一直停在“已抓取但未编入索引”,通常指向内容层面的问题:正文过薄、模板重复度高、与其他页面相似,或者 canonical 指向了另一个地址。这一步和 sitemap 已经没有关系了。
提交之后的合理自查顺序
- 确认 sitemap 可以正常访问,格式无误,里面放的是最终规范地址,且都返回 200。
- 用抓取工具或渲染后的 HTML,看蜘蛛实际能拿到什么正文。
- 查看服务端日志,确认蜘蛛是否真的访问过,访问频率如何。
- 对照索引状态,区分是“未抓取”“已抓取未索引”还是“已排除”,不同类别处理方式不同。
- 给新页面补上至少一条站内链接入口,别让 sitemap 成为唯一通道。
提交只是通知,收录是判断结果。把这两件事分开看,排查会清楚很多。
几个容易踩的坑
- sitemap 里混入 404、重定向、noindex 的 URL,浪费抓取额度。
- sitemap 体量巨大却长期不变,新增页面没能及时进去。
- 只依赖 sitemap,站内没有任何链接指向新页面。
- 同一批未收录 URL 反复提交,却不检查内容和状态码。
把 sitemap 放回它本来的位置:它是发现渠道之一,需要和内链、内容质量、正确的状态码配合使用。至于多久能被收录,不同站点差异很大,不必盯着某个具体天数反复折腾,把能控制的部分做对更实际。