搜索抓取

抓取预算去了哪里:从服务器日志看蜘蛛的访问分布

同一个站,蜘蛛的请求往往集中在少数目录里。把服务器日志按目录、状态码、响应时间聚合,就能看出抓取预算被谁吃掉了:是参数组合、标签归档,还是慢到超时的接口。弄清分布之后,再用内链、noindex 和精简 Sitemap 把有限的抓取资源挪向真正需要被发现的页面。

搜索抓取

抓取预算去了哪里:从服务器日志看蜘蛛的访问分布

“蜘蛛总抓那些没用的页面,就是不来抓我的新内容”——这类抱怨背后,其实是一个可以量化的分配问题。抓取预算不是搜索引擎发给你的固定额度,而是蜘蛛在单位时间内愿意在你这个站上花掉的请求次数,它受响应速度、页面总量、更新频率和过往抓取体验共同影响。想调它,先得知道它被花在了哪里。

先看日志,而不是先改页面

后台的“已收录”数量只告诉你结果,日志才告诉你过程。把最近 30 天的蜘蛛访问记录按目录聚合一次,再按状态码和响应时间各聚合一次,三张表放在一起看,问题通常就浮出来了。

  • 某个目录的请求占比远超它的内容占比,说明这里有东西在持续吸引蜘蛛。
  • 大量请求落在 404、301 或带参数的地址上,说明站内链接和跳转还不干净。
  • 某些页面平均响应时间明显偏高,蜘蛛在这里会主动降速,连带影响同一主机名下其他页面。

三类常见的预算黑洞

翻日志时,下面几类页面出现的频率往往高得超出预期。

  • 参数组合页:筛选、排序、翻页参数能组合出成百上千个地址,内容却高度重复。
  • 自动生成的归档:标签页、作者页、日期归档、搜索结果页,数量随内容增长而膨胀,单个页面信息量很低。
  • 失效与跳转:老链接没清、重定向链太长,蜘蛛每走一次都要多花几个请求。

这些页面本身不一定有害,但如果它们吃掉了总抓取量的一半以上,而你的新品页、详情页只能分到零头,那就是分配出了问题。

把抓取资源往重点页面挪

方向是“减少无谓请求”加“增加重点入口”,两者要一起做,只堵不疏会让蜘蛛找不到新内容。

减少无谓请求

  • 参数页加 noindex 之前先确认它确实没有独立价值,别把有用的页面一起屏蔽掉。
  • 搜索结果页、内部搜索接口,用 robots.txt 拦住或加 noindex。
  • 清理跳转链,让旧地址一步到位指向新地址。
  • Sitemap 只放你希望被正常抓取的地址,别把整个数据库都塞进去。

增加重点入口

  • 在导航、面包屑、相关内容模块里,给新页面和多层级详情页提供稳定的内链入口。
  • 列表页分页保持可抓取,别让详情页只能通过“加载更多”按钮到达。
  • 让重要页面之间互相链接,形成几个内链簇,而不是所有页面都只连向首页。

响应速度是抓取节奏的地板

同一台服务器上,如果某个接口经常三五秒才响应,蜘蛛对该主机名的整体抓取速率会被压低。日志里的平均响应时间和超时次数,值得和抓取频次放在一张图里看:速度掉下去之后,通常过一段时间抓取量也会跟着掉。数据库慢查询、图片直出、未缓存的动态页面,都是常见的拖累点。

抓取预算的调整不是一次性操作。改完结构后隔两三周再拉一次日志,对比目录分布有没有变化,比凭感觉判断可靠得多。

一个可执行的检查顺序

  1. 导出最近 30 天的蜘蛛访问日志,按目录、状态码、响应时间分别聚合。
  2. 列出请求量前 20 的目录或 URL 模式,判断它们对用户是否有价值。
  3. 确认哪些属于重复参数页、自动归档页,决定是合并、noindex 还是拦住。
  4. 检查重点页面是否至少有两条站内路径可以到达。
  5. 整理 Sitemap,只保留需要被发现的地址,并保持更新。
  6. 两三周后再看一次日志,对比抓取分布与重点页面的被访问次数。

抓取预算是争来的,不是等来的。把日志读明白,再动手改结构,方向会清晰很多。