location ~* \.(jpg|png|webp)$ {
  valid_referers none blocked server_names *.baidu.com *.google.com;
  if ($invalid_referer) { return 403; }
}

上周给图片加了来源白名单,这周图片搜索收录从 3200 张掉到 9 张,日志里抓取请求全是 403,来源字段为空。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,规则只放行了本站域名,抓取工具请求通常不带来源,被当成盗链拦掉。缩略图和原图用了同一套规则,抓取端拿不到任何一张。

这次卡住的地方就在「防盗链误伤蜘蛛」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

处理上按这个顺序:防盗链规则里对空来源放行,或者单独给已知抓取工具开白名单;用命令行模拟空来源和抓取工具各测一次;图片 CDN 上单独配置规则,别和页面共用;改完在搜索资源平台提交几张图片复核。

改完只确认一件事:空来源请求返回 200,日志里抓取图片不再出现 403,收录数量一周内回升。

作者 9823189