Image SEO is one of those topics bloggers either ignore or over-complicate. The right approach is small, repeatable habits applied to every image, not a separate workflow bolted onto publishing day. This post lays out the checklist that covers what actually matters, in the order it matters.
1. File names
The file name is the first signal a search engine gets about what an image shows. Default phone uploads are named things like IMG_2381.jpg or screenshot-2024-03-15.png. These tell search engines nothing useful at all.
Rename every image before you upload it:
- Lowercase only.
- Hyphens between words, not underscores or spaces.
- Describe what’s actually in the image.
- Include the post’s primary keyword on one or two key images, naturally.
Good examples: block-editor-paragraph-block.png, vegan-sourdough-rising.jpg, wordpress-dashboard-2026.png.
Bad examples: IMG_2381.jpg, image1.png, final_FINAL_v3.jpg.
2. Alt text
Alt text serves two audiences at once: screen readers and search engines. Get the screen reader version right and the SEO version tends to follow.
Good alt text describes what’s in the image as if you were reading the page aloud to someone who can’t see it. Google’s own image SEO documentation makes the same point: write for the person, not the algorithm, and the ranking signal takes care of itself.
- Bad: “Image.”
- Bad: “wordpress hosting cheap fast best 2026” (keyword stuffing).
- Good: “WordPress admin dashboard showing the Posts menu open.”
- Good: “Two slices of vegan sourdough on a wooden cutting board.”
Length: 8 to 15 words is a good target. Long enough to be specific, short enough that a screen reader doesn’t drone on.
Decorative images that carry no informational content, like a purely visual divider graphic, can use empty alt text (alt="") so screen readers skip over them entirely. Reserve this for genuinely decorative images only, never for anything that adds meaning to the post.
Include the post’s primary keyword on one image if it fits naturally. Don’t force it onto every image on the page. Repeating the same keyword as alt text across ten images reads as spammy to both readers and search engines.
3. File format
In 2026, these are the formats worth using:
- WebP for most images. It’s a modern format that runs 25 to 35% smaller than JPEG at the same visual quality, with universal browser support at this point.
- JPEG as fallback or for photographs if you’re not converting to WebP.
- PNG for graphics, screenshots, logos with transparency.
- SVG for icons and logos. It’s vector-based, scales to any size, and stays a tiny file regardless.
- AVIF for cutting-edge sites. Even smaller than WebP, but support is still uneven across browsers, so treat it as a progressive enhancement rather than a default.
Most modern image-optimization plugins, including Imagify, ShortPixel, and Smush, convert uploads to WebP automatically. Set this up once and you can largely forget about it.
4. Sizing
Don’t upload a 4000×3000 photo straight from your phone when the blog only ever displays it at 800×600. The browser still downloads the full file regardless of how small it’s displayed, which wastes bandwidth and slows the page down.
- Resize images to the maximum size your blog actually displays them at before uploading.
- For most blogs, a max width of 1200 to 1600 pixels covers desktop displays at 2x pixel density (retina).
- Set quality at 80 to 85%. Above that range, file size grows fast for gains you can’t actually see.
Tools that handle this well:
- Squoosh (free web tool from Google).
- TinyPNG / TinyJPG (free web tool).
- Imagify, ShortPixel, Smush (WordPress plugins that auto-compress on upload).
If you’re running Aurora, image handling on the front end is already lean: the theme ships without bloated framework CSS or JS getting in the way of your actual page weight, so the images you upload are usually the biggest lever left to pull.
5. Lazy loading
Lazy loading means images below the fold don’t load until the reader scrolls near them. It saves bandwidth and improves how fast the page feels, even when total load time barely changes.
WordPress has had lazy loading built in since version 5.5. Most modern themes use it by default. You can verify this by viewing source on one of your posts; images below the fold should carry loading="lazy" in their markup.
The exception is the featured image. Because it usually sits above the fold, it should load eagerly instead. Lazy loading it can hurt LCP (Largest Contentful Paint), a Core Web Vitals metric Google weighs directly in ranking. Some themes handle this automatically. Others need a manual override, so it’s worth checking rather than assuming.
6. Featured images
The featured image gets special treatment for a few reasons:
- It shows up on archives, the homepage, and social shares.
- It’s often the LCP element on single-post pages.
- It’s the first impression for readers landing from search.
For every featured image, aim for:
- A specific, descriptive file name.
- Strong alt text that includes the post’s primary keyword. This is one of the few places it’s worth doing deliberately.
- Appropriate sizing. 1200×630 is the standard for social sharing previews.
- Eager loading, not lazy.
- WebP or an optimized JPEG.
What about image search?
Google Image Search drives real traffic to blogs that get image SEO right, and it’s often an underused channel compared to regular search results. The signals Google uses to rank images include:
- File name and alt text relevance.
- The surrounding text on the page.
- The page’s overall topical authority.
- Image file format and size, since faster, smaller images tend to rank better.
- Whether the image is original or stock.
Original images consistently outperform stock photography in image search. A custom screenshot, a diagram you made yourself, or a photo you actually took will typically out-rank generic stock every time. If you need a starting point for sourcing images you’re allowed to use and can still make your own, see our guide on where to find free stock images for blogs.
The plugin question
For most WordPress blogs, one image optimization plugin is enough. The top options:
- Imagify. Owned by the WP Rocket team. Easy setup, good defaults.
- ShortPixel. Aggressive compression, good free tier.
- Smush. Long-established, generous free tier.
- EWWW Image Optimizer. Fully local optimization, so no third-party servers are required.
Pick one, install it, configure WebP conversion, and run a bulk optimization pass on your existing library. After that initial setup, it mostly runs itself.
The audit you should run once
For an existing blog, this is worth doing as a single pass:
- Go through your media library.
- Find images with no alt text. WordPress shows a column for this, so start with the worst offenders on your highest-traffic posts.
- Check file sizes. Anything over 500 KB should be compressed.
- Run a bulk optimization plugin to convert everything to WebP.
- Rerun PageSpeed Insights afterward. The improvement is often dramatic.
This whole process usually takes a couple of hours for a small to mid-sized blog, and the payoff compounds for as long as the site is live. For a deeper look at where images fit into your broader SEO setup, see our guide on what SEO actually is for bloggers. For the technical side of page speed beyond images, see web.dev’s guide to lazy loading images.
Six habits, applied consistently
Image SEO is six small habits: descriptive file names, real alt text, modern formats (WebP), proper sizing before upload, lazy loading for below-the-fold images, and thoughtful featured images. Apply consistently and your blog gets faster, more accessible, and starts pulling traffic from image search. Install one optimization plugin and let it handle the bulk work. Audit your existing library once.
