网站收录

抓取频次一直上不去:从配额、结构到页面价值的三层排查

抓取频次常被当成可以手动调的参数,其实它是服务器稳定性与页面价值共同作用的结果。本文把抓取能力与抓取需求拆开,给出服务器、无效 URL、站内结构三层排查顺序,并列出几类基本无效的操作,供站点运营者按顺序自查。

网站收录

抓取频次一直上不去:从配额、结构到页面价值的三层排查

先把两件事分开:抓取能力与抓取需求

很多运营者把“抓取频次”当成一个可以调的参数,实际它是搜索引擎根据站点情况给出的结果。粗略拆开,它由两部分决定:抓取能力,也就是爬虫在你的站点上单位时间能安全抓多少;抓取需求,也就是爬虫判断有多少 URL 值得抓、值得重抓。

这两件事的解法完全不同。抓取能力受服务器响应速度、错误率、超时比例影响;抓取需求受站内 URL 数量、页面更新频率、页面之间互相引用的密度影响。只盯着其中一项调,往往看不到变化。

第一层:服务器是不是在劝退爬虫

爬虫降频的第一个原因通常是站点自身不稳定,这属于它的自我保护。日志里重点看这几类信号:

  • 5xx 比例:持续返回服务器错误,抓取量会被主动压低
  • 429:明确表示请求过于密集,处理方式是削峰和加快响应,而不是换 IP
  • 响应时间:TTFB 长期偏高,抓取并发上不去
  • 连接中断与超时:大量失败会让爬虫减少同时请求数

这一层的顺序是先修稳定性,再谈优化。服务器不稳时,改内链、调结构的收益会被掩盖掉,日志也读不出真实结构问题。

第二层:配额花在了哪些 URL 上

抓取量有限时,更常见的问题不是“抓得少”,而是“抓得不值”。以下几类 URL 最容易被反复抓取,却对收录几乎没有贡献:

  1. 带大量参数的筛选、排序、对比 URL
  2. 站内搜索结果页
  3. 软 404 页面:返回 200 但没有实质内容
  4. 翻得很深的列表页,例如第 10 页之后

处理方式不是一刀切屏蔽,而是先判断哪些 URL 本身有独立搜索需求、哪些只是给用户浏览路径服务。前者可以用 canonical 收敛,后者可以考虑在 robots.txt 中禁止抓取,或加 noindex。这里要留意两者的差别:如果先禁止抓取,noindex 也就无法被抓到并生效。

先让爬虫把时间花在唯一且有价值的 URL 上,再谈抓更多,顺序反了容易白做工。

第三层:站内结构与页面价值

URL 的发现路径要短

新页面如果只能靠 sitemap 被发现,抓取优先级通常低于从首页两三次点击就能到达的页面。检查方法很朴素:从首页出发,看重要页面需要点几次能到,是否只挂在一个长期不更新的栏目下面。

内链密度影响重抓

一个页面如果长期没有新的内链指向,内容也不更新,爬虫没有理由频繁回访。反过来,被多个页面引用的热点内容,重抓频率自然会高一些。这不是技巧,而是站点结构的自然结果。

更新频率要真实

把 sitemap 里的 lastmod 设置成每天自动变化,并不会换来更高频的抓取,反而会让这个字段失去参考价值。搜索引擎对“假更新”的容忍度有限,长期如此,字段本身就不被采信了。

哪些操作基本无效

  • 在 robots.txt 里写 crawl-delay:各家支持情况不一致,也不解决根因
  • 反复提交 sitemap:重复提交不会改变抓取需求的判断
  • 用第三方工具“强制推送”:外部工具无法改变爬虫的调度逻辑
  • 短期内批量生成新页面:只会让有限的配额更分散

一个可以照着做的自查顺序

  1. 拉最近 30 天日志,统计各状态码占比与平均响应时间
  2. 列出被抓取量最高的 100 个 URL,看有多少是参数页、搜索页、软 404
  3. 从首页出发画一遍重要页面的点击路径,标出超过四次点击的页面
  4. 确认 sitemap 里的 URL 都是规范形式、能返回 200 且确实值得收录
  5. 记录页面真实的更新节奏,据此调整 sitemap 字段

抓取频次的提升,通常是上面这些动作做完之后的结果,而不是原因本身。把稳定性、URL 卫生和站点结构处理好,爬虫对站点的判断会逐步变化,这个过程一般以周为单位,而不是以天为单位。