关于 seo-images
用于审查图片标记和文件的 SEO 技能,检查替代文本、格式、响应式交付、加载方式、尺寸及元数据。它还提供文件优化流程,并可选用 DataForSEO 分析 Google 图片搜索结果。
主要功能
- 01替代文本和图片标记审查
- 02文件大小与格式检查
- 03响应式图片和延迟加载检查
- 04元数据审查与写入指引
- 05WebP 和 AVIF 优化流程
- 06可选的图片搜索结果分析
适用场景
- 01发现缺失或不完善的图片描述
- 02确定大文件压缩优先级
- 03生成响应式图片变体
- 04将页面图片与图片搜索结果对照
MCP 相关
如有 DataForSEO MCP,该技能可查询 Google 图片结果以进行可选的图片搜索结果分析。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ agricidaniel/ codex-seo --skill seo-images安装后在 Claude Code 中输入/seo-images确认已加载。
附带文件LICENSE.txt
详细介绍
图片优化分析
共享数据缓存
步骤 0 —— 检查共享数据缓存:
开始收集前,检查 .seo-cache/ 中是否有可复用的相关 SEO 技能上下文。
参考 ../seo/references/shared-data-cache.md,了解架构和依赖关系图。
检查以下缓存文件(如果存在):
-
.seo-cache/site-meta.json:域名、业务类型、行业和抓取上下文 -
.seo-cache/audit-scores.json:之前完整审计的优先级 -
.seo-cache/pages/{url-slug}/page-analysis.json:提供 URL 时的页面级上下文 -
如果找到:解析并使用明确有效的字段(注明“使用来自 [date] 的缓存 [X]”)
-
如果缺失、损坏或不相关:继续收集新证据
-
如果用户说“refresh”或“re-run”:忽略缓存读取,并在写入时覆盖
检查项
Alt 文本
- 所有
<img>元素都应提供(装饰性图片除外:role="presentation") - 描述清晰:描述图片内容,而不是“image.jpg”或“photo”
- 自然地包含相关关键词,不要堆砌关键词
- 长度:10-125 个字符
良好示例:
- “专业水管工正在维修厨房水槽龙头”
- “红色 2024 款丰田凯美瑞轿车正面图”
- “现代办公室会议室中的团队会议”
不良示例:
- “image.jpg”(文件名,不是描述)
- “plumber plumbing plumber services”(关键词堆砌)
- “Click here”(描述不清晰)
文件大小
按图片类别划分的分级阈值:
| 图片类别 | 目标 | 警告 | 严重 |
|---|---|---|---|
| 缩略图 | < 50KB | > 100KB | > 200KB |
| 内容图片 | < 100KB | > 200KB | > 500KB |
| 主视觉图/横幅图 | < 200KB | > 300KB | > 700KB |
在不损失画质的前提下,尽可能建议压缩至目标阈值。
格式
| 格式 | 浏览器支持率 | 使用场景 |
|---|---|---|
| WebP | 97%+ | 默认推荐 |
| AVIF | 92%+ | 压缩效果最佳,格式较新 |
| JPEG | 100% | 照片的备用格式 |
| PNG | 100% | 带透明效果的图形 |
| SVG | 100% | 图标、徽标、插图 |
建议优先使用 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">
对 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-ratioCSS - 标记缺少尺寸的图片
<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 |
| 缺少 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 图片结果(depth=100) - 提取:顶级域名、图片类型、Alt 文本模式
- 输出竞争对手图片 SERP 格局
输出:
| 排名 | 域名 | 标题/Alt | 图片 URL | 页面 URL |
|---|---|---|---|---|
| 1 | example.com | "Blue running shoes..." | .../shoes.webp | /products/... |
分析包括:
- 域名占优情况:哪些网站占据最多图片排名位置(按数量排列的前 10 个)
- Alt 文本模式:排名靠前的图片中常见的标题/Alt 模式
- 格式分布:排名靠前的结果中 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 会自动处理此转换。
元数据审计
# 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,请对每张图片执行以下流程:
- 审计现有元数据:
exiftool -IPTC:all -XMP:all image.jpg - 注入 IPTC/XMP 元数据:Creator、Copyright、Description
- 转换为 WebP:
cwebp -q 82 -metadata all image.jpg -o image.webp - 生成响应式变体:400w、800w、1200w
- 验证元数据是否保留:
exiftool image.webp - 生成
<picture>HTML:AVIF > WebP > JPEG 回退链
Google 图片搜索中哪些因素重要,哪些不重要
| 因素 | 影响 | 设置位置 |
|---|---|---|
| 替代文本 | 至关重要(排名) | HTML <img alt=""> |
| 文件名 | 高(排名) | 文件系统(描述性名称,使用连字符分隔) |
| 页面上下文 | 高(排名) | 周围的 HTML 内容 |
| 文件大小/速度 | 中(通过 CWV 间接影响) | 压缩 + 格式转换 |
| IPTC 创作者/版权 | 低(仅影响显示) | 图像文件元数据 |
| EXIF 相机数据 | 无 | 与 SEO 无关 |
| IPTC 关键词 | 无 | 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 不可用 | 跳过“图片 SERP 分析”部分。注明未安装扩展。 |
写入共享数据缓存
完成所有工作后,如果工作流产生了可长期保留的发现,则将简洁的 JSON 摘要写入 .seo-cache/。
使用 ../seo/references/shared-data-cache.md 中的架构和命名规则;至少包含 cache_type、analyzed_at、源 URL/域名、关键发现、问题、建议和工具限制。如果缺少 .seo-cache/,请将其添加到 .gitignore。