面向SEO和性能的图像优化分析。检查alt文本、文件大小、格式、响应式图片、懒加载、CLS预防、图片SERP排名(通过DataForSEO)以及图片文件优化(WebP/AVIF转换、IPTC/XMP元数据注入)。当用户提到“图片优化”、“alt文本”、“图片SEO”、“图片大小”、“图片审计”、“优化图片”、“图片元数据”、“图片SERP”、“转换为webp”或“图片文件优化”时使用。
图片优化分析
检查项
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分析部分。注明扩展未安装。 |






