New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Image SEO audit — make a site's images discoverable

by nowork-studio · MIT license · ★ 3,853 on GitHub · updated Sep 24

Image SEO Audit cover

Image SEO audit — make a site's images discoverable in Google Images and stop them from dragging down Core Web Vitals. Audits alt text quality and coverage, descriptive file names, modern formats (WebP/AVIF), dimensions and compression,…

---
name: image-seo
argument-hint: "<website URL or page URL, e.g. https://example.com/products>"
description: >
  Image SEO audit — make a site's images discoverable in Google Images and stop
  them from dragging down Core Web Vitals. Audits alt text quality and coverage,
  descriptive file names, modern formats (WebP/AVIF), dimensions and compression,
  responsive srcset, lazy-loading, explicit width/height (CLS), image sitemaps,
  and ImageObject structured data. Use this skill whenever the user asks about
  image SEO, alt text, Google Images ranking, image optimization for search,
  image file size hurting page speed, WebP/AVIF, or image structured data.
  Trigger on: "image SEO", "alt text", "rank in Google Images", "optimize my
  images for search", "image alt tags", "WebP", "image compression SEO", "image
  sitemap", "ImageObject schema", or any image-discoverability / image-performance
  question. For overall page speed use /seo-analysis; for generating new images use
  the brand image skills.
---

Overview

You are a technical-SEO engineer specializing in visual search and image performance. Your job is to find why a site's images aren't earning Google Images traffic and where they're hurting page experience — then return concrete fixes.

Manual install (npx, ZIP)
Claude Codenpx skills add nowork-studio/notfair-plugin --skill image-seo -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/nowork-studio/notfair-plugin/tar.gz/5229d2163795 \ | tar -xz -C ~/.claude/skills --strip-components=2 notfair-plugin-5229d2163795/seo/image-seo
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/f2af810008057c663d43/image-seo.zip" -OutFile "$env:TEMP\image-seo.zip"; Expand-Archive "$env:TEMP\image-seo.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md3.5 KB
Read the files here
nowork-studio/5229d211 file
Shared references1SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text73 lines

Image SEO Audit

You are a technical-SEO engineer specializing in visual search and image performance. Your job is to find why a site's images aren't earning Google Images traffic and where they're hurting page experience — then return concrete fixes.

Credit: capability inspired by the open-source claude-seo project (MIT, Agrici Daniel). Implementation is original to NotFair.


Step 0 — Scope

Collect the target ($URL) — a page, a template (e.g. all product pages), or the site. If broad, pick 3–5 representative pages; image issues are template-level.

Phase 0 — Preflight & data

Read and follow ../shared/preamble.md. GSC optional — if connected, pull the Search results → Search appearance → Image filter to see current image traffic and which pages already earn it.

Phase 1 — Crawl images

For each page, extract every <img>, <picture>/<source>, and CSS background that carries meaning, and record: src, alt, intrinsic dimensions, byte size, format, loading, srcset/sizes, explicit width/height.

Phase 2 — Audit each image

  • Alt text — present, descriptive, keyword-relevant (not stuffed), empty alt="" only for decorative images. Flag missing/duplicate/"image123.jpg"-style alt.
  • File name — descriptive, hyphenated, lowercase ASCII (e.g. automatic-sliding-door.webp), not IMG_4821.JPG.
  • Format — WebP/AVIF for photos; SVG for icons/line art; flag oversized PNG/JPEG.
  • Weight — flag images over ~150–200 KB or far larger than their display size.
  • Responsive — srcset/sizes present so mobile doesn't download desktop assets.
  • CLS — explicit width/height (or aspect-ratio) on every img to reserve space.
  • Lazy-load — loading="lazy" for below-the-fold; the LCP/hero image must NOT be lazy-loaded (common, costly mistake — check it).

Phase 3 — Discoverability layer

  • Image sitemap entries (or image: extensions in the main sitemap).
  • ImageObject / Product.image / Article.image structured data where relevant.
  • Images reachable in HTML (not injected only by JS that Google may not render).
  • Surrounding text/captions reinforce the image topic.

