mcpField
S
seo-images

seo-images

github.com/infrasity-labs营销与增长15089 次安装18 周前更新
代码仓库

关于 seo-images

seo-images 是用于网站图片 SEO 审核与优化的技能,检查替代文本、格式、文件大小、响应式展示、加载方式、尺寸和元数据。提供 DataForSEO MCP 时,还可分析图片搜索结果。

主要功能

  1. 01审核替代文本与图片尺寸
  2. 02检查格式、大小和加载方式
  3. 03检查响应式图片设置
  4. 04转换并压缩图片文件
  5. 05检查并添加图片元数据
  6. 06借助 DataForSEO 分析图片搜索结果

适用场景

  1. 01查找缺失或不合适的替代文本
  2. 02缩减过大的图片文件
  3. 03检查图片交付与加载设置
  4. 04标注 AI 生成的商品图片
  5. 05评估图片搜索可见度

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/infrasity-labs/dev-gtm-claude-skills --skill seo-images

安装后在 Claude Code 中输入/seo-images确认已加载。

详细介绍

图像优化分析

检查项

替代文本
  • 所有 <img> 元素都具有替代文本(装饰性元素除外:role="presentation")
  • 描述性强:描述图像内容,而不是“image.jpg”或“photo”
  • 自然地包含相关关键词,避免堆砌关键词
  • 长度:10-125 个字符

好的示例:

  • “专业水管工正在维修厨房水槽水龙头”
  • “红色 2024 款 Toyota Camry 轿车正面图”
  • “现代办公室会议室中的团队会议”

不好的示例:

  • “image.jpg”(文件名,不是描述)
  • “水管工 管道 水管工服务”(堆砌关键词)
  • “点击此处”(描述性不足)
文件大小

按图像类别划分的分级阈值:

图像类别目标值警告严重
缩略图< 50KB> 100KB> 200KB
内容图像< 100KB> 200KB> 500KB
主视觉图像/横幅图像< 200KB> 300KB> 700KB

建议尽可能压缩图像,使其达到目标阈值,同时不损失画质。

格式
格式浏览器支持率用途
WebP97%+默认推荐
AVIF92%+压缩效果最佳,较新
JPEG100%照片的备用格式
PNG100%带透明效果的图形
SVG100%图标、徽标、插图

建议使用 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="Descriptive alt text" width="800" height="600" loading="lazy" decoding="async">
</picture>

浏览器会使用其支持的第一种格式。当前浏览器支持率:AVIF 为 93.8%,WebP 为 95.3%。

JPEG XL:新兴格式

2025 年 11 月,Google 的 Chromium 团队推翻了其 2022 年的决定,并宣布将通过基于 Rust 的解码器恢复 Chrome 对 JPEG XL 的支持。该实现已完成功能开发,但尚未纳入 Chrome 稳定版。JPEG XL 支持无损 JPEG 重新压缩(在画质零损失的情况下可节省约 20% 空间),且有竞争力的有损压缩效果。目前尚不适合实际用于 Web 部署,但值得持续关注其未来应用。

响应式图像
  • 使用 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="Description"
>
懒加载
  • 对首屏以下的图像使用 loading="lazy"
  • 不要对首屏/主视觉图像进行懒加载(会损害 LCP)
  • 检查使用的是原生懒加载还是基于 JavaScript 的懒加载

<img src="photo.jpg" loading="lazy" alt="Description">


<img src="hero.jpg" alt="Hero image">
检测到的懒加载方法(lazy_method 字段)

scripts/parse_html.py 会通过每个图像条目中的 lazy_method 字段,对图像使用的懒加载机制进行分类。共有五种值:

lazy_method检测到的信号常见技术栈
nativeloading="lazy" HTML 属性现代浏览器、纯 HTML
perfmattersdata-perfmatters-src/-srcset 或 perfmatters-lazy 类WordPress + Perfmatters 插件
ewwwdata-ewww-src / data-eio 或 lazyload-eio 类WordPress + EWWW Image Optimizer
js-genericdata-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="Hero image description" width="1200" height="630">

**重要:**不要对首屏以上/LCP 图像进行懒加载。对 LCP 图像使用 loading="lazy" 会直接损害 LCP 分数。仅对首屏以下的图像使用 loading="lazy"。

对非 LCP 图像使用 decoding="async"

为非 LCP 图像添加 decoding="async",避免图像解码阻塞主线程:

