服务器日志按蜘蛛标识过滤后,六成请求落在标签页、日期归档和带参地址上,真正的新文章一天只被抓好几次。乍看像缓存或者权限的锅,追下去往往不是。
grep -c Googlebot access.log
awk '/Googlebot/{print $7}' access.log | sort | uniq -c
追下去是这么回事:站内产生了大量低价值可抓地址,蜘蛛在有限配额里反复扫这些页面,留给新内容的份额被挤掉;响应慢还会进一步压低整体抓取速率。
「抓取预算」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。报错里带路径的,先去看那个路径在不在、权限对不对。
具体做法是,按状态码和路径统计蜘蛛的请求分布;把无价值的路径用 robots 规则直接挡掉;加快响应速度并给新文章补上入口链接。
验收就看一点,蜘蛛请求集中到正文页,新文章的抓取间隔缩短到一天内。
