Skip to content
Searchpedia SEO field notes Callum Bennett Callum

Writing desk

SEO Pictures

I treat image optimisation as a ranking factor, not a nice-to-have, because it directly affects page speed and the page's ability to support the main keyword.

Beginner3 min readUpdated 2026-07-27Notes by Callum Bennett

What I’d do first

  • Audit your current images with Screaming Frog or similar, noting file sizes, dimensions, alt text and filenames.
  • Rename every image file to a descriptive, hyphen-separated name that reflects the content.
  • Write alt text that describes what the image shows, under 125 characters, and avoid keywords.
  • Compress and resize every image before upload, and serve responsive versions using srcset.
  • Submit an image sitemap to help Google discover images loaded via JavaScript or other tricky methods.

The path I'd take

I start where most pages fail: the audit. Using Screaming Frog's image report or Google Search Console's image discovery data, I pull every image on the page and note four things: file size, actual dimensions, filename, and alt text. On a recent [content audit](/content-audit/) of a 30-page ecommerce site, I found that 22 of 150 product images were over 1 MB, and 14 had alt text like "img_2345.png". That told me exactly where to focus.

Next, I fix filenames and alt text. Filenames should be descriptive and hyphenated: red-leather-office-chair.jpg, not IMG_5421.jpg. Alt text describes the image for accessibility and context. I keep it under 125 characters, natural, and relevant to the page's topic. For example, for a product image on a landing page about ergonomic chairs, I write "Ergonomic red leather office chair with adjustable armrests". I never use "cheap red leather office chair for sale buy now" because that harms accessibility and is ignored by Google. This all ties into proper [image SEO](/image-seo/) practices.

Then I compress and resize. Every image I upload is now sized to the maximum display dimension it will ever need. For a feature image at 800px wide, I resize to 800px, then compress with TinyPNG or Squoosh to around 80-120 KB. I also use WebP with a JPEG fallback via <picture> and srcset to serve smaller files to mobile. A worked example: five product images on a product page originally totalled 2.4 MB. After resizing to 400-600px and converting to WebP, they came in at 540 KB. Page load time dropped from 4.1 seconds to 2.9 seconds on a 4G connection. That directly supports the page's rankings.

Finally, I create an image sitemap and submit it via Search Console. This is essential if images are loaded via JavaScript or hidden behind tabs. Without a sitemap, Google may never crawl them. I also add structured data where relevant — for example, Product schema with image URLs. That increases the chance of rich results. The whole process takes an hour for a typical page but saves weeks of slow performance later.

Watch-outs

The biggest trap is keyword-stuffing alt text. I see it all the time: "red leather office chair for sale buy now cheap office chair under 100". That fails on two counts. First, it's useless to someone using a screen reader — the description should tell them what the image shows, not what the page is selling. Second, Google treats alt text as a relevance signal, not a ranking hack. Stuffed text can trip spam filters. Write naturally: "Red leather office chair with adjustable armrests". That's 8 words, describes the image, and fits the page context. For more examples, see [alt text examples](/alt-text-examples/).

Another watch-out: generic filenames. image1.jpg, photo.png, DSC_0234.jpg tell search engines nothing. Rename before upload. It takes seconds and gives Google a clear cue about the image content. On one [on-page SEO](/on-page-seo/) project, just renaming filenames from IMG_ to descriptive names moved the page from position 12 to position 8 for a medium-competition term. Not magic, but it helps.

Don't rely on CSS to scale images. Uploading a 4000px photo and setting max-width: 300px in CSS still forces the browser to download the full 4 MB file. Your page speed suffers, and Google penalises slow pages. Always resize the image file itself to the maximum display size. A 300px thumbnail should be a 300px image file, not a 4000px one scaled down. On mobile, the difference is 4 MB vs 150 KB. That's a 1.5 second load time penalty you didn't need.

One more: ignore lazy loading for above-the-fold images. Use loading="lazy" only for images below the fold. Above-the-fold images should load immediately. Otherwise you hurt Largest Contentful Paint (LCP). And always set explicit width and height attributes to prevent cumulative layout shift (CLS). A missing height on a hero image can throw off the entire page layout while the image loads.

What I got wrong

For years I stuffed keywords into alt text. I thought "cheap flights to London book now cheap" would help the page rank. It didn't. Rankings didn't move, and accessibility audits flagged those pages. I changed to plain descriptions like "Aerial view of London skyline at sunset" and saw no ranking drop. Actually, a few pages got slight bumps because the content became more relevant to the image's actual topic. The lesson: alt text helps context, not keyword density. I now write alt text as if I'm describing the image to someone who can't see it. That's it.

I also uploaded full-resolution photos directly from my camera — 12 MB each — and let CSS shrink them. My page speed was terrible. A travel page with 8 images loaded in 8.2 seconds. After resizing each image to 800px wide and compressing to ~100 KB, the same page loaded in 2.5 seconds. That's a 69% improvement. The rankings for "best beaches in Thailand" went from page 3 to page 1 within two months. Coincidence? Maybe, but the speed improvement alone probably triggered a position boost. I now never upload an image larger than 2000px on its longest side, and I always compress.

Another mistake: ignoring image sitemaps. I had a site that loaded images via JavaScript lightbox — Google couldn't see them. I added an image sitemap listing those image URLs, and within a month, Google Images traffic increased by about 15%. I now make an image sitemap a standard part of any site migration or [meta tags SEO](/meta-tags-seo/) audit.

Finally, I didn't use structured data for product or recipe images. That was lost opportunity. Adding Product schema with image fields means those images can appear in rich results with larger thumbnails. I fixed that, and click-through rates improved modestly. It's not a huge win, but it's free if you already have the schema in place.

Next step

Quick answers

Should I use WebP or JPEG for SEO?

I use WebP whenever possible because it offers 25-34% smaller file sizes than JPEG at equivalent quality. Provide a JPEG fallback for older browsers using the <picture> element. Google recommends serving next-gen formats, so WebP is a clear win for page speed.

Does alt text directly improve rankings?

Indirectly, yes. Alt text helps Google understand the image content and the page's topic, which can strengthen relevance for your target keywords. But it is primarily an accessibility attribute, not a ranking hack. Descriptive alt text that supports the page theme is what I aim for.

How big should my images be for web?

Resize images to the maximum display width they will ever need — usually 800-1200px for full-width content images. Compress to under 150 KB for typical images. For thumbnails, 300-400px width and under 50 KB. Use srcset to serve smaller versions to mobile devices.

Sources

Primary documentation is linked directly. Anything commercial is marked nofollow.

Notes from Callum Bennett.