<img src="photo.webp" alt="Description" width="600" height="400" loading="lazy" decoding="async">
CLS 防护
  • 为所有 <img> 元素设置 width 和 height 属性
  • 可使用 CSS aspect-ratio 作为替代方案
  • 标记未设置尺寸的图片

<img src="photo.jpg" width="800" height="600" alt="Description">


<img src="photo.jpg" style="aspect-ratio: 4/3" alt="Description">


<img src="photo.jpg" alt="Description">
文件名
  • 使用描述性名称:blue-running-shoes.webp,而非 IMG_1234.jpg
  • 使用小写字母和连字符,不含特殊字符
  • 包含相关关键词
CDN 使用情况
  • 检查图片是否通过 CDN 提供(不同的域名、CDN 标头)
  • 对图片较多的网站推荐使用 CDN
  • 检查边缘缓存标头

输出

图片审计摘要
指标状态数量
图片总数-XX
缺少替代文本❌XX
超大(>200KB)⚠️XX
格式不当⚠️XX
未设置尺寸⚠️XX
未启用延迟加载⚠️XX
优先优化列表

按文件大小影响排序(节省空间最多的排在最前):

图片当前大小格式问题预计节省
...............
建议
  1. 将 X 张图片转换为 WebP 格式(预计节省 XX KB)
  2. 为 X 张图片添加替代文本
  3. 为 X 张图片设置尺寸
  4. 为 X 张首屏以下的图片启用延迟加载
  5. 压缩 X 张超大图片

图片 SERP 分析

当 DataForSEO MCP 可用时,可通过竞争数据增强图片审计。

/seo images serp <keyword>

将页面图片与 Google 图片 SERP 排名进行交叉比对。

工作流:

  1. 通过 serp_google_images_live_advanced(depth=100)获取 Google 图片结果
  2. 提取:排名靠前的域名、图片类型、替代文本模式
  3. 输出竞争对手图片 SERP 概况

输出:

排名域名标题/替代文本图片 URL页面 URL
1example.com"蓝色跑鞋...".../shoes.webp/products/...

分析包括:

  • 域名优势:哪些网站占据最多图片排名位置(按数量列出前 10 名)
  • 替代文本模式:排名靠前的图片中常见的标题/替代文本模式
  • 格式分布:排名靠前的结果中 WebP、JPEG 和 PNG 的分布情况
  • 机会评分:页面已有排名,但没有图片展示的关键词

如果 DataForSEO MCP 不可用,请告知用户并建议安装扩展。


图片文件优化

优化图片文件以提升 SEO:转换格式、注入元数据、压缩。

/seo images optimize <path>

优化用于 Web 和 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 (recommended default) - with metadata preserved
cwebp -q 82 -metadata all input.jpg -o output.webp

# WebP via ImageMagick (fallback if cwebp not installed)
convert input.jpg -quality 82 output.webp

# AVIF via FFmpeg (slower encode, best compression)
ffmpeg -i input.jpg -c:v libaom-av1 -crf 30 -still-picture 1 output.avif

# Responsive variants (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 Creator、Credit Line 和 Copyright。 这不会影响排名,但能改善富媒体搜索结果的展示和品牌归属标注。

使用 exiftool(首选):

# Read all metadata
exiftool image.jpg

# Inject IPTC + XMP metadata for Google Images rich results
exiftool \
  -IPTC:ObjectName="Product Photo Description" \
  -IPTC:Caption-Abstract="Detailed image description" \
  -IPTC:By-line="Brand Name Photography" \
  -IPTC:Credit="Brand Name" \
  -IPTC:CopyrightNotice="Copyright 2026 Brand Name" \
  -IPTC:Source="brandname.com" \
  -XMP:Title="Product Photo Description" \
  -XMP:Description="Detailed image description" \
  -XMP:Creator="Brand Name Photography" \
  -XMP:Rights="Copyright 2026 Brand Name" \
  image.jpg

# Batch inject to all images in directory
exiftool -overwrite_original \
  -IPTC:By-line="Brand Name" \
  -IPTC:CopyrightNotice="Copyright 2026 Brand Name" \
  *.jpg *.webp *.png

使用 ImageMagick(备用):

identify -verbose image.jpg | head -50

convert input.jpg \
  -set comment "Product Photo Description" \
  -set IPTC:2:80 "Brand Name Photography" \
  -set IPTC:2:116 "Copyright 2026 Brand Name" \
  output.jpg

