Skip to content

Complete Image SEO Guide: How I Increased a Client's Traffic by 40%

· 5 min read · Imagic AI Team

Image SEO is often overlooked. I grew one client's organic traffic by 40% in 3 months through image optimization alone—no new content, no new backlink

Complete Image SEO Guide: How I Increased a Client's Traffic by 40%

Image SEO gets ignored a lot.

But Google Images can drive serious traffic, and most websites haven't optimized for it at all.

I grew one client's organic traffic by 40% in 3 months through image optimization alone—no new content, no new backlinks.


Why Image SEO Matters

Google Images traffic is huge:

  • 20-30% of search results include images
  • Google Images drives significant traffic
  • Most competitors completely ignore this

The 5 Pillars of Image SEO

  1. Alt tags - Describe your images
  2. File names - Use keywords
  3. File size - Fast loading
  4. Format - Use modern formats
  5. Sitemap - Help Google find images

1. Alt Tags

What are Alt Tags?

Text descriptions of images. Used for:

  • Screen readers (accessibility)
  • Google understanding image content
  • Display when images fail to load

Good vs Bad Alt Tags

Bad:

<img src="IMG_1234.jpg" alt="">
<img src="product.jpg" alt="photo">
<img src="blue-dress.jpg" alt="image">

Good:

<img src="blue-summer-dress.jpg" alt="Women's blue floral summer dress with white polka dots">

How to Write Alt Tags

Formula:

[Subject] + [Action/Description] + [Context]

Examples:

Image Type Alt Tag
Product photo "Red running shoes with white sole and black laces"
Team photo "Marketing team celebrating Q4 success in conference room"
Infographic "Chart showing 40% increase in mobile traffic from 2024 to 2025"
Blog cover "Woman working on laptop at coffee shop with city view"

Alt Tag Length

  • Target under 125 characters
  • Descriptive but concise
  • Naturally include primary keyword

Don't Keyword Stuff

Bad:

<img src="shoes.jpg" alt="running shoes best cheap sale buy now discount">

Good:

<img src="shoes.jpg" alt="Best running shoes for marathons - our top 10 picks">

2. File Names

Use Descriptive Names

Bad:

IMG_1234.jpg
DSC00567.jpg
product-photo.jpg

Good:

red-nike-running-shoes.jpg
blue-summer-dress-2025.jpg
best-coffee-maker-reviews.jpg

Include Keywords

File names also pass ranking signals to Google.

womens-blue-running-shoes.jpg
  • Target keyword: "womens running shoes"
  • Target keyword: "blue running shoes"

3. File Size (Page Speed)

Why It Matters

Google uses page speed as a ranking factor.

Large images = slow page = ranking drop

Image Size Guidelines

Type Max Size
Hero images 200-400 KB
Content images 50-150 KB
Thumbnails 10-30 KB

Format Selection

Format Browser Support Compression
WebP 97%+ 30% smaller
AVIF 80%+ 50% smaller
JPEG 97%+ Fallback

Use WebP, with JPEG as fallback.

Generate Optimized Images

from PIL import Image
from pathlib import Path

def optimize_for_seo(input_path, output_path):
    """Optimize for web: resize, compress, WebP"""

    img = Image.open(input_path)

    # Resize to max 1920px
    if max(img.size) > 1920:
        ratio = 1920 / max(img.size)
        img = img.resize(
            tuple(int(d * ratio) for d in img.size),
            Image.Resampling.LANCZOS
        )

    # Convert to RGB
    if img.mode == 'RGBA':
        img = img.convert('RGB')

    # Save as WebP
    img.save(output_path, 'WEBP', quality=85)

    return output_path

optimize_for_seo('photo.jpg', 'photo.webp')

4. Image Format

Use Modern Formats

Format Support Advantage
WebP 97%+ 30% smaller
AVIF 80%+ 50% smaller
JPEG 97%+ Fallback

HTML Format Fallback

<picture>
  <!-- AVIF (smallest) -->
  <source 
    srcset="image.avif"
    type="image/avif"
  >

  <!-- WebP -->
  <source 
    srcset="image.webp"
    type="image/webp"
  >

  <!-- JPEG fallback -->
  <img 
    src="image.jpg"
    alt="Description"
  >
</picture>

5. Image Sitemap

Let Google find and index your images.

Sitemap Example

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
         xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://example.com/blog/post</loc>
    <image:image>
      <image:loc>https://example.com/images/hero.webp</image:loc>
      <image:title>Post Title</image:title>
    </image:image>
  </url>
</urlset>

Generate Image Sitemap

from pathlib import Path

def generate_image_sitemap(image_dir, output_path, base_url):
    """Generate image XML sitemap"""

    sitemap = '''<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
         xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
'''

    image_path = Path(image_dir)
    extensions = ('.jpg', '.jpeg', '.png', '.webp', '.avif')

    for img_file in image_path.glob('*'):
        if img_file.suffix.lower() in extensions:
            url = f"{base_url}/{img_file.name}"
            sitemap += f'''  <url>
    <loc>{url}</loc>
  </url>
'''

    sitemap += '</urlset>'

    with open(output_path, 'w') as f:
        f.write(sitemap)

    print(f"✓ Sitemap created: {output_path}")

generate_image_sitemap('./images', 'image-sitemap.xml', 'https://example.com')

Checklist

  • [ ] All images have descriptive alt tags
  • [ ] File names include keywords
  • [ ] All images under 200KB
  • [ ] Using WebP format
  • [ ] Responsive images (srcset)
  • [ ] Lazy loading enabled
  • [ ] Image sitemap submitted
  • [ ] Core Web Vitals passing

Real Results

Client: E-commerce site, 500 products

Metric Before After
Avg image size 1.4MB 95KB
Page speed 8.2 seconds 1.8 seconds
Google Images traffic 1,200/mo 3,400/mo
Total organic traffic 12,000/mo 16,800/mo
Revenue $45,000/mo $62,000/mo

Result: Traffic +40%, Revenue +38%


Common Mistakes

Mistake 1: No Alt Tags

Problem: Google doesn't know what the image is.

Solution: Add descriptive alt tags to every image.


Mistake 2: Alt Tag Keyword Stuffing

Problem: Looks like spam.

Solution: Write natural descriptions with primary keyword included.


Mistake 3: Images Too Large

Problem: Slow page load, hurts ranking.

Solution: Compress to under 200KB, use WebP.


Mistake 4: Decorative Images Missing Alt

Problem: Empty alt or no alt.

Solution: Decorative images use alt="" (screen readers skip them).


Tools

Tool Use
Imagic AI Compress, WebP
Screaming Frog Audit alt tags
PageSpeed Insights Check image sizes
Google Search Console Image performance

Summary

  1. Every image needs alt tags - Describe what's in it
  2. File names should have keywords - Descriptive naming
  3. Compress all images - Under 200KB
  4. Use WebP - 30% smaller than JPEG
  5. Submit image sitemap - Help Google find images

Grew client traffic by 40% through image SEO. Questions? Drop a comment.

Try these tools

Image Compressor

Related articles

Image SEO Guide 2026 - Optimize Images for Google Search RankingsComplete Guide to AI Image Processing: 50 Expert Tips for E-commerce SAI Image Upscaler: How to Enlarge Photos Without Quality Loss