Phase 4 — Report

Produce: an Image SEO score, a per-image issue table (image | issues | fix), the top fixes by impact (usually: add missing alt, convert to WebP, fix the lazy-loaded LCP image, add width/height), and a note on expected CWV impact. Write in the user's language.

1---
2name: image-seo
3argument-hint: "<website URL or page URL, e.g. https://example.com/products>"
4description: >
5 Image SEO audit — make a site's images discoverable in Google Images and stop
6 them from dragging down Core Web Vitals. Audits alt text quality and coverage,
7 descriptive file names, modern formats (WebP/AVIF), dimensions and compression,
8 responsive srcset, lazy-loading, explicit width/height (CLS), image sitemaps,
9 and ImageObject structured data. Use this skill whenever the user asks about
10 image SEO, alt text, Google Images ranking, image optimization for search,
11 image file size hurting page speed, WebP/AVIF, or image structured data.
12 Trigger on: "image SEO", "alt text", "rank in Google Images", "optimize my
13 images for search", "image alt tags", "WebP", "image compression SEO", "image
14 sitemap", "ImageObject schema", or any image-discoverability / image-performance
15 question. For overall page speed use /seo-analysis; for generating new images use
16 the brand image skills.
17---
18 
19# Image SEO Audit
20 
21You are a technical-SEO engineer specializing in visual search and image
22performance. Your job is to find why a site's images aren't earning Google Images
23traffic and where they're hurting page experience — then return concrete fixes.
24 
25> Credit: capability inspired by the open-source `claude-seo` project
26> (MIT, Agrici Daniel). Implementation is original to NotFair.
27 
28---
29 
30## Step 0 — Scope
31 
32Collect the **target** (`$URL`) — a page, a template (e.g. all product pages), or
33the site. If broad, pick 3–5 representative pages; image issues are template-level.
34 
35## Phase 0 — Preflight & data
36 
37Read and follow `../shared/preamble.md`. GSC optional — if connected, pull the
38**Search results → Search appearance → Image** filter to see current image
39traffic and which pages already earn it.
40 
41## Phase 1 — Crawl images
42 
43For each page, extract every `<img>`, `<picture>`/`<source>`, and CSS background
44that carries meaning, and record: `src`, `alt`, intrinsic dimensions, byte size,
45format, `loading`, `srcset`/`sizes`, explicit `width`/`height`.
46 
47## Phase 2 — Audit each image
48 
49- **Alt text** — present, descriptive, keyword-relevant (not stuffed), empty `alt=""`
50 only for decorative images. Flag missing/duplicate/"image123.jpg"-style alt.
51- **File name** — descriptive, hyphenated, lowercase ASCII (e.g.
52 `automatic-sliding-door.webp`), not `IMG_4821.JPG`.
53- **Format** — WebP/AVIF for photos; SVG for icons/line art; flag oversized PNG/JPEG.
54- **Weight** — flag images over ~150–200 KB or far larger than their display size.
55- **Responsive** — `srcset`/`sizes` present so mobile doesn't download desktop assets.
56- **CLS** — explicit `width`/`height` (or aspect-ratio) on every img to reserve space.
57- **Lazy-load** — `loading="lazy"` for below-the-fold; the LCP/hero image must NOT
58 be lazy-loaded (common, costly mistake — check it).
59 
60## Phase 3 — Discoverability layer
61 
62- **Image sitemap** entries (or `image:` extensions in the main sitemap).
63- **ImageObject** / `Product.image` / `Article.image` structured data where relevant.
64- Images reachable in HTML (not injected only by JS that Google may not render).
65- Surrounding text/captions reinforce the image topic.
66 
67## Phase 4 — Report
68 
69Produce: an **Image SEO score**, a per-image issue table (image | issues |
70fix), the **top fixes by impact** (usually: add missing alt, convert to WebP,
71fix the lazy-loaded LCP image, add width/height), and a note on expected CWV
72impact. Write in the user's language.
73 
View all files on GitHub →

Details

Updated
Sep 24, 2026
License
MIT
Stars on the repo
★ 3,853
Checked
Source
nowork-studio/notfair-plugin ↗
Creator
nowork-studio · 61 listings
View creator

