区分正常与异常,不能只看某一条请求返回200还是404。正确做法是:先按“抓取目的”分组,再在组内看状态码、响应大小、抓取频次和URL类型是否匹配。一个404如果指向已经下线的旧文章,且没有内链,通常是正常清理;同一个404被反复抓取、又有多条内链指向它,才算需要优先处理的异常。
很多人把日志里出现大量200当成健康信号,把出现404、301、403当成故障信号。这个判断只在“所有URL都该被收录”的前提下成立,而真实站点通常不是这样。分类页、筛选参数、已下架商品、测试目录本来就不应该被索引,它们返回404或301是预期行为。
反过来,200也不代表正常。一个本应被屏蔽的搜索参数页如果返回200并被大量抓取,会持续消耗抓取配额,属于典型异常。所以判断依据不是状态码本身,而是状态码是否与这个URL的预期用途一致。
打开日志后,不要逐行看,先按URL特征归成几组,每组单独判断:
分组之后,正常与异常的判断就有了参照系,而不是凭单条记录下结论。
时间和人手有限时,按下面顺序检查,先处理影响最大的:
一个假设例子:某站点日志显示/old-page返回404共80次,但站内已无任何链接指向它,可以标记为低优先级;/product?id=123返回200共2000次,且该参数页与主商品页内容重复,则应优先加规则处理。
各搜索引擎的抓取行为、对参数的处理方式、对404与410的响应并不一致。用一份日志得出的结论,不能直接套到另一家。核查方法是分别导出各搜索引擎的抓取记录,按上面的分组方式各做一次,再对比差异。如果只有一家出现异常抓取,问题更可能出在该引擎的规则配置或站点对该引擎的响应上。
另外要分清:robots.txt的抓取限制不等于可靠的索引移除,被禁止抓取的URL仍可能出现在结果中;站点地图不保证收录;HTTPS也不保证安全无漏洞或排名。这些都不能作为日志正常的判断依据。
先导出最近一段时间的日志,按“核心内容页、已下线页、参数页、后台路径”四类各取前20条高频记录,逐条对照预期用途标注正常或异常,再按5xx、高频404、软404的顺序安排处理。