先明确:sitemap 是发现入口,不是收录保证
很多人把 sitemap 当成“提交即收录”的通道,实际上它只是告诉搜索引擎有哪些 URL 可以抓取。抓取之后是否进入索引,还要看页面状态、内容质量、重复程度以及站点整体信号。所以当 sitemap 提交了却不收录,第一步不是反复提交,而是核对 URL 本身和页面信号是否一致。
第一步:核对 sitemap 中的 URL 是否能正常访问
从 sitemap 里抽 10 到 20 个未收录的 URL,逐条手动访问。不要只看浏览器里能不能打开,要确认最终返回的状态和最终地址。
需要记录的信息
- HTTP 状态码是否为 200
- 是否发生跳转,最终落在哪个 URL
- 页面正文是否与预期一致,而不是空壳或报错模板
- 是否需要登录、是否依赖 JavaScript 才能看到内容
如果 sitemap 里写的是 A 地址,访问后却跳到 B 地址,或者返回 404、5xx、软 404,那么这个 URL 本身就不适合作为收录目标。先修正 sitemap 或页面状态,再谈后续。
第二步:核对站内链接与 sitemap 是否指向同一个地址
这是最容易被忽略的一步。站内导航、列表页、相关推荐里如果链接到的是带参数、带大写、带结尾斜杠的版本,而 sitemap 提交的是另一个版本,搜索引擎会收到两套地址信号。
重点检查这些差异
- http 与 https 是否混用
- 带 www 与不带 www 是否同时出现
- 路径大小写是否一致
- 结尾斜杠有无不统一
- 跟踪参数、排序参数是否被站内链接大量使用
处理原则很简单:让站内链接、canonical、sitemap 三者尽量指向同一个 URL。如果暂时无法全部改完,至少保证主要入口链接和 sitemap 一致。
第三步:核对页面上的收录指令
有些页面在 sitemap 里,但页面本身却写着 noindex,或者被 robots.txt 屏蔽,又或者 canonical 指向了别的地址。这些冲突信号会让搜索引擎放弃收录当前 URL。
- meta robots:是否包含 noindex
- X-Robots-Tag:服务器响应头里是否带了 noindex
- canonical:是否指向了另一个 URL
- robots.txt:是否屏蔽了该目录或该参数
sitemap 提交一个 noindex 页面,本身就是矛盾信号。搜索引擎通常会优先相信页面上的 noindex,而不是 sitemap。
第四步:核对内容质量与页面角色
如果 URL 状态正常、指令也放行,但页面仍然不收录,就要看内容本身。常见情况包括:正文过短、模板重复度过高、聚合页只是罗列标题、多个页面之间高度相似、核心内容藏在图片或视频里而没有文字说明。
尤其要区分“工具页”“筛选页”“分页”和“内容页”。不是所有 URL 都值得被索引。把 sitemap 当成全站 URL 清单,往往会把大量低质或重复地址一起提交,反而稀释了真正重要页面的抓取机会。
第五步:核对抓取记录与索引状态
在服务器日志里查一下,搜索引擎蜘蛛最近有没有访问这些 URL。如果没有访问记录,说明问题可能出在发现环节,比如 sitemap 没被读取、站内链接太少、robots.txt 拦截了抓取。如果有访问记录,但索引状态一直不更新,则更可能是页面质量或重复问题。
搜索控制台里的“已发现,尚未编入索引”“已抓取,尚未编入索引”等状态可以作为参考,但不要只盯着状态反复提交。状态描述的是结果,不是原因。
一份可执行的核对顺序
- 从 sitemap 中选出 10 到 20 个未收录 URL。
- 逐条访问,记录状态码、跳转链和最终 URL。
- 对比站内链接、canonical 与 sitemap 地址是否一致。
- 检查 meta robots、X-Robots-Tag 和 robots.txt 是否放行。
- 判断页面内容是否与站内其他页面高度重复,是否属于低价值聚合。
- 查服务器日志,确认蜘蛛是否有抓取记录。
- 修正明显问题后,更新 sitemap 并保持稳定,不要一天内反复改动。
常见误区
- 认为 sitemap 越大越好,把参数页、重复页全部塞进去。
- 提交后立刻期待收录,忽略了抓取和索引本身需要周期。
- 只改 sitemap,不改站内链接和 canonical。
- 把 sitemap 当成收录保证,而不是发现渠道。
把 sitemap 当作一份需要维护的 URL 清单,而不是一次性任务。先保证地址一致、状态正常、指令放行,再关注内容是否值得被索引,通常比反复提交更有效。