站点运营中常见的困惑是:某些页面长期没有出现在抓取日志里。原因可能在上游——蜘蛛根本不知道有这些 URL;也可能在中游——知道了却走不过去;还可能在下游——抓到了但没被索引。把这三段分开看,排查会清晰很多。
先分清三种“没抓到”
- 没发现:日志里完全没有该 URL 的访问记录。问题多出在入口、内链、Sitemap 或 robots 允许范围。
- 发现了但没抓:Sitemap 或外链里出现了,但蜘蛛没来。可能是排队、被限速,或服务器响应不稳定。
- 抓了没索引:日志有访问、状态码正常,却没有进入索引。这通常属于内容与质量层面,已经不在抓取路径上。
分清类型之后再决定往哪个方向排查,能避免一上来就重复提交 URL 或堆外链。
第一步:用日志还原蜘蛛的走法
服务器日志是能证明蜘蛛实际走过哪里的数据。至少要能筛出搜索引擎 UA,并按状态码、路径、时间做分组。
- 看状态码分布:大量 3xx 说明跳转链太长,大量 5xx 或 429 说明抓取被拒或被限。
- 看路径分布:蜘蛛集中在你不在意的列表页、筛选页,还是深入到了详情页。
- 看时间分布:抓取是否集中在某个时段,是否与站点备份、批量任务重叠。
如果日志里只看到首页和少量栏目页,问题多半在链接结构;如果详情页被抓但反复失败,更可能是响应链路。
第二步:从入口页手动走一遍
关掉搜索框和站内推荐,从首页开始,只用链接点击到目标页,记录步数与每一跳的页面类型。这是最直接的抓取路径测试。
- 首页是否能在一到两次点击内到达主要栏目。
- 栏目页是否把详情页放在默认可见区域,而不是需要筛选或排序才出现。
- 分页是否使用可抓取的链接,而不是纯按钮事件。
- 列表页是否存在大量参数组合,把同一批详情页重复指向。
如果目标页在点击路径中根本走不到,Sitemap 可以作为补救入口,但不应成为唯一入口。
第三步:核对 Sitemap 与真实 URL 的一致性
Sitemap 的价值在于告诉蜘蛛“这里有哪些地址”,但它无法替代内链。常见问题有三类:
- 列出的 URL 返回 404、301,或需要登录才能访问。
- 写的是参数版地址,页面上 canonical 却指向另一个版本。
- lastmod 被批量刷成当前时间,失去参考意义。
建议定期抽检:随机取 Sitemap 中的若干条,确认状态码、canonical 与页面内容是否一致。URL 数量大的站点可以按目录抽样。
第四步:检查响应链路里的隐性成本
即便链接结构没问题,蜘蛛也可能因为服务器端体验差而减少回访。重点看以下指标:
- TTFB:整体响应时间偏长时,抓取并发会受影响。
- 重定向链:一次跳转可以接受,连续多次会消耗抓取配额。
- 限速与拦截:429 与防火墙规则会让蜘蛛降低频率。
- CDN 与缓存:不同节点返回不同内容,可能让蜘蛛拿到空页或错误版本。
抓取频率不是求来的,而是站点稳定性与内容更新节奏共同形成的结果。
第五步:处理抓得到但不被选中的情况
这一步已经超出纯抓取问题,但仍值得一起排查,因为很多“没收录”的误判来自这里。
- 页面主体内容是否与其他页面高度重复。
- 是否存在 noindex、robots 规则,或 canonical 指向他处。
- 页面是否依赖脚本渲染,蜘蛛执行后拿不到主要内容。
针对这类页面,优先做内容差异化与结构清晰化,而不是反复提交。
一个可复用的排查顺序
- 用日志确认蜘蛛是否来过、来过几次、结果如何。
- 手动点击确认内链路径是否存在断点。
- 核对 Sitemap 中 URL 的可访问性与一致性。
- 检查服务器响应、重定向、限速与缓存表现。
- 最后再评估内容层面的抓取与收录条件。
按这个顺序走,多数“蜘蛛不来”的问题都能落到具体环节。剩下的就是修好那一环,然后给它一点时间。