搜索抓取

Sitemap 列了、内链没指的 URL,蜘蛛会怎么处理

Sitemap 和内链是蜘蛛发现与抓取 URL 的两条线。Sitemap 负责把 URL 递到蜘蛛面前,内链决定蜘蛛愿不愿意顺着走、走多深。两者不一致时,常见结果是“已发现未抓取”或抓取频率很低。本文拆解几种典型情况,并给出检查与收口思路。

搜索抓取

Sitemap 列了、内链没指的 URL,蜘蛛会怎么处理

做站点抓取排查时,常遇到一种情况:Sitemap 里明明列了某个 URL,站内却没有任何链接指向它。有人会问,既然 Sitemap 已经告诉蜘蛛了,为什么它还是不来抓,或者抓了一次就再也没动静?要回答这个问题,得先把 Sitemap 和内链在抓取链路里的角色分开看。

Sitemap 管“发现”,内链管“怎么走”

Sitemap 的主要作用是递线索:把一批 URL 集中交给搜索引擎,帮助蜘蛛知道“站点里还有这些地址”。它解决的是 URL 发现问题,尤其是那些入口较深、点击距离较远、或者新生成的页面。

但蜘蛛决定怎么抓、抓多深、多久回来一次,更多依赖站内链接结构。内链相当于一条条可走的路,蜘蛛顺着链接从已知页面走到新页面,同时获得上下文:这个页面在站内处于什么位置、和哪些主题相关、有多少个入口指向它。Sitemap 里的一条 URL 记录,通常不提供这些路径信息。

只靠 Sitemap 的 URL 会经历什么

如果一个 URL 只在 Sitemap 里出现,站内没有任何内链指向它,常见表现有几类:

  • URL 被发现后进入待抓取队列,但优先级较低,抓取时间可能明显晚于有内链的页面。
  • 首次抓取后,因为缺少内链入口,蜘蛛后续重抓时不容易再次走到它,更新同步会变慢。
  • 在抓取预算有限的情况下,这类孤立 URL 往往排在主路径页面后面。
  • 如果该 URL 还伴随内容单薄、重复或参数过多,抓取意愿会更低。

这不等于 Sitemap 没用。它让 URL 至少进入发现环节,比完全不被知道要好。但发现和抓取是两件事,从发现到持续抓取,中间还需要路径支撑。

内链没有、Sitemap 有的常见原因

这种不一致通常不是故意造成的,而是站点结构变化后的遗留问题:

  • 页面改版或栏目调整,旧内链被移除,但 Sitemap 仍由程序自动生成,没同步清理。
  • 详情页数量大,列表页只展示一部分,其余页面只能靠 Sitemap 暴露。
  • 筛选、排序、分页参数生成的 URL 被写进 Sitemap,但站内没有稳定的静态入口。
  • Sitemap 由插件按数据库全量输出,把已下线、已合并的地址也带了出来。

反过来也有:内链指向了某 URL,但 Sitemap 没收录。这种情况蜘蛛通常仍能顺着链接发现,只是缺少一份集中声明,在新页面较多时发现速度可能慢一些。

怎么检查两者是否对得上

可以定期做一次抽样核对,不必全站逐条比对:

  1. 从 Sitemap 中随机抽取若干 URL,用站内搜索或链接查询工具看是否有内链入口。
  2. 在服务器日志里查看这些 URL 的蜘蛛请求次数,和同层级有内链的页面做对比。
  3. 看抓取统计中“已发现未抓取”的 URL 是否集中在这类孤立页面。
  4. 检查 Sitemap 生成逻辑,确认是否把 404、301、参数页大量写入。

如果一批 URL 长期只有 Sitemap 记录,没有内链,也没有被抓取记录,基本可以判断它们没有进入主抓取路径。

处理思路:以主路径为主,Sitemap 做补充

更稳妥的做法,是让内链和 Sitemap 分工明确,而不是互相替代。

对于希望被持续抓取、内容有价值的页面,优先补内链:从相关栏目、聚合页、详情页正文中加一条合理的链接。位置自然、锚文本能说明目标页面主题即可,不必堆砌。

对于数量大、更新频繁、但站内入口有限的页面,可以用 Sitemap 做补充发现,同时确认它们没有返回错误状态、没有被 robots 误屏蔽。如果这些页面本身不具备长期维护价值,也可以考虑不放进 Sitemap,避免把抓取资源引到低质地址上。

Sitemap 更适合作为“发现清单”,而不是“权重传递通道”。指望只把 URL 写进 Sitemap 就获得稳定抓取,往往会失望;反过来,只要内链结构清晰,即使 Sitemap 暂时不完整,蜘蛛也能顺着主路径走到大部分重要页面。

一句话收口:Sitemap 让蜘蛛知道有这个地方,内链让蜘蛛愿意走过去。两者一致时抓取最顺,不一致时先补路径,再调清单。