Image optimization analysis for SEO and performance. Checks alt text, file sizes, formats, responsive images, lazy loading, CLS prevention, image SERP rankings (via DataForSEO), and image file optimization (WebP/AVIF conversion, IPTC/XMP metadata injection). Use when user says "image optimization", "alt text", "image SEO", "image size", "image audit", "optimize images", "image metadata", "image SERP", "convert to webp", or "image file optimize".
图片优化分析
检查项
Alt文本
- 所有
<img>元素上存在(装饰性图片除外:role="presentation") - 描述性:描述图片内容,而非“image.jpg”或“photo”
- 在自然的前提下包含相关关键词,避免关键词堆砌
- 长度:10-125个字符
好的示例:
- "专业水管工修理厨房水槽龙头"
- "红色2024款丰田凯美瑞轿车前视图"
- "现代办公室会议室中的团队会议"
差的示例:
- "image.jpg"(文件名,非描述)
- "水管工水管水管服务"(关键词堆砌)
- "点击这里"(非描述性)
文件大小
按图片类别的分级阈值:
| 图片类别 | 目标 | 警告 | 严重 |
|---|---|---|---|
| 缩略图 | < 50KB | > 100KB | > 200KB |
| 内容图片 | < 100KB | > 200KB | > 500KB |
| 主图/横幅图片 | < 200KB | > 300KB | > 700KB |
建议在保证质量的前提下压缩至目标阈值。
格式
| 格式 | 浏览器支持 | 使用场景 |
|---|---|---|
| WebP | 97%+ | 默认推荐 |
| AVIF | 92%+ | 最佳压缩,较新 |
| JPEG | 100% | 照片的备选 |
| PNG | 100% | 带透明度的图形 |
| SVG | 100% | 图标、Logo、插图 |
推荐使用WebP/AVIF替代JPEG/PNG。检查是否使用<picture>元素并提供格式备选。
推荐的<picture>元素模式
使用渐进增强,优先使用最高效的格式:
<picture>
<source srcset="image.avif" type="image/avif">
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="描述性alt文本" width="800" height="600" loading="lazy" decoding="async">
</picture>
浏览器将使用第一个支持的格式。当前浏览器支持:AVIF 93.8%,WebP 95.3%。
JPEG XL:新兴格式
第三方报告和维基百科描述了一个基于Rust的JPEG XL解码器,已在Chrome 145稳定版(2026-02-10)中随chrome://flags/#enable-jxl-image-format标志发布,但默认未启用;未从Google官方来源获取确认。由于默认支持未确认,目前尚不适合生产环境网页交付。请继续使用AVIF/WebP搭配JPEG备选,并持续关注。
响应式图片
srcset属性用于多尺寸sizes属性匹配布局断点- 根据设备像素比提供合适分辨率
<img
src="image-800.jpg"
srcset="image-400.jpg 400w, image-800.jpg 800w, image-1200.jpg 1200w"
sizes="(max-width: 600px) 400px, (max-width: 1200px) 800px, 1200px"
alt="描述"
>
懒加载
- 对首屏下方图片使用
loading="lazy" - 不要对首屏/主图使用懒加载(会损害LCP)
- 检查原生懒加载与基于JavaScript的懒加载
<!-- 首屏下方 - 懒加载 -->
<img src="photo.jpg" loading="lazy" alt="描述">
<!-- 首屏上方 - 立即加载(默认) -->
<img src="hero.jpg" alt="主图">
检测到的懒加载方法(lazy_method字段)
scripts/parse_html.py通过每个图片条目上的lazy_method字段对每张图片的懒加载机制进行分类。五个值:
lazy_method |
检测到的信号 | 常见技术栈 |
|---|---|---|
native |
loading="lazy" HTML属性 |
现代浏览器,纯HTML |
perfmatters |
data-perfmatters-src/-srcset 或类 perfmatters-lazy |
WordPress + Perfmatters插件 |
ewww |
data-ewww-src / data-eio 或类 lazyload-eio |
WordPress + EWWW Image Optimizer |
js-generic |
data-src / data-lazy-src / data-original / data-srcset 或类 lazyload/lazyloaded/lazy |
Lazysizes, vanilla-lazyload, jQuery插件 |
none |
未检测到属性或类信号 | 页面未对该图片使用懒加载 |
审计图片SEO时,报告lazy_method和loading,以便用户了解其网站是否使用了JS驱动的懒加载器(此时原生loading="lazy"属性有意缺失,并非退化)。
LCP图片的fetchpriority="high"
为主图/LCP图片添加fetchpriority="high",以在浏览器网络队列中优先下载:
<img src="hero.webp" fetchpriority="high" alt="主图描述" width="1200" height="630">
关键: 不要对首屏上方/LCP图片使用懒加载。在LCP图片上使用loading="lazy"会直接损害LCP分数。仅对首屏下方图片使用loading="lazy"。
非LCP图片的decoding="async"
对非LCP图片添加decoding="async",防止图片解码阻塞主线程:
<img src="photo.webp" alt="描述" width="600" height="400" loading="lazy" decoding="async">
CLS预防
- 所有
<img>元素上设置width和height属性 - 使用
aspect-ratioCSS作为替代 - 标记缺少尺寸的图片
<!-- 好 - 设置了尺寸 -->
<img src="photo.jpg" width="800" height="600" alt="描述">
<!-- 好 - CSS宽高比 -->
<img src="photo.jpg" style="aspect-ratio: 4/3" alt="描述">
<!-- 差 - 无尺寸 -->
<img src="photo.jpg" alt="描述">
文件名
- 描述性:
blue-running-shoes.webp而非IMG_1234.jpg - 连字符分隔,小写,无特殊字符
- 包含相关关键词
CDN使用
- 检查图片是否通过CDN提供(不同域名,CDN头部)
- 对图片密集型网站推荐使用CDN
- 检查边缘缓存头部
输出
图片审计摘要
| 指标 | 状态 | 数量 |
|---|---|---|
| 图片总数 | - | XX |
| 缺少Alt文本 | ❌ | XX |
| 过大(>200KB) | ⚠️ | XX |
| 格式错误 | ⚠️ | XX |
| 无尺寸 | ⚠️ | XX |
| 未懒加载 | ⚠️ | XX |
优先级优化列表
按文件大小影响排序(节省空间最大的优先):
| 图片 | 当前大小 | 格式 | 问题 | 预估节省 |
|---|---|---|---|---|
| ... | ... | ... | ... | ... |
建议
- 将X张图片转换为WebP格式(预估节省XX KB)
- 为X张图片添加alt文本
- 为X张图片添加尺寸
- 对X张首屏下方图片启用懒加载
- 压缩X张过大图片
图片SERP分析
当DataForSEO MCP可用时,使用竞争数据增强图片审计。
/seo images serp <keyword>
将页面图片与Google图片SERP排名进行交叉引用。
工作流程:
- 通过
serp_google_images_live_advanced获取Google图片结果(深度=100) - 提取:顶级域名、图片类型、alt文本模式
- 输出竞争对手图片SERP格局
输出:
| 排名 | 域名 | 标题/Alt | 图片URL | 页面URL |
|---|---|---|---|---|
| 1 | example.com | "蓝色跑鞋..." | .../shoes.webp | /products/... |
分析包括:
- 域名主导度:哪些网站占据最多图片位置(按数量前10)
- Alt文本模式:排名靠前图片中的常见标题/alt模式
- 格式分布:WebP vs JPEG vs PNG在顶级结果中的分布
- 机会评分:你有页面排名但无图片展示的关键词
如果DataForSEO MCP不可用,告知用户并建议安装扩展。
图片文件优化
优化图片文件以提升SEO:格式转换、元数据注入、压缩。
/seo images optimize <path>
优化图片文件以适应网络和SEO。转换为WebP/AVIF,注入IPTC元数据,压缩,并生成响应式变体。
使用的工具(按优先级排序):
exiftool-- EXIF/IPTC/XMP读写(安装:sudo apt install libimage-exiftool-perl)cwebp-- WebP转换(安装:sudo apt install webp)- ImageMagick
convert-- 格式转换、调整大小(大多数系统预装) - FFmpeg -- 格式转换的备选(预装)
运行前: 使用which exiftool cwebp convert ffmpeg检查哪些工具可用。
格式转换
将图片转换为现代格式并保留元数据:
# WebP(推荐默认) - 保留元数据
cwebp -q 82 -metadata all input.jpg -o output.webp
# 通过ImageMagick转换WebP(cwebp未安装时的备选)
convert input.jpg -quality 82 output.webp
# 通过FFmpeg转换AVIF(编码较慢,压缩最佳)
ffmpeg -i input.jpg -c:v libaom-av1 -crf 30 -still-picture 1 output.avif
# 响应式变体(400w, 800w, 1200w)
convert input.jpg -resize 400x -quality 82 image-400.webp
convert input.jpg -resize 800x -quality 82 image-800.webp
convert input.jpg -resize 1200x -quality 82 image-1200.webp
元数据注入(用于Google图片展示的IPTC)
Google图片在搜索结果中显示IPTC创作者、信用行和版权。
这不是排名因素,但可以改善Google图片展示和品牌归属。
使用exiftool(推荐):
# 读取所有元数据
exiftool image.jpg
# 注入IPTC + XMP元数据以支持Google图片富结果
exiftool \
-IPTC:ObjectName="产品照片描述" \
-IPTC:Caption-Abstract="详细图片描述" \
-IPTC:By-line="品牌名称摄影" \
-IPTC:Credit="品牌名称" \
-IPTC:CopyrightNotice="版权所有2026 品牌名称" \
-IPTC:Source="brandname.com" \
-XMP:Title="产品照片描述" \
-XMP:Description="详细图片描述" \
-XMP:Creator="品牌名称摄影" \
-XMP:Rights="版权所有2026 品牌名称" \
image.jpg
# 批量注入到目录中的所有图片
exiftool -overwrite_original \
-IPTC:By-line="品牌名称" \
-IPTC:CopyrightNotice="版权所有2026 品牌名称" \
*.jpg *.webp *.png
使用ImageMagick(备选):
identify -verbose image.jpg | head -50
convert input.jpg \
-set comment "产品照片描述" \
-set IPTC:2:80 "品牌名称摄影" \
-set IPTC:2:116 "版权所有2026 品牌名称" \
output.jpg
注意:WebP原生支持EXIF和XMP,但不支持IPTC。对于WebP文件,使用XMP字段替代IPTC。exiftool会自动处理此转换。
AI生成图片:DigitalSourceType(Merchant Center要求)
对于由生成式AI生成的产品图片,Google Merchant Center要求IPTC DigitalSourceType: TrainedAlgorithmicMedia元数据。这是一个运营政策要求,而非排名因素:缺少此标签的AI生成图片的Feed可能被拒绝。
主要来源(Merchant Center AI生成内容政策):
https://support.google.com/merchants/answer/14743464
(ai-optimization-guide未记录DigitalSourceType/IPTC/Merchant标签。)
审计命令:
# 审计目录中IPTC标签(统计:缺失、AI、拍摄等)
claude-seo run iptc_ai_label.py audit ./images/ --json
# 审计单张图片
claude-seo run iptc_ai_label.py audit ./hero.webp --json
# 向图片注入AI标签
claude-seo run iptc_ai_label.py inject ./ai-hero.webp \
--source-type trainedAlgorithmicMedia
# 其他词汇值:
# compositeSynthetic (拍摄+AI元素混合)
# algorithmicMedia (纯算法创建,非来自采样训练数据)
# compositeWithTrainedAlgorithmicMedia(例如在真实媒体上进行AI修补/扩展)
# digitalCapture (完全拍摄的照片)
原始exiftool等效命令(用于临时使用):
# 手动注入
exiftool \
-XMP-iptcExt:DigitalSourceType="https://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia" \
ai-generated-product.jpg
# 审计:查找目录中缺少标签的图片
exiftool -if 'not $XMP-iptcExt:DigitalSourceType' \
-filename -DigitalSourceType *.jpg *.webp *.png
Google提取这些IPTC DigitalSourceType值:
trainedAlgorithmicMedia:完全AI生成(对扩散模型产品图片使用此值)compositeSynthetic:混合拍摄+AI生成元素algorithmicMedia:纯算法创建,非来自采样训练数据compositeWithTrainedAlgorithmicMedia:训练算法媒体与其他媒体的合成(例如在真实照片上进行AI修补/扩展)digitalCapture:完全拍摄的照片(注意:digitalCapture不在Google的提取值列表中,但是一个有效的IPTC值)
来源信号(面向消费者): SynthID水印和C2PA内容凭证是AI媒体识别的新兴信号。将产品表面覆盖视为可能变化,除非从当前Google拥有的来源验证。
这是检测/透明度,不是除IPTC DigitalSourceType之外的额外必需Merchant Feed字段。
可授权图片: 要获得可授权徽章,提供结构化数据(
ImageObject,包含license属性和acquireLicensePage用于“获取此图片”链接)或嵌入的IPTC照片元数据(授权方URL / 权利声明)。交叉引用seo-schema以获取ImageObject标记。
发现说明: 图片发现现在包括视觉搜索扩展,涵盖Lens / AI Mode / Circle to Search(Gemini多模态场景/对象理解),因此图片通过场景、对象和材料呈现,而不仅仅是alt文本。尚未有新的已发布图片SEO杠杆;保持描述性alt文本和清晰的结构化数据。
当对AI生成资产运行/seo images optimize时,提示用户确认来源类型并自动注入匹配的IPTC值。
对于AI生成的产品标题和描述,Google Merchant Center还要求在Feed中单独指定和标记AI生成的文本。这在Feed层而非页面层执行,在交叉引用seo-ecommerce时标记此点。
元数据审计
# 使用exiftool快速审计
exiftool -IPTC:all -XMP:all -EXIF:ImageDescription image.jpg
# 批量审计 - 查找缺少IPTC创作者的图片
exiftool -if 'not $IPTC:By-line' -filename *.jpg *.webp *.png
完整优化流程
为获得最大图片SEO效果,对每张图片运行以下流程:
- 审计现有元数据:
exiftool -IPTC:all -XMP:all image.jpg - 注入IPTC/XMP元数据:创作者、版权、描述
- 转换为WebP:
cwebp -q 82 -metadata all image.jpg -o image.webp - 生成响应式变体:400w, 800w, 1200w
- 验证元数据保留:
exiftool image.webp - 生成
<picture>HTML:AVIF > WebP > JPEG备选链
对Google图片而言什么重要 vs 什么不重要
| 因素 | 影响 | 设置位置 |
|---|---|---|
| Alt文本 | 关键(排名) | HTML <img alt=""> |
| 文件名 | 高(排名) | 文件系统(描述性,连字符分隔) |
| 页面上下文 | 高(排名) | 周围HTML内容 |
| 文件大小/速度 | 中(通过CWV间接影响) | 压缩 + 格式转换 |
| IPTC创作者/版权 | 低(仅展示) | 图片文件元数据 |
| EXIF相机数据 | 无 | 与SEO无关 |
| IPTC关键词 | 无 | Google忽略这些 |
错误处理
| 场景 | 操作 |
|---|---|
| URL无法访问 | 报告连接错误及状态码。建议验证URL并检查网站是否需要身份验证。 |
| 页面未找到图片 | 报告未检测到<img>元素。建议检查图片是否通过JavaScript或CSS背景图片加载。 |
| 图片位于CDN或需要身份验证 | 注意无法直接访问图片文件进行大小分析。报告可用元数据(来自标记的alt文本、尺寸、格式)并标记不可访问的资源。 |
| exiftool未安装 | 回退到ImageMagick处理元数据。建议:sudo apt install libimage-exiftool-perl |
| cwebp未安装 | 回退到ImageMagick或FFmpeg进行WebP转换。建议:sudo apt install webp |
| DataForSEO MCP不可用 | 跳过图片SERP分析部分。注明扩展未安装。 |






