搜索抓取

蜘蛛在哪一步停下:一次抓取路径的排查顺序

页面长期没被抓取,先别急着重复提交。把问题拆成没发现、发现了但没抓、抓了没索引三类,再按服务器日志、内链路径、Sitemap 一致性、响应链路、内容差异的顺序排查,通常能定位到具体断点。本文整理一套可复用的检查流程,帮你把抓取路径上的阻碍逐个排除。

搜索抓取

蜘蛛在哪一步停下:一次抓取路径的排查顺序

站点运营中常见的困惑是:某些页面长期没有出现在抓取日志里。原因可能在上游——蜘蛛根本不知道有这些 URL;也可能在中游——知道了却走不过去;还可能在下游——抓到了但没被索引。把这三段分开看,排查会清晰很多。

先分清三种“没抓到”

  • 没发现:日志里完全没有该 URL 的访问记录。问题多出在入口、内链、Sitemap 或 robots 允许范围。
  • 发现了但没抓:Sitemap 或外链里出现了,但蜘蛛没来。可能是排队、被限速,或服务器响应不稳定。
  • 抓了没索引:日志有访问、状态码正常,却没有进入索引。这通常属于内容与质量层面,已经不在抓取路径上。

分清类型之后再决定往哪个方向排查,能避免一上来就重复提交 URL 或堆外链。

第一步:用日志还原蜘蛛的走法

服务器日志是能证明蜘蛛实际走过哪里的数据。至少要能筛出搜索引擎 UA,并按状态码、路径、时间做分组。

  • 看状态码分布:大量 3xx 说明跳转链太长,大量 5xx 或 429 说明抓取被拒或被限。
  • 看路径分布:蜘蛛集中在你不在意的列表页、筛选页,还是深入到了详情页。
  • 看时间分布:抓取是否集中在某个时段,是否与站点备份、批量任务重叠。

如果日志里只看到首页和少量栏目页,问题多半在链接结构;如果详情页被抓但反复失败,更可能是响应链路。

第二步:从入口页手动走一遍

关掉搜索框和站内推荐,从首页开始,只用链接点击到目标页,记录步数与每一跳的页面类型。这是最直接的抓取路径测试。

  1. 首页是否能在一到两次点击内到达主要栏目。
  2. 栏目页是否把详情页放在默认可见区域,而不是需要筛选或排序才出现。
  3. 分页是否使用可抓取的链接,而不是纯按钮事件。
  4. 列表页是否存在大量参数组合,把同一批详情页重复指向。

如果目标页在点击路径中根本走不到,Sitemap 可以作为补救入口,但不应成为唯一入口。

第三步:核对 Sitemap 与真实 URL 的一致性

Sitemap 的价值在于告诉蜘蛛“这里有哪些地址”,但它无法替代内链。常见问题有三类:

  • 列出的 URL 返回 404、301,或需要登录才能访问。
  • 写的是参数版地址,页面上 canonical 却指向另一个版本。
  • lastmod 被批量刷成当前时间,失去参考意义。

建议定期抽检:随机取 Sitemap 中的若干条,确认状态码、canonical 与页面内容是否一致。URL 数量大的站点可以按目录抽样。

第四步:检查响应链路里的隐性成本

即便链接结构没问题,蜘蛛也可能因为服务器端体验差而减少回访。重点看以下指标:

  • TTFB:整体响应时间偏长时,抓取并发会受影响。
  • 重定向链:一次跳转可以接受,连续多次会消耗抓取配额。
  • 限速与拦截:429 与防火墙规则会让蜘蛛降低频率。
  • CDN 与缓存:不同节点返回不同内容,可能让蜘蛛拿到空页或错误版本。
抓取频率不是求来的,而是站点稳定性与内容更新节奏共同形成的结果。

第五步:处理抓得到但不被选中的情况

这一步已经超出纯抓取问题,但仍值得一起排查,因为很多“没收录”的误判来自这里。

  • 页面主体内容是否与其他页面高度重复。
  • 是否存在 noindex、robots 规则,或 canonical 指向他处。
  • 页面是否依赖脚本渲染,蜘蛛执行后拿不到主要内容。

针对这类页面,优先做内容差异化与结构清晰化,而不是反复提交。

一个可复用的排查顺序

  1. 用日志确认蜘蛛是否来过、来过几次、结果如何。
  2. 手动点击确认内链路径是否存在断点。
  3. 核对 Sitemap 中 URL 的可访问性与一致性。
  4. 检查服务器响应、重定向、限速与缓存表现。
  5. 最后再评估内容层面的抓取与收录条件。

按这个顺序走,多数“蜘蛛不来”的问题都能落到具体环节。剩下的就是修好那一环,然后给它一点时间。