事情本身不复杂,线索都在日志里。提交的图片 sitemap 里只有上传的原图地址,页面实际使用的 768 与 1200 两种尺寸都没列,图片搜索的流量三个月没有变化。
把日志和配置对完,能解释这个现象的基本就这几处。生成脚本只取 guid 字段的原图路径。另一种情况是缩略图是动态裁切出来的,文件系统里不存在对应文件。
还有一种情况,sitemap 里缺少 image:title 与 image:caption,命中率进一步降低。
动手时先抽查 sitemap 里的图片条目
curl -s https://www.example.com/image-sitemap.xml | grep -o "<image:loc>[^<]*" | head -5
接着把页面实际输出的尺寸补进 sitemap
add_filter('wp_sitemaps_posts_query_args', function($a){ $a['post_type'] = 'attachment'; return $a; });
末了确认条目数与被抓取的图片数接近
grep -c "image" /var/log/nginx/access.log
改之前先确认了最近有没有人动过配置,避免白查一遍。
恢复的判定其实很直接。sitemap 里的图片地址都能返回 200 且覆盖两种主要尺寸,图片搜索展现量在一个月内出现增长。
这里还有个坑。sitemap 里列不存在的裁切地址会被判错误,先确认文件真实存在再补条目。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
