URL 被发现只是第一步。接下来的问题是:搜索蜘蛛多久会再回来一次?这个间隔不是站点能直接设定的参数,而是由一串信号共同决定的结果。理解这些信号,比反复猜测“多久抓一次”更有用。
回访间隔从来不是一个固定数字
很多运营者习惯把抓取理解成“每天来一次”或“每周来一次”,但实际调度是逐个 URL 计算的。同一个站点里,首页可能几小时就被回访一次,而一个几个月没更新、只有一条内链指向的详情页,可能几周都不会被重新抓取。差异来自每个 URL 自身携带的信号,而不是站点的整体表现。
影响回访频率的几个变量
页面变化的可信度
如果 Sitemap 里的 lastmod 长期被批量刷新,但正文并没有实质变化,这个字段的参考价值会下降,回访也不会因此变密。反过来,正文确实有新增段落、价格调整、库存变化,并且这些变化能被正常抓取到,回访节奏通常会慢慢稳定下来。
内链位置与链接变化
一个 URL 被放在首页导航、栏目列表第一屏,和被埋在分页第五页的正文末尾,被重新发现的概率并不相同。内链本身发生变化——比如新增了一条从访问量较高的页面指向它的链接——往往比修改页面标题更能带动回访。
服务器响应与稳定性
响应时间是调度端能直接观测到的信号之一。持续几百毫秒返回的页面,和经常要数秒才响应的页面,得到的抓取节奏不一样。间歇性的 5xx 更麻烦:它既消耗配额,又可能让调度端降低对该主机的抓取频率,恢复需要一段时间。如果站点在高峰期频繁超时,回访间隔变长几乎是必然的。
抓取时拿到的状态
每次回访的结果都会影响下一次安排。返回 200 且内容有变化,属于正反馈;返回 304 说明内容没变;返回 404 会逐步减少回访;返回 5xx 会被视为服务器问题;软 404(返回 200 但内容为空或提示不存在)则容易让页面长期停留在低优先级队列里。重定向链也要注意,一次跳转可以接受,三层以上跳转会让抓取路径变长,回访意愿下降。
站点整体的抓取压力
配额是站点级别的。如果日志里大量 URL 是参数拼接产生的低价值地址,它们会占用本就有限的名额,把真正需要更新的页面挤到后面。先清理这类地址,往往比反复提交新页面更有效。
几个常见的误解
- 认为提交 Sitemap 就能加快回访:提交只解决“知道有这个 URL”,不解决“多久来一次”。
- 认为频繁改动 lastmod 能催抓取:字段被反复刷新后,参考价值反而降低。
- 认为首页更新会带动全站:首页更新通常只影响首页及其直接链接的少数页面。
- 认为搜索结果里的快照时间等于上次抓取时间:两者并不总是一致,最好以服务器日志为准。
可以用日志验证的核对顺序
- 先从日志中筛出目标 URL 的抓取记录,统计两次抓取之间的实际间隔,而不是凭感觉判断。
- 检查该 URL 的入口数量与入口位置,确认是否只有一条埋得很深的内链。
- 核对服务器响应时间与错误率,排除超时、5xx 集中出现的时段。
- 核对状态码链路:是否存在多余的跳转、软 404 或参数变体。
- 核对 Sitemap 中的 lastmod 是否与正文实际修改时间一致。
- 最后再考虑内容本身是否真的有更新价值——长期无变化的页面回访变慢属于正常现象。
回访间隔是被“观测结果”推着走的:服务器稳定、内容有实质变化、入口清晰,节奏自然会稳;反之,任何一环出问题,最先反映出来的往往就是抓取变慢。