记录一下那天晚上的排查过程。图片 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 注册。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