重要: WebP 支持 EXIF 和 XMP,但原生不支持 IPTC。对于 WebP 文件, 请使用 XMP 字段代替 IPTC。exiftool 会自动处理此转换。

AI 生成的图片:DigitalSourceType(Merchant Center 要求)

对于通过生成式 AI 制作的商品图片,Google Merchant Center 要求 提供 IPTC DigitalSourceType: TrainedAlgorithmicMedia 元数据。这是 一项运营政策要求,而非排名因素——AI 生成图片未包含此标签的 Feed 可能会被拒绝。

主要来源: https://developers.google.com/search/docs/fundamentals/ai-optimization-guide (引用了 Merchant Center 关于 AI 媒体标注的基础政策)。

审核命令:

# Audit a directory for the IPTC label (counts: missing, ai, captured, etc.)
python scripts/iptc_ai_label.py audit ./images/ --json

# Audit a single image
python scripts/iptc_ai_label.py audit ./hero.webp --json

# Inject the AI label into an image
python scripts/iptc_ai_label.py inject ./ai-hero.webp \
    --source-type trainedAlgorithmicMedia

# Other vocabulary values:
#   compositeSynthetic  (mix of captured + AI elements)
#   digitalCapture      (fully captured photograph)

原始 exiftool 等效命令(供临时使用):

# Inject manually
exiftool \
  -XMP-iptcExt:DigitalSourceType="https://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia" \
  ai-generated-product.jpg

# Audit: find images missing the label across a directory
exiftool -if 'not $XMP-iptcExt:DigitalSourceType' \
  -filename -DigitalSourceType *.jpg *.webp *.png

IPTC 词汇表还定义了:

  • trainedAlgorithmicMedia — 完全由 AI 生成(扩散模型生成的商品图片请使用此项)
  • compositeSynthetic — 混合拍摄元素和 AI 生成元素
  • digitalCapture — 完全由相机拍摄的照片(不含 AI 元素)

对 AI 生成素材运行 /seo images optimize 时,请提示用户确认来源类型,并自动注入相应的 IPTC 值。

对于 AI 生成的商品标题和描述,Google Merchant Center 还要求在 Feed 中单独指定并标注 AI 生成的文本。这一要求在 Feed 层面强制执行,而非页面层面——请在与 seo-ecommerce 交叉引用时注明这一点。

元数据审核
# Quick audit with exiftool
exiftool -IPTC:all -XMP:all -EXIF:ImageDescription image.jpg

# Batch audit - find images missing IPTC Creator
exiftool -if 'not $IPTC:By-line' -filename *.jpg *.webp *.png
完整优化流程

为获得最佳图片 SEO 效果,请对每张图片运行以下流程:

  1. 审核现有元数据:exiftool -IPTC:all -XMP:all image.jpg
  2. 注入 IPTC/XMP 元数据:Creator、Copyright、Description
  3. 转换为 WebP:cwebp -q 82 -metadata all image.jpg -o image.webp
  4. 生成响应式变体:400w、800w、1200w
  5. 验证元数据是否保留:exiftool image.webp
  6. 生成 <picture> HTML:AVIF > WebP > JPEG 回退链
对 Google 图片搜索有影响与无影响的因素
因素影响设置位置
替代文本关键(排名)HTML <img alt="">
文件名高(排名)文件系统(描述性名称,以连字符分隔)
页面上下文高(排名)周围的 HTML 内容
文件大小/速度中(通过 CWV 间接影响)压缩 + 格式转换
IPTC Creator/Copyright低(仅影响显示)图片文件元数据
EXIF 相机数据无与 SEO 无关
IPTC Keywords无Google 会忽略这些信息

错误处理

场景操作
URL 无法访问报告连接错误及状态代码。建议验证 URL 并检查网站是否需要身份验证。
页面上未找到图片报告未检测到 <img> 元素。建议检查图片是否通过 JavaScript 或 CSS background-image 加载。
图片位于 CDN 后方或需要身份验证说明无法直接访问图片文件以分析大小。报告可用的元数据(替代文本、尺寸、标记中的格式),并标记无法访问的资源。
未安装 exiftool改用 ImageMagick 读取元数据。建议:sudo apt install libimage-exiftool-perl
未安装 cwebp改用 ImageMagick 或 FFmpeg 转换为 WebP。建议:sudo apt install webp
DataForSEO MCP 不可用跳过 Image SERP Analysis 部分。注明未安装扩展。

评论

支持 Markdown