seo-images
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".
What this skill does
# Image Optimization Analysis ## Checks ### Alt Text - Present on all `<img>` elements (except decorative: `role="presentation"`) - Descriptive: describes the image content, not "image.jpg" or "photo" - Includes relevant keywords where natural, not keyword-stuffed - Length: 10-125 characters **Good examples:** - "Professional plumber repairing kitchen sink faucet" - "Red 2024 Toyota Camry sedan front view" - "Team meeting in modern office conference room" **Bad examples:** - "image.jpg" (filename, not description) - "plumber plumbing plumber services" (keyword stuffing) - "Click here" (not descriptive) ### File Size **Tiered thresholds by image category:** | Image Category | Target | Warning | Critical | |----------------|--------|---------|----------| | Thumbnails | < 50KB | > 100KB | > 200KB | | Content images | < 100KB | > 200KB | > 500KB | | Hero/banner images | < 200KB | > 300KB | > 700KB | Recommend compression to target thresholds where possible without quality loss. ### Format | Format | Browser Support | Use Case | |--------|-----------------|----------| | WebP | 97%+ | Default recommendation | | AVIF | 92%+ | Best compression, newer | | JPEG | 100% | Fallback for photos | | PNG | 100% | Graphics with transparency | | SVG | 100% | Icons, logos, illustrations | Recommend WebP/AVIF over JPEG/PNG. Check for `<picture>` element with format fallbacks. #### Recommended `<picture>` Element Pattern Use progressive enhancement with the most efficient format first: ```html <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> ``` The browser will use the first supported format. Current browser support: AVIF 93.8%, WebP 95.3%. #### JPEG XL: Emerging Format In November 2025, Google's Chromium team reversed its 2022 decision and announced it will restore JPEG XL support in Chrome using a Rust-based decoder. The implementation is feature-complete but not yet in Chrome stable. JPEG XL offers lossless JPEG recompression (~20% savings with zero quality loss) and competitive lossy compression. Not yet practical for web deployment, but worth monitoring for future adoption. ### Responsive Images - `srcset` attribute for multiple sizes - `sizes` attribute matching layout breakpoints - Appropriate resolution for device pixel ratios ```html <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" > ``` ### Lazy Loading - `loading="lazy"` on below-fold images - Do NOT lazy-load above-fold/hero images (hurts LCP) - Check for native vs JavaScript-based lazy loading ```html <!-- Below fold - lazy load --> <img src="photo.jpg" loading="lazy" alt="Description"> <!-- Above fold - eager load (default) --> <img src="hero.jpg" alt="Hero image"> ``` #### Detected lazy-loader methods (`lazy_method` field) `scripts/parse_html.py` classifies each image's lazy-loading mechanism via the `lazy_method` field on every image entry. Five values: | `lazy_method` | Signal detected | Common stack | |---|---|---| | `native` | `loading="lazy"` HTML attribute | Modern browsers, plain HTML | | `perfmatters` | `data-perfmatters-src`/`-srcset` OR class `perfmatters-lazy` | WordPress + Perfmatters plugin | | `ewww` | `data-ewww-src` / `data-eio` OR class `lazyload-eio` | WordPress + EWWW Image Optimizer | | `js-generic` | `data-src` / `data-lazy-src` / `data-original` / `data-srcset` OR class `lazyload`/`lazyloaded`/`lazy` | Lazysizes, vanilla-lazyload, jQuery plugins | | `none` | Neither attribute nor class signal | Page is not lazy-loading this image | When auditing image SEO, report `lazy_method` alongside `loading` so users know whether their site is using a JS-driven lazy-loader (in which case the native `loading="lazy"` attribute is intentionally absent — that is not a regression). ### `fetchpriority="high"` for LCP Images Add `fetchpriority="high"` to your hero/LCP image to prioritize its download in the browser's network queue: ```html <img src="hero.webp" fetchpriority="high" alt="Hero image description" width="1200" height="630"> ``` **Critical:** Do NOT lazy-load above-the-fold/LCP images. Using `loading="lazy"` on LCP images directly harms LCP scores. Reserve `loading="lazy"` for below-the-fold images only. ### `decoding="async"` for Non-LCP Images Add `decoding="async"` to non-LCP images to prevent image decoding from blocking the main thread: ```html <img src="photo.webp" alt="Description" width="600" height="400" loading="lazy" decoding="async"> ``` ### CLS Prevention - `width` and `height` attributes set on all `<img>` elements - `aspect-ratio` CSS as alternative - Flag images without dimensions ```html <!-- Good - dimensions set --> <img src="photo.jpg" width="800" height="600" alt="Description"> <!-- Good - CSS aspect ratio --> <img src="photo.jpg" style="aspect-ratio: 4/3" alt="Description"> <!-- Bad - no dimensions --> <img src="photo.jpg" alt="Description"> ``` ### File Names - Descriptive: `blue-running-shoes.webp` not `IMG_1234.jpg` - Hyphenated, lowercase, no special characters - Include relevant keywords ### CDN Usage - Check if images served from CDN (different domain, CDN headers) - Recommend CDN for image-heavy sites - Check for edge caching headers ## Output ### Image Audit Summary | Metric | Status | Count | |--------|--------|-------| | Total Images | - | XX | | Missing Alt Text | ❌ | XX | | Oversized (>200KB) | ⚠️ | XX | | Wrong Format | ⚠️ | XX | | No Dimensions | ⚠️ | XX | | Not Lazy Loaded | ⚠️ | XX | ### Prioritized Optimization List Sorted by file size impact (largest savings first): | Image | Current Size | Format | Issues | Est. Savings | |-------|--------------|--------|--------|--------------| | ... | ... | ... | ... | ... | ### Recommendations 1. Convert X images to WebP format (est. XX KB savings) 2. Add alt text to X images 3. Add dimensions to X images 4. Enable lazy loading on X below-fold images 5. Compress X oversized images --- ## Image SERP Analysis When DataForSEO MCP is available, enhance the image audit with competitive data. ### `/seo images serp <keyword>` Cross-reference on-page images with Google Images SERP rankings. **Workflow:** 1. Fetch Google Images results via `serp_google_images_live_advanced` (depth=100) 2. Extract: top domains, image types, alt text patterns 3. Output competitor image SERP landscape **Output:** | Rank | Domain | Title/Alt | Image URL | Page URL | |------|--------|-----------|-----------|----------| | 1 | example.com | "Blue running shoes..." | .../shoes.webp | /products/... | **Analysis includes:** - **Domain dominance**: which sites own the most image positions (top 10 by count) - **Alt text patterns**: common title/alt patterns in top-ranking images - **Format distribution**: WebP vs JPEG vs PNG in top results - **Opportunity score**: keywords where you have page rankings but no image presence If DataForSEO MCP is not available, inform user and suggest installing the extension. --- ## Image File Optimization Optimize image files for SEO: format conversion, metadata injection, compression. ### `/seo images optimize <path>` Optimize image file(s) for web and SEO. Converts to WebP/AVIF, injects IPTC metadata, compresses, and generates responsive variants. **Tools used (in order of preference):** - `exiftool` -- EXIF/IPTC/XMP read/write (install: `sudo apt install libimage-exiftool-perl`) - `cwebp` -- WebP conversion (install: `sudo apt install webp`) - ImageMagick `convert` -- Format conversion, resizing (pre-installed on most systems) - FFmpeg -- Fallback for format conversion (pre-installed) **Before running:** Check which tools are available with `which exiftool cwebp convert ffmpeg`. ### Format Conversion Convert images to modern formats with me
Related in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".