记录一下那天晚上的排查过程。图片 sitemap 里列了三万张原图,必应图片搜索的收录只有两百多张,抽查发现很多图返回 200 但 Content-Type 是 octet-stream。

把日志和配置对完,能解释这个现象的基本就这几处。WebP 文件由 Nginx 直接下发,MIME 类型没在 mime.types 里注册。也可能是图片 CDN 对爬虫 UA 返回了占位图。

不容易想到的是,image:loc 里有部分地址还是改版前的旧域名。

动手时先核对单张图的响应头

curl -sI https://www.example.com/uploads/2026/10/a.webp

补上 WebP 的 MIME 映射

types { image/webp webp; }

接着统一替换 sitemap 里的旧域名

sed -i 's|img.old.com|img.example.com|g' image-sitemap.xml

末了重新提交图片 sitemap

curl -s https://www.example.com/image-sitemap.xml | grep -c 'image:loc'

报错是间歇性的,我蹲守了半小时才抓到一次完整现场。

白天有业务在跑,能验证的部分都压到了晚上做。

当时还开着另一个排查窗口,两边日志对照着看才定位到。

改完先别撤,确认这几项。修正 MIME 后一周,必应图片收录从 200 多张涨到 9000 多张,图片 tab 开始出现流量。

容易忽略的是,图片收录看的是响应头不是文件后缀,批量转 WebP 之后一定要顺手补 MIME 注册。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189