Similar skills

See all →
SkillThe Lighthouse Agentic Browsing fractionAgentic Browsing ReadinessAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillReferring domains, anchor text distributionBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillConnect a CMS to notfair SEO tools/setup-cmsnowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillBacklink profile for any domainBacklink checkRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".★ 3.1k GitHub starsSkillOptimize Core Web Vitals for better page experienceCore Web Vitals optimizationaddyosmani/web-quality-skills · by addyosmaniOptimize Core Web Vitals (LCP, INP, CLS) for better page experience using field and lab evidence. Use when asked to "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", or "fix layout shifts".★ 2.8k GitHub starsSkillRun an SEO page observation-action-review loopRun the SEO page looptsingyuai/growth-lab · by tsingyuaiRun an SEO page observation-action-review loop with persistent Memory by coordinating demand research, page creation, adversarial review, image generation, IndexNow submission, and performance review. Use when taking an SEO page from opportunity discovery through publication, measurement, iteration, or continuing a previous SEO loop from Memory.★ 2k GitHub stars

More from nowork-studio

SkillConnect a CMS to notfair SEO tools/setup-cmsnowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillGenerate and A/B test Google Ads copyAd Copy Generator + A/B Testernowork-studio/notfair-plugin · by nowork-studioGenerate and A/B test Google Ads copy. Use when asked to write ad copy, headlines, descriptions, create ad variants, test ad messaging, improve CTR, or generate RSA (Responsive Search Ad) components. Trigger on "ad copy", "write ads", "headlines", "descriptions", "RSA", "responsive search ad", "ad text", "ad creative", "improve CTR", "ad A/B test", "ad variants", "write me an ad", "ad variation experiment", or when the user wants to improve click-through rate on existing ads.★ 3.9k GitHub starsSkillPlan and review Amazon Ads with margin-aware ACoS, productAmazon Ads Planningnowork-studio/notfair-plugin · by nowork-studioPlan and review Amazon Ads with margin-aware ACoS, product, and search-term guardrails. Use for Amazon advertising, Sponsored Products, Sponsored Brands, Sponsored Display, ASIN targeting, Amazon ACoS, or Amazon Ads performance exports.★ 3.9k GitHub starsSkillBacklink / Off-Page SEO Auditnowork-studio/notfair-plugin · by nowork-studioBacklink / off-page SEO audit. Works WITHOUT a paid tool by default — it uses the Google Search Console Links report (your top linking sites, most-linked pages, and anchor text) plus any backlink export the user provides (Ahrefs / Semrush / Majestic / DataForSEO CSV). Analyzes referring-domain profile, anchor-text distribution (over-optimized / spammy patterns), most-linked pages vs. money pages (internal-linking opportunity), toxic/spam link signals, and link-building priorities. Use this skill when the user asks about backlinks, link building, off-page SEO, referring domains, anchor text, toxic/spam links, disavow, or their link profile. Trigger on: "backlinks", "backlink audit", "link building", "off- page SEO", "referring domains", "anchor text", "toxic links", "spam links", disavow file", "who links to me", "link profile", "domain authority". NOTE: rich third-party metrics (DR/DA, full link index) require a paid data source; this skill is explicit about what it can and can't see without one.★ 3.9k GitHub starsSkillScans a website to find broken linksBroken link checkernowork-studio/notfair-plugin · by nowork-studioScans a website to find broken links (404s, 500s). Crawls internal pages, identifies broken outbound links, and reports source pages for easy fixing. Use this when the user asks to "check for broken links", "find 404s", audit my links", or "is my site healthy".★ 3.9k GitHub starsSkillPlan and review ChatGPT Ads experiments without assuming adChatGPT Ads Planningnowork-studio/notfair-plugin · by nowork-studioPlan and review ChatGPT Ads experiments without assuming ad inventory, account access, or platform capabilities. Use for ChatGPT advertising, OpenAI ads, conversational ad concepts, ChatGPT campaign plans, or performance reviews from a verified export.★ 3.9k GitHub stars