Sitemap 常被当成“提交了就会抓”的开关,但它实际提供的是一份候选 URL 清单:抓不抓,仍取决于站点可达性、内链权重和抓取预算。如果 Sitemap 里的页面长期没有出现在抓取日志中,按下面的顺序排查,通常比继续往文件里加页面更有效。
先确认蜘蛛是否真的读到了文件
- 在服务器日志中按路径过滤 sitemap.xml 及分片文件,观察是否有搜索蜘蛛的请求记录,以及返回码是否为 200。
- 检查 robots.txt 是否误屏蔽了 Sitemap 所在目录,或整体规则拦住了站点页面,导致文件能提交但内容被挡。
- 确认文件没有启用登录、验证码、浏览器校验或按 UA 拦截等访问限制。
- 站点存在多域名、多子域时,核对提交的地址与实际提供内容的地址是否一致。
再检查文件本身能否被正常解析
- 单个文件的 URL 数量建议控制在 5 万条以内,未压缩体积不超过 50MB,超出应拆分并用 sitemap index 引用。
- XML 需格式正确,标签闭合、无非法字符,编码声明与实际编码保持一致。
- lastmod 使用规范的时间格式并带上时区,长期写死或频繁无意义地改动,都会削弱它的参考价值。
- 启用 gzip 压缩时确认响应头设置正确,否则部分抓取端可能直接判定文件损坏。
URL 是否与站点当前状态一致
- Sitemap 中只放返回 200 的规范 URL,避免混入会 301、302 跳转或返回 404、410 的地址。
- 同一内容只保留一种形态,尾斜杠、大小写、参数顺序应与 canonical 及站内链接保持一致。
- 已被 noindex 的页面不必再放进 Sitemap,两种信号会互相抵消。
- 批量改版后,先确认重定向链只有一跳,再同步更新 Sitemap。
内链仍然是抓取分配的主要依据
即使 Sitemap 被正常读取,蜘蛛对页面的抓取优先级更多来自内链结构。可以从两个角度自查:
- 核心页面能否从首页或频道页在 2 到 3 次点击内到达,路径是否唯一且稳定。
- 重要页面是否只存在于 Sitemap 中,站内没有任何入口,这类页面被访问的频率通常偏低。
把 Sitemap 当作补充发现渠道,把内链当作主要发现路径,分工清晰之后,抓取覆盖更容易稳定下来。
服务器响应是否拖累了抓取节奏
- 观察抓取高峰期的返回码分布,5xx 与超时过多会迫使抓取速率被动下降。
- 避免短时间内返回大量 429,速率限制最好与站点实际承载能力匹配。
- 首字节时间过长时,优先优化服务端处理与缓存策略,而不是反复重新提交 Sitemap。
排查顺序建议从“能不能访问”开始,再到“能不能解析”,最后才是“值不值得抓”。顺序颠倒,容易在错误的环节反复调整。
一份可执行的排查清单
- 日志中确认抓取记录与返回码
- robots.txt 与访问权限检查
- Sitemap 格式、体积、编码校验
- 抽样 URL 的状态码与 canonical 一致性
- 关键页面的内链入口与点击深度检查
- 服务器响应时间与错误率观察
- 调整后持续观察抓取日志,再做下一步判断