Image SEO for small businesses: alt text, file names, and size
Images are forty to sixty percent of a typical page's weight and one of the easiest SEO wins available. Five rules cover the 95% case for a UK small business site.
Images are forty to sixty percent of the total weight of a typical small business web page, and they are also the most overlooked piece of SEO. Get them right and your site loads faster, ranks better in Google Images, reads better to assistive technology, and gives AI assistants more to work with when they decide whether to recommend you. Get them wrong and you are quietly losing speed, accessibility, and ranking on every page. This article covers the five rules that handle the 95% case for a UK small business, in the order that matters.
Rule one: name the file properly before you upload it
The file name tells the search engine what the image is about. "IMG_20240412.jpg" tells it nothing. "brown-leather-armchair-dorset.jpg" tells it exactly. Rename your image files before you upload them, using lowercase letters, hyphens between words, and a short, literal description of what is in the picture.
The rule of thumb is that the filename should describe the image, not the page it lives on. A picture of your workshop is workshop-ironbridge.jpg, not about-us-banner.jpg. If the same image is used on three pages, it only needs a descriptive file name once.
This is ten seconds of work per image when you export from your phone or photo editor. It is roughly zero minutes once you make it a habit. Cumulatively across a year it makes a noticeable difference in Google Images traffic, especially for businesses where visual content is part of the buying decision (trades, food, design, retail).
Rule two: write genuinely useful alt text
Alt text is the short description of the image that sits in the page's HTML. Screen readers read it aloud. Search engines treat it as a content signal. Broken images show it in place of the picture.
Write alt text that would make sense if the image was missing. "Steffen Hoyemsvoll adjusting a vintage Bernina sewing machine in the Voll workshop" is useful. "Image 1" is useless. "Brown leather armchair" is okay but missing context. "Handmade brown leather wing-back armchair in Dorset workshop" is much better.
Three mistakes to avoid. First, keyword stuffing. "Leather armchair Dorset Hampshire Winchester sofa chair furniture" is not alt text, it is spam, and Google knows what it looks like. Second, repeating the same alt text on every image on the page. Each image should be described individually. Third, writing alt text for decorative images. If an image is purely decorative (a coloured divider, a background pattern, a subtle icon), give it an empty alt attribute so screen readers skip it, rather than forcing the user to hear "decorative curved line".
If your site is on WordPress, the alt text field is in the media library. Fill it in on upload, not later. On Squarespace, Wix, or Shopify it is in the image settings panel. On a Next.js site, the alt prop on the Image component is where it lives.
Rule three: serve the right format
As of 2026, three formats matter. WebP, AVIF, and JPEG. Use them in that order of preference.
AVIF is the newest and produces the smallest files for the same visual quality, typically 30% smaller than WebP, which is itself 30% smaller than JPEG. All modern browsers support AVIF. It is the right choice for any new site.
WebP is the safe default. It is universally supported, compresses well, and is what modern frameworks output by default. Most images on most small business sites should be WebP.
JPEG is the fallback. Still universal, still fine for photos, but larger. Only use JPEG for compatibility with very old platforms or software that genuinely does not support the newer formats.
PNG should be used only for images that need transparency (logos, icons, illustrations with sharp edges). Never save a photograph as a PNG. You will end up with a file four times the size of the WebP equivalent for no visible benefit.
If you use modern web platforms (Squarespace, Shopify, Webflow, Next.js), they usually serve WebP or AVIF automatically based on what the visitor's browser supports. You just upload a JPEG and the platform handles the rest. If you are on self-hosted WordPress, a plugin like ShortPixel or Smush converts your images on upload.
Rule four: size the image for its actual use
A full-width hero image on a modern screen is at most 2560 pixels wide. A thumbnail is 400 pixels. A portrait on an About page is 600 to 800 pixels. Exporting a 6000-pixel image from your camera and uploading it without resizing is the single biggest cause of slow pages on small business sites.
Work out the largest size each image will ever display on your site, double it for high-resolution screens (so export a 2560-wide hero at 5120 pixels if you want maximum crispness, or 2560 if you prefer to save the bytes), then compress.
After resizing, compress. Squoosh at squoosh.app is free and excellent. TinyPNG is free for up to twenty images a day and also excellent. ShortPixel as a WordPress plugin compresses on upload. Aim for a JPEG quality of around 75 or a WebP quality of around 70; most people cannot see the difference from the original at those settings, and the file is a fraction of the size.
Done properly, a hero image should usually be under 250 KB and a typical thumbnail under 40 KB. If your homepage currently has four 3 MB hero images, compressing them will transform your page speed and Core Web Vitals overnight. The underlying metric, Largest Contentful Paint, is explained in our article on Core Web Vitals in plain English.
Rule five: let the browser lazy-load below the fold
Lazy loading tells the browser to delay loading an image until it is about to scroll into view. The hero at the top of the page loads immediately; the customer photo that lives two thirds of the way down does not load until the visitor scrolls there.
On modern web platforms this is handled by a single attribute on the image tag: loading="lazy". WordPress, Shopify, Squarespace, Wix, and modern frameworks all add this by default for images below the initial viewport. You usually get it for free.
Two exceptions. Never lazy-load the hero or any image that is visible on initial load; it is counterproductive and hurts Core Web Vitals. And never lazy-load images that are part of a social preview card, because the preview bot grabs the page once and is gone.
The five-minute check on your own site
Pick three important pages of your site: the homepage, your main service page, your most-read blog post. Right-click any image and choose "Inspect" to open the browser developer tools. Look at four things.
What is the file name? Is it descriptive? What is the alt text? Is it present and useful? What is the file size? Is it under 300 KB for a hero, under 50 KB for a thumbnail? What is the format served to your browser? Is it WebP or AVIF, or still JPEG?
If most of those are right, keep doing what you are doing. If most are wrong, you have your next afternoon of work cut out, with a bigger impact on real search performance than most small business owners expect.
If you want a free audit of the images on your site flagged by priority, our tool at /resources/audit checks the most common issues, or book a fifteen minute chat and we will go through it live.

About the author
Steffen Hoyemsvoll
Founder of Voll. Oxford Physics, ex-fintech co-founder, Chartered Wealth Manager. Writes about what he actually uses to grow small businesses.
Work with Steffen