mcpField
S
seo-images

seo-images

github.com/agricidaniel营销与增长23.3k6.9k 次安装6 天前更新
代码仓库

关于 seo-images

seo-images 是用于网站图片 SEO 审核与优化的技能,面向网站维护者和 SEO 从业者。它检查图片描述、格式、尺寸与加载方式,并提供图片文件优化和 SERP 分析流程。

主要功能

  1. 01检查替代文本与图片文件名
  2. 02评估大小、格式和响应式设置
  3. 03检查延迟加载及 LCP 优先级
  4. 04审计尺寸与布局偏移风险
  5. 05转换压缩图片并处理元数据
  6. 06分析图片 SERP 竞争情况

适用场景

  1. 01审核网站图片 SEO 问题
  2. 02优化图片格式与文件体积
  3. 03检查 AI 生成商品图的 IPTC 标签
  4. 04对照 Google 图片结果分析竞争

安装

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

$npx skills add https://github.com/agricidaniel/claude-seo --skill seo-images

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

附带文件LICENSE.txt

详细介绍

图片优化分析

检查项

替代文本
  • 所有 <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>

浏览器会使用第一个受支持的格式。全球浏览器支持率(数据来源:caniuse.com,查询日期:2026-09-28):AVIF 约为 95.4%,WebP 约为 96.8%。引用数据前请重新检查 caniuse。

JPEG XL:新兴格式

第三方报道和 Wikipedia 称,基于 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="Description"
>
延迟加载
  • 对首屏以下的图片使用 loading="lazy"
  • 不要对首屏或主视觉图片进行延迟加载(会损害 LCP)
  • 检查使用的是原生延迟加载还是基于 JavaScript 的延迟加载

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


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

"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run parse_html.py 会通过每个图片条目中的 lazy_method 字段,对图片的延迟加载机制进行分类。共有五种取值:

lazy_method检测到的信号常见技术栈
nativeloading="lazy" HTML 属性现代浏览器、纯 HTML
perfmattersdata-perfmatters-src/-srcset 或 class perfmatters-lazyWordPress + Perfmatters 插件
ewwwdata-ewww-src/data-eio 或 class lazyload-eioWordPress + EWWW Image Optimizer
js-genericdata-src/data-lazy-src/data-original/data-srcset 或 class lazyload/lazyloaded/lazyLazysizes、vanilla-lazyload、jQuery 插件
none没有属性或 class 信号页面未对该图片启用延迟加载

审计图片 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 属性
  • 或使用 aspect-ratio CSS
  • 标记未设置尺寸的图片

<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. 固定版本的 DataForSEO MCP 服务(2.8.10)没有 Google Images SERP 工具。 如果 SERP 中有 images 元素,则使用 serp_organic_live_advanced 的 images 元素(depth=100);如果没有图片 SERP 数据,则明确说明
  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 Images 展示的 IPTC)

Google Images 会在搜索结果中显示 IPTC Creator、Credit Line 和 Copyright。 这不是排名因素,但可以改善 Google Images 中的展示效果和品牌归属信息。

使用 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 中缺少此标签, 可能会被拒登。

主要来源(Merchant Center AI 生成内容政策): https://support.google.com/merchants/answer/14743464 (ai-optimization-guide 未记录 DigitalSourceType/IPTC/Merchant 标注。)

审计命令:

# Audit a directory for the IPTC label (counts: missing, ai, captured, etc.)
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run iptc_ai_label.py audit ./images/ --json

# Audit a single image
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run iptc_ai_label.py audit ./hero.webp --json

# Inject the AI label into an image
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run iptc_ai_label.py inject ./ai-hero.webp \
    --source-type trainedAlgorithmicMedia

# Other vocabulary values:
#   compositeSynthetic               (mix of captured + AI elements)
#   algorithmicMedia                 (created purely by algorithm, NOT from sampled training data)
#   compositeWithTrainedAlgorithmicMedia (e.g. AI inpainting/outpainting over real media)
#   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

Google 会提取以下 IPTC DigitalSourceType 值:

  • trainedAlgorithmicMedia:完全由 AI 生成(扩散模型生成的产品图片应使用此值)
  • compositeSynthetic:混合实拍与 AI 生成的元素
  • algorithmicMedia:纯粹由算法创建,并非基于采样的训练数据
  • compositeWithTrainedAlgorithmicMedia:训练算法生成的媒体与其他媒体合成(例如,在真实照片上通过 AI 修补或扩展图像)
  • digitalCapture:完全由相机拍摄的照片(注意:digitalCapture 不在 Google 提取值列表中,但它是有效的 IPTC 值)

来源信号(面向消费者): SynthID 水印和 C2PA Content Credentials 是新兴的 AI 媒体识别信号。除非已从最新的 Google 官方来源核实, 否则应视其在产品界面上的覆盖情况可能发生变化。 这是检测/透明度措施,不是 IPTC DigitalSourceType 之外额外必需的商品 Feed 字段。

**可授权图片:**若要获得 Licensable 徽章,请提供以下任一项:结构化 数据(包含 license 属性及 acquireLicensePage 的 ImageObject,用于 “获取此图片”链接),或嵌入的 IPTC 照片元数据(许可方 URL/权利声明)。 通过交叉引用 seo-schema 获取 ImageObject 标记。

发现说明:图片发现现在还包括跨 Lens/AI Mode/Circle to Search 的视觉搜索扩展 (Gemini 多模态场景/对象理解),因此图片会通过场景、对象和材质呈现,而非仅靠 alt 文本。目前尚无新的已发布图片 SEO 方法;请继续使用描述性 alt 文本和 整洁的结构化数据。

运行 /seo images optimize 处理 AI 生成的素材时,应提示用户 确认来源类型,并自动注入匹配的 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 元数据:创作者、版权、描述
  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 图片搜索而言,哪些因素重要,哪些不重要
因素影响设置位置
Alt 文本关键(排名)HTML <img alt="">
文件名高(排名)文件系统(描述性名称,使用连字符)
页面上下文高(排名)周围的 HTML 内容
文件大小/速度中(通过 CWV 间接影响)压缩 + 格式转换
IPTC Creator/Copyright低(仅影响展示)图片文件元数据
EXIF 相机数据无与 SEO 无关
IPTC Keywords无Google 会忽略

错误处理

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

评论

支持 Markdown