Roier SEO
davila7/claude-code-templates
Technical SEO auditor and fixer. An agent skill from davila7/claude-code-templates.
Audits alt text, file size, format, and responsive markup on page images, and flags a missing WebP or AVIF fallback.
$ npx skills add AgriciDaniel/claude-seo --skill seo-images -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AgriciDaniel/claude-seo seo-images --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/seo-images .claude/skills/seo-images && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "seo-images" agent skill from https://github.com/AgriciDaniel/claude-seo/tree/main/skills/seo-images into .claude/skills/seo-images/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-images", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AgriciDaniel/claude-seo/tree/main/skills/seo-imagesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AgriciDaniel/claude-seo --skill seo-images -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AgriciDaniel/claude-seo seo-images --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/seo-images .agents/skills/seo-images && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "seo-images" agent skill from https://github.com/AgriciDaniel/claude-seo/tree/main/skills/seo-images into .agents/skills/seo-images/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-images", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/claude-seo --skill seo-images -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AgriciDaniel/claude-seo seo-images --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/seo-images .cursor/skills/seo-images && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "seo-images" agent skill from https://github.com/AgriciDaniel/claude-seo/tree/main/skills/seo-images into .cursor/skills/seo-images/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-images", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AgriciDaniel/claude-seo.git --path skills/seo-images--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AgriciDaniel/claude-seo --skill seo-images -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AgriciDaniel/claude-seo seo-images --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/seo-images .gemini/skills/seo-images && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "seo-images" agent skill from https://github.com/AgriciDaniel/claude-seo/tree/main/skills/seo-images into .gemini/skills/seo-images/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-images", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AgriciDaniel/claude-seo seo-imagesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AgriciDaniel/claude-seo --skill seo-images -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/seo-images .github/skills/seo-images && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "seo-images" agent skill from https://github.com/AgriciDaniel/claude-seo/tree/main/skills/seo-images into .github/skills/seo-images/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-images", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/claude-seo --skill seo-images -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AgriciDaniel/claude-seo seo-images --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/seo-images .opencode/skills/seo-images && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "seo-images" agent skill from https://github.com/AgriciDaniel/claude-seo/tree/main/skills/seo-images into .opencode/skills/seo-images/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-images", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
seo-imagesAudits alt text, file size, format, and responsive markup on page images, and flags a missing WebP or AVIF fallback.
Alt text gets checked for presence, length between roughly 10 and 125 characters, and genuine description rather than a filename or keyword stuffing, while file size is checked against tiered thresholds that differ for thumbnails, content images, and hero banners. Format recommendations favor WebP or AVIF behind a picture element with a JPEG or PNG fallback, and responsive markup is checked for srcset and sizes attributes matching the page's actual layout breakpoints.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4b99de2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
aptffmpegFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
cv.iptc.orgAlso links to:
support.google.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Image SEO and Optimization Audit loads about 4.2k tokens when it runs. Until then it costs about 115 tokens; SKILL.md has 1,474 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
` -- EXIF/IPTC/XMP read/write (install: `sudo apt install libimage-exiftool-perl`)- `cwebp` -- WebP conversion (install: `sudo apt install webp`)to ImageMagick for metadata. Recommend: `sudo apt install libimage-exiftool-perl` |FFmpeg for WebP conversion. Recommend: `sudo apt install webp` |Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from AgriciDaniel/claude-seo at commit 4b99de2, republished under its MIT licence (© AgriciDaniel). 1,474 words, ~4,239 tokens.
.claude/skills/seo-images/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.<img> elements (except decorative: role="presentation")Good examples:
Bad examples:
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 | 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.
<picture> Element PatternUse progressive enhancement with the most efficient format first:
<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. Global browser support (caniuse.com, checked 2026-09-28): AVIF about 95.4%, WebP about 96.8%. Re-check caniuse before quoting.
Third-party reporting and Wikipedia describe a Rust-based JPEG XL decoder as shipped in Chrome 145 stable (2026-02-10) behind the chrome://flags/#enable-jxl-image-format flag, not enabled by default; no Google-owned confirmation was retrieved in the fact pack. Because default support is not confirmed, it is not yet practical for production web delivery. Keep serving AVIF/WebP with JPEG fallback and monitor.
srcset attribute for multiple sizessizes attribute matching layout breakpoints<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" on below-fold images<!-- Below fold - lazy load -->
<img src="photo.jpg" loading="lazy" alt="Description">
<!-- Above fold - eager load (default) -->
<img src="hero.jpg" alt="Hero image">lazy_method field)"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run 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 ImagesAdd fetchpriority="high" to your hero/LCP image to prioritize its download in the browser's network queue:
<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 ImagesAdd decoding="async" to non-LCP images to prevent image decoding from blocking the main thread:
<img src="photo.webp" alt="Description" width="600" height="400" loading="lazy" decoding="async">width and height attributes set on all <img> elementsaspect-ratio CSS as alternative<!-- 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">blue-running-shoes.webp not IMG_1234.jpg| Metric | Status | Count |
|---|---|---|
| Total Images | - | XX |
| Missing Alt Text | ❌ | XX |
| Oversized (>200KB) | ⚠️ | XX |
| Wrong Format | ⚠️ | XX |
| No Dimensions | ⚠️ | XX |
| Not Lazy Loaded | ⚠️ | XX |
Sorted by file size impact (largest savings first):
| Image | Current Size | Format | Issues | Est. Savings |
|---|---|---|---|---|
| ... | ... | ... | ... | ... |
When DataForSEO MCP is available, enhance the image audit with competitive data.
/seo images serp <keyword>Cross-reference on-page images with the image results visible in the Google SERP.
Workflow:
images element of serp_organic_live_advanced (depth=100) when the
SERP has one, and say plainly when no image SERP data is availableOutput:
| Rank | Domain | Title/Alt | Image URL | Page URL |
|---|---|---|---|---|
| 1 | example.com | "Blue running shoes..." | .../shoes.webp | /products/... |
Analysis includes:
If DataForSEO MCP is not available, inform user and suggest installing the extension.
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)convert -- Format conversion, resizing (pre-installed on most systems)Before running: Check which tools are available with which exiftool cwebp convert ffmpeg.
Convert images to modern formats with metadata preservation:
# 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.webpGoogle Images displays IPTC Creator, Credit Line, and Copyright in search results. This is NOT a ranking factor but can improve Google Images display and brand attribution.
With exiftool (preferred):
# 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 *.pngWith ImageMagick (fallback):
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.jpgNote: WebP supports EXIF and XMP but not IPTC natively. For WebP files, use XMP fields instead of IPTC. exiftool handles this conversion automatically.
DigitalSourceType (Merchant Center requirement)For product images produced by generative AI, Google Merchant Center requires
IPTC DigitalSourceType: TrainedAlgorithmicMedia metadata. This is an
operational policy requirement, not a ranking factor: feeds missing this label
on AI-generated imagery can be disapproved.
Primary source (Merchant Center AI-generated content policy): https://support.google.com/merchants/answer/14743464 (the ai-optimization-guide does not document DigitalSourceType/IPTC/Merchant labeling.)
Audit command:
# 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)Raw exiftool equivalents (for ad-hoc usage):
# 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 *.pngGoogle extracts these IPTC DigitalSourceType values:
trainedAlgorithmicMedia: fully AI-generated (use this for diffusion-model
product imagery)compositeSynthetic: mixes captured + AI-generated elementsalgorithmicMedia: created purely by an algorithm, not from sampled
training datacompositeWithTrainedAlgorithmicMedia: composite of trained algorithmic
media + other media (e.g. AI inpainting/outpainting over a real photo)digitalCapture: fully captured photograph (note: digitalCapture is not
on Google's extracted-values list, but is a valid IPTC value)Provenance signals (consumer-facing): SynthID watermarks and C2PA Content Credentials are emerging signals for AI media identification. Treat product-surface coverage as subject to change unless verified from a current Google-owned source. This is detection/transparency, not an extra required Merchant feed field beyond IPTC DigitalSourceType.
Licensable images: to earn the Licensable badge, supply EITHER structured data (
ImageObjectwith thelicenseproperty +acquireLicensePagefor the "Get this image" link) OR embedded IPTC photo metadata (Licensor URL / Web Statement of Rights). Cross-linkseo-schemafor the ImageObject markup.
Discovery note: image discovery now includes visual search fan-out across Lens / AI Mode / Circle to Search (Gemini multimodal scene/object understanding), so images surface via scene, objects, and materials, not alt text alone. No new published image-SEO lever yet; keep descriptive alt text + clean structured data.
When /seo images optimize is run on AI-generated assets, prompt the user to
confirm the source type and inject the matching IPTC value automatically.
For AI-generated product titles and descriptions, Google Merchant Center
also requires the AI-generated text to be separately specified and labeled in
the feed. This is enforced at the feed layer, not the page layer, flag this
in cross-reference with 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 *.pngFor maximum image SEO, run this pipeline on each image:
exiftool -IPTC:all -XMP:all image.jpgcwebp -q 82 -metadata all image.jpg -o image.webpexiftool image.webp<picture> HTML: AVIF > WebP > JPEG fallback chain| Factor | Impact | Where to Set |
|---|---|---|
| Alt text | CRITICAL (ranking) | HTML <img alt=""> |
| Filename | HIGH (ranking) | File system (descriptive, hyphenated) |
| Page context | HIGH (ranking) | Surrounding HTML content |
| File size/speed | MEDIUM (indirect via CWV) | Compression + format conversion |
| IPTC Creator/Copyright | LOW (display only) | Image file metadata |
| EXIF camera data | NONE | Irrelevant for SEO |
| IPTC Keywords | NONE | Google ignores these |
| Scenario | Action |
|---|---|
| URL unreachable | Report connection error with status code. Suggest verifying URL and checking if site requires authentication. |
| No images found on page | Report that no <img> elements were detected. Suggest checking if images are loaded via JavaScript or CSS background-image. |
| Images behind CDN or authentication | Note that image files could not be directly accessed for size analysis. Report available metadata (alt text, dimensions, format from markup) and flag inaccessible resources. |
| exiftool not installed | Fall back to ImageMagick for metadata. Recommend: sudo apt install libimage-exiftool-perl |
| cwebp not installed | Fall back to ImageMagick or FFmpeg for WebP conversion. Recommend: sudo apt install webp |
| DataForSEO MCP not available | Skip Image SERP Analysis section. Note extension is not installed. |
© AgriciDaniel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/seo-images of AgriciDaniel/claude-seo.
Open the folder on GitHubat commit 4b99de2
We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in AgriciDaniel/claude-seo, which our catalogue first saw on October 7, 2026.
Image SEO and Optimization Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Image SEO and Optimization Audit this skillAgriciDaniel/claude-seo | 19k | 2 repos | ~4.2k | Automated safety check: Notes | MIT | |
| Roier SEOdavila7/claude-code-templates | 33k | — | ~2.7k | Automated safety check: Pass | MIT | |
| SEO GoogleAgriciDaniel/codex-seo | 799 | 2 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Landing CraftEliasOulkadi/shokunin | 114 | — | ~4.5k | Automated safety check: Pass | MIT | |
| Ship Checktextura-agency/next16-claude-starter | 133 | — | ~1.5k | Automated safety check: Notes | Unlicense | |
| SEO PerformanceAgriciDaniel/codex-seo | 799 | — | ~733 | Automated safety check: Pass | Custom licence |
davila7/claude-code-templates
Technical SEO auditor and fixer. An agent skill from davila7/claude-code-templates.
AgriciDaniel/codex-seo
Google SEO APIs: Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, and GA4 organic traffic.
EliasOulkadi/shokunin
Build conversion-optimized landing pages with CRO frameworks (Conversion Research, LIFT Model), scroll effects, A/B testing, personalization, form optimization, and Core Web Vitals (INP, LCP, CLS).
textura-agency/next16-claude-starter
Pre-launch gate for this starter — build, mechanical rule checks, SEO, metadata and brand-kit completeness, the robot form, measured load (Lighthouse people + robot) and scroll (PC + phone)…
AgriciDaniel/codex-seo
Performance specialist for full audits. An agent skill from AgriciDaniel/codex-seo.
xenitV1/Antigravity-Workflows
SEO fundamentals, E-E-A-T, Core Web Vitals, and Google algorithm principles.
AgriciDaniel/claude-seo
Audits, validates and generates hreflang tags for multi-language and multi-region sites in HTML, HTTP headers or XML sitemaps, flagging common code and return-tag mistakes.
AgriciDaniel/claude-seo
Pulls real Google data for SEO work: Search Console, PageSpeed Insights, CrUX field data, the Indexing API and GA4 organic traffic, through /seo google commands.
AgriciDaniel/claude-seo
Clusters keywords by how much their search results overlap and designs a hub-and-spoke content plan with an internal link matrix and an interactive cluster map.
AgriciDaniel/claude-seo
Builds research-backed SEO content briefs with competitor scoring, per-section word counts and page-type templates, for new pages or improving existing ones.
AgriciDaniel/claude-seo
Brings the FLOW framework's stage-specific SEO prompts into the agent, from keyword discovery through backlinks, on-page work and conversion to local SEO, loaded on demand.
AgriciDaniel/claude-seo
Generates Open Graph previews, blog hero images, product photos and infographics for SEO use through Gemini image tools and the banana extension.
Categories
Audits alt text, file size, format, and responsive markup on page images, and flags a missing WebP or AVIF fallback. Alt text gets checked for presence, length between roughly 10 and 125 characters, and genuine description rather than a filename or keyword stuffing, while file size is checked against tiered thresholds that differ for thumbnails, content images, and hero banners. Format recommendations favor WebP or AVIF behind a picture element with a JPEG or PNG fallback, and responsive markup is checked for srcset and sizes attributes matching the page's actual layout breakpoints.
Image SEO and Optimization Audit fits situations like: auditing alt text across a page's images for SEO; checking whether images exceed their size thresholds; adding a WebP or AVIF fallback with a picture element.
Run `npx skills add AgriciDaniel/claude-seo --skill seo-images -a claude-code`. Or copy the skill folder (skills/seo-images in AgriciDaniel/claude-seo) into .claude/skills/seo-images in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AgriciDaniel/claude-seo --skill seo-images -a codex`. Or copy the skill folder (skills/seo-images in AgriciDaniel/claude-seo) into .agents/skills/seo-images in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgriciDaniel/claude-seo --skill seo-images -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-images, .gemini/skills/seo-images, .github/skills/seo-images and .opencode/skills/seo-images in your project.
Going by SKILL.md and its folder, Image SEO and Optimization Audit needs the command-line tools its instructions call (apt and ffmpeg).
SKILL.md names 2 domains. In commands or code: cv.iptc.org; the agent is likely to contact it when it follows the instructions. As links in the text: support.google.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Image SEO and Optimization Audit is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Image SEO and Optimization Audit: Roier SEO (davila7/claude-code-templates, 33k stars), SEO Google (AgriciDaniel/codex-seo, 799 stars), Landing Craft (EliasOulkadi/shokunin, 114 stars) and Ship Check (textura-agency/next16-claude-starter, 133 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AgriciDaniel (a GitHub user) maintains it in AgriciDaniel/claude-seo, which has 18,627 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 4, 2026.
Source: AgriciDaniel/claude-seo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.