Images are often an afterthought in SEO. They shouldn't be. Good image SEO drives image-search traffic, improves Core Web Vitals, helps accessibility, and adds context for rankings.
Use descriptive, hyphenated file names before uploading.
IMG_4827.jpgscreen-shot-2026-04-18-at-1142am.pnginsurance-crm-dashboard.jpgThe alt attribute describes an image for screen readers and search engines. Write actual descriptions, not keyword lists.
If the primary keyword fits naturally in the alt text, include it. If it doesn't, don't force it.
Images that are purely decorative (a gradient banner, a flourish) should have empty alt (alt=""). Do not omit the attribute, always include it.
Every image should be compressed before upload. Tools: Squoosh (free), TinyPNG, ImageOptim. Target: photos <200KB, illustrations <100KB. Anything >500KB should be justified.
Don't serve a 4000px image into a 800px slot. Use responsive images (srcset) to serve appropriately-sized images per device.
<img src="hero.jpg"
srcset="hero-400.jpg 400w, hero-800.jpg 800w, hero-1600.jpg 1600w"
sizes="(max-width: 800px) 100vw, 800px"
alt="...">
Images below the fold should lazy-load. Native HTML support:
<img src="..." loading="lazy" alt="...">
Do NOT lazy-load the hero image, that hurts LCP.
Always set explicit width and height attributes. Prevents layout shift (CLS) and earns you the CWV tick.
Captions are the highest-read text on a page (studies show readers scan them before body text). Treat them as real content. They also pass relevance signals.
For images that belong to an ImageObject (product, recipe, article), include schema.org markup. It qualifies images for rich results in image search.
Google's image sitemap spec lets you list all images on your site. For image-heavy sites (photography, ecom), this is worth setting up. For blog/content sites, the main XML sitemap with inline image references is usually enough.