agricidaniel/codex-seo

seo-image-gen

AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics.

Ver código fuente
Documento original del Skill

Contenido del repositorio de origen con títulos, ejemplos, código, tablas, enlaces e imágenes preservados.

SEO Image Gen: AI Image Generation for SEO Assets (Extension)

Shared Data Cache

Step 0 -- Check shared data cache:

Before gathering, check .seo-cache/ for reusable context from related SEO skills. Reference: ../seo/references/shared-data-cache.md for schemas and dependency map.

Check these cache files when present:

  • .seo-cache/site-meta.json for domain, business type, industry, and crawl context
  • .seo-cache/audit-scores.json for prior full-audit priorities
  • .seo-cache/pages/{url-slug}/page-analysis.json for page-level context when a URL is provided
  • If found: parse and use clearly valid fields (note "Using cached [X] from [date]")
  • If missing, corrupt, or irrelevant: continue with fresh evidence
  • If the user says "refresh" or "re-run": ignore cache reads and overwrite on write

Generate production-ready images for SEO use cases using Gemini's image generation via the banana Creative Director pipeline. Maps SEO needs to optimized domain modes, aspect ratios, and resolution defaults.

Architecture Note

This extension is built on the Banana image-generation pipeline for SEO-specific image workflows in Codex.

This skill has two components with distinct roles:

  • SKILL.md (this file): Handles interactive /seo image-gen commands for generating images
  • Agent (agents/seo-image-gen.toml): Audit-only analyst spawned during /seo audit to assess existing OG/social images and produce a generation plan (never auto-generates)

Prerequisites

This skill requires the banana extension to be installed:

bash
./extensions/banana/install.sh

Check availability: Before using any image generation tool, verify the MCP server is connected by checking if gemini_generate_image or set_aspect_ratio tools are available. If tools are not available, inform the user the extension is not installed and provide install instructions.

Quick Reference

CommandWhat it does
/seo image-gen og <description>Generate OG/social preview image (1200x630 feel)
/seo image-gen hero <description>Blog hero image (widescreen, dramatic)
/seo image-gen product <description>Product photography (clean, white BG)
/seo image-gen infographic <description>Infographic visual (vertical, data-heavy)
/seo image-gen custom <description>Custom image with full Creative Director pipeline
/seo image-gen batch <description> [N]Generate N variations (default: 3)

SEO Image Use Cases

Each use case maps to pre-configured banana parameters:

Use CaseAspect RatioResolutionDomain ModeNotes
OG/Social Preview16:91KProduct or UI/WebClean, professional, text-friendly
Blog Hero16:92KCinema or EditorialDramatic, atmospheric, editorial quality
Schema Image4:31KProductClean, descriptive, schema ImageObject
Social Square1:11KUI/WebPlatform-optimized square
Product Photo4:32KProductWhite background, studio lighting
Infographic2:34KInfographicData-heavy, vertical layout
Favicon/Icon1:1512LogoMinimal, scalable, recognizable
Pinterest Pin2:32KEditorialTall vertical card

Generation Pipeline

For every generation request:

  1. Identify use case from command or context (og, hero, product, etc.)
  2. Apply SEO defaults from the use cases table above
  3. Set aspect ratio via set_aspect_ratio MCP tool
  4. Construct Reasoning Brief using the banana Creative Director pipeline:
  • Load references/prompt-engineering.md for the 6-component system
  • Apply domain mode emphasis (Subject 30%, Style 25%, Context 15%, etc.)
  • Be SPECIFIC and VISCERAL: describe what the camera sees
  1. Generate via gemini_generate_image MCP tool
  2. Post-generation SEO checklist (see below)

Check for Presets

If the user mentions a brand or has SEO presets configured:

bash
python3 scripts/presets.py list

Load matching preset and apply as defaults. Also check references/seo-image-presets.md for SEO-specific preset templates.

Post-Generation SEO Checklist

After every successful generation, guide the user on:

  1. Alt text:Write descriptive, keyword-rich alt text for the generated image
  2. File naming:Rename to SEO-friendly format: keyword-description-widthxheight.webp
  3. WebP conversion:Convert to WebP for optimal page speed:
bash
   magick output.png -quality 85 output.webp
  1. File size:Target under 200KB for hero images, under 100KB for thumbnails
  2. Schema markup:Suggest ImageObject schema for the generated image:
json
   {
     "@type": "ImageObject",
     "url": "https://example.com/images/keyword-description.webp",
     "width": 1200,
     "height": 630,
     "caption": "Descriptive caption with target keyword"
   }
  1. OG meta tags:For social preview images, remind about:
html
   <meta property="og:image" content="https://example.com/images/og-image.webp" />
   <meta property="og:image:width" content="1200" />
   <meta property="og:image:height" content="630" />
   <meta property="og:image:alt" content="Descriptive alt text" />

Cost Awareness

Image generation costs money. Be transparent:

  • Show estimated cost before generating (especially for batch)
  • Log every generation: python3 scripts/cost_tracker.py log --model MODEL --resolution RES --prompt "brief"
  • Run cost_tracker.py summary if user asks about usage

Approximate costs (gemini-3.1-flash):

  • 512: ~$0.02/image
  • 1K resolution: ~$0.04/image
  • 2K resolution: ~$0.08/image
  • 4K resolution: ~$0.16/image

Model Routing

ScenarioModelWhy
OG images, social previewsgemini-3.1-flash-image-preview @ 1KFast, cost-effective
Hero images, product photosgemini-3.1-flash-image-preview @ 2KQuality + detail
Infographics with textgemini-3.1-flash-image-preview @ 2K, thinking: highBetter text rendering
Quick draftsgemini-2.5-flash-image @ 512Rapid iteration

Error Handling

ErrorResolution
MCP not configuredRun ./extensions/banana/install.sh
API key invalidNew key at https://aistudio.google.com/apikey
Rate limited (429)Wait 60s, retry. Free tier: ~10 RPM / ~500 RPD
IMAGE_SAFETYRephrase prompt - see references/prompt-engineering.md Safety section
MCP unavailableFall back: python3 scripts/generate.py --prompt "..." --aspect-ratio "16:9"
Extension not installedShow install instructions: ./extensions/banana/install.sh

Cross-Skill Integration

  • seo-images (analysis) feeds into seo-image-gen (generation): audit results from /seo images identify missing or low-quality images; use those findings to drive /seo image-gen commands
  • seo-audit spawns the seo-image-gen agent (not this skill) to analyze OG/social images across the site and produce a prioritized generation plan
  • seo-schema can consume generated images: after generation, suggest ImageObject schema markup pointing to the new assets

Reference Documentation

Load on-demand. Do NOT load all at startup:

  • references/prompt-engineering.md:6-component system, domain modes, templates
  • references/gemini-models.md:Model specs, rate limits, capabilities
  • references/mcp-tools.md:MCP tool parameters and responses
  • references/post-processing.md:ImageMagick/FFmpeg pipeline recipes
  • references/cost-tracking.md:Pricing, usage tracking
  • references/presets.md:Brand preset management
  • references/seo-image-presets.md:SEO-specific preset templates

Response Format

After generating, always provide:

  1. Image path:where it was saved
  2. Crafted prompt:show what was sent to the API (educational)
  3. Settings:model, aspect ratio, resolution
  4. SEO checklist:alt text suggestion, file naming, WebP conversion
  5. Schema snippet:ImageObject or og:image markup if applicable

Write to shared data cache

After completing all work, write a concise JSON summary to .seo-cache/ when the workflow produced durable findings. Use the schemas and naming rules in ../seo/references/shared-data-cache.md; include at least cache_type, analyzed_at, source URL/domain, key findings, issues, recommendations, and tool limitations. Add .seo-cache/ to .gitignore if it is missing.

del mismo repositorio

Más Skills

Todos los Skills
agricidaniel
Comunidad

seo-backlinks

Backlink 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.

instalaciones
1
GitHub Stars
674
Actualizado
20 jul
agricidaniel
Comunidad

seo-competitor-pages

Generate SEO-optimized competitor comparison and alternatives pages. Covers "X vs Y" layouts, "alternatives to X" pages, feature matrices, schema markup, and conversion optimization. Use when user says "comparison page", "vs page", "alternatives page", "competitor comparison", "X vs Y", "versus", "compare competitors", or "alternative to".

instalaciones
1
GitHub Stars
674
Actualizado
20 jul
agricidaniel
Comunidad

seo-content

Content quality and E-E-A-T analysis with AI citation readiness assessment. Use when user says "content quality", "E-E-A-T", "content analysis", "readability check", "thin content", or "content audit".

instalaciones
1
GitHub Stars
674
Actualizado
20 jul
agricidaniel
Comunidad

seo-firecrawl

Full-site crawling, scraping, and site mapping via Firecrawl MCP. Use when user says "crawl site", "map site", "full crawl", "find all pages", "broken links", "site structure", "discover pages", "JS rendering", or needs site-wide analysis.

instalaciones
1
GitHub Stars
674
Actualizado
20 jul