搜索抓取

Sitemap 提交后蜘蛛不来抓:从文件到内链的排查顺序

Sitemap 提交后没有抓取,不一定是蜘蛛“偷懒”。本文按文件可读性、URL状态、robots 屏蔽、服务器响应、内链入口和日志验证的顺序,梳理常见卡点,帮助定位抓取未发生的实际原因,而不是反复提交。

搜索抓取

Sitemap 提交后蜘蛛不来抓:从文件到内链的排查顺序

把 Sitemap 提交给搜索引擎之后,蜘蛛没有立刻来抓,是站点运营里很常见的情况。提交动作只是把 URL 放进候选池,并不等于蜘蛛会按提交顺序逐一访问。与其反复提交,不如按顺序检查几个可能阻断抓取的环节。

先确认 Sitemap 本身能被正常读取

Sitemap 的访问状态是第一道门槛。如果文件返回 404、500,或者被 CDN、WAF 拦截,蜘蛛根本拿不到里面的 URL。

  • 用浏览器无缓存打开 Sitemap 地址,确认返回 200 且内容是 XML,而不是首页 HTML 或验证页。
  • 检查文件编码和 XML 结构,URL 中不要出现未转义的 & 等字符。
  • 确认 robots.txt 里声明了 Sitemap 地址,路径使用完整 URL。
  • 如果使用 Sitemap 索引文件,确认子文件都能被单独访问。

这一步可以用 curl 或浏览器开发者工具查看响应头和响应体,不要只看后台“提交成功”的提示。

Sitemap 里的 URL 是否允许抓取

Sitemap 只负责发现,不负责绕过 robots.txt。如果 URL 被 robots 屏蔽,蜘蛛可能不会抓取,或者抓取后不索引。需要逐项确认:

  • 目标 URL 返回 200,不是 404、410 或跳转链过长。
  • robots.txt 没有误屏蔽该目录或带参数的 URL。
  • 页面没有 noindex?noindex 不阻止抓取,但会让页面无法进入索引,容易和“不抓取”混淆。
  • canonical 指向的 URL 是否可访问,避免指向错误页面。
如果 URL 在 Sitemap 中但被 robots 屏蔽,日志里可能只看到对 robots.txt 的请求,看不到对目标页的抓取。

服务器响应与抓取频次

蜘蛛的抓取排期会受服务器稳定性影响。持续 5xx、超时或响应过慢,会降低回访意愿。可以看日志中蜘蛛请求的响应码和时间:

  • 5xx 比例高时,先修服务端错误,而不是反复提交 Sitemap。
  • 检查 CDN、WAF 是否对蜘蛛 UA 或 IP 段返回验证页、403。
  • 服务器负载高时,蜘蛛可能降低抓取速度,新 URL 的等待时间会变长。

如果日志里蜘蛛请求很少,且大量返回 403 或 503,问题通常在网络边缘,不在 Sitemap 本身。

内链入口比 Sitemap 更常用

Sitemap 是补充入口,蜘蛛日常抓取更多依赖站内链接。新页面如果只出现在 Sitemap,没有任何内链指向,抓取优先级通常较低。建议:

  • 从栏目页、相关文章、面包屑或聚合页给新页面至少一个可抓取的普通链接。
  • 链接使用 a 标签的 href,不要只用 JavaScript 点击事件。
  • 重要页面尽量放在离首页较近的抓取路径上。
  • 避免大量无意义链接稀释路径,让蜘蛛把注意力放在有效页面上。

用日志验证蜘蛛是否来过

排查到最后,日志是最直接的证据。按蜘蛛 UA 过滤,查看目标 URL 是否有请求记录、返回什么状态码、请求时间分布。如果完全没有记录,说明蜘蛛还没走到;如果有记录但状态码异常,按响应码修服务端或边缘配置。如果抓取了但未索引,再看内容质量和重复问题。

整个过程不需要反复提交 Sitemap。先把文件、URL 状态、robots、服务器响应和内链入口逐项确认,再用日志验证,通常能定位到具体卡点。蜘蛛是否抓取、何时抓取,最终由搜索引擎决定,站点能做的是减少明显阻碍。