Do your images never show up in Google Images? Do your product photos get skipped when someone points Google Lens at the same item? The cause is usually basic and easy to fix. Image SEO means helping Google find, understand and trust your images. That means crawlable <img> tags, clear file names, useful alt text, relevant text around the image and fast, well-sized files.
The same signals now also help your images, and the pages behind them, show up in newer kinds of search. People search with their camera, circle something on their screen, or ask AI Mode about a photo. In this guide I go through each signal in the order I would fix them.
How Google Finds and Understands Images
Google reads images in two ways. It studies the pixels with computer vision (software that recognises what is in a picture). It also reads the text around the image: the file name, alt text, caption, page title, headings and nearby words. When the two agree, Google can be sure about what the image shows and which searches it fits.
Before any of that, Google has to find the image. Its help pages are clear. It finds images in the src attribute of HTML <img> elements, including an <img> inside a <picture> element. Images set as CSS backgrounds are not indexed.
A hero banner built as a background-image on a <div> looks fine to visitors. But it is invisible to Google Images. If an image matters for search, put it in an <img> tag. This is the first thing I check on any site with image problems.
The same goes for images added by JavaScript. Google can run JavaScript, but images that only appear after a click, a scroll or a custom script are easy to miss. Our guide to JavaScript SEO and the mistakes that hide content shows how to check what Google actually sees.
Image SEO Basics: File Names That Describe the Picture
The file name is one of the first text clues Google gets about an image. It also becomes part of the image URL, which can appear in search results.
Google’s own example sums it up: my-new-black-kitten.jpg is better than IMG00023.JPG. Generic names such as image1.jpg, pic.gif or 1.jpg tell Google nothing.
A few rules I follow:
- Describe what is in the image, not what you want to rank for.
oak-dining-table-6-seater.jpgbeatsbest-cheap-furniture-deals.jpg. - Use hyphens between words and keep names short, usually three to six words.
- Translate file names on translated pages. Google recommends this. It also says to URL-encode non-Latin or special characters.
- Match the extension to the real file type. A WebP file should end in
.webp, not.jpg.
Rename files before you upload them. If you change an image URL later, you must update every link to it, and Google has to find the new address again.
Alt Text: What Good and Bad Look Like
Google’s image SEO best practices call alt text the most important attribute for giving it information about an image. Alt text does two jobs. It helps Google understand the image. And it is what screen readers read out to people who cannot see it. In my experience, if you write for the second job, you usually get the first one right too.
Here is a step-by-step example, based on the pattern Google uses in its help pages:
<!-- Bad: missing alt text -->
<img src="dalmatian.jpg">
<!-- Bad: keyword stuffing -->
<img src="dalmatian.jpg" alt="puppy dog puppies dalmatian dog buy puppy cheap puppies">
<!-- Better: accurate but vague -->
<img src="dalmatian.jpg" alt="puppy">
<!-- Best: specific and in context -->
<img src="dalmatian.jpg" alt="Dalmatian puppy playing fetch in a garden">
How to Write alt Text That Helps
- Say what the image shows, as if you were describing it to someone on the phone.
- Add the detail that matters on this page. On a product page that might be colour, material or model. On a recipe it might be the finished dish and how it is served.
- Keep it to one sentence. There is no official character limit. But long alt text is tiring to listen to, and it usually means you are padding it.
- Use your keyword only where it describes the image. If the photo shows a walnut desk and your page targets “walnut desk”, the phrase fits naturally. If it does not, leave it out.
Real Examples by Image Type
- Product photo:
alt="Navy wool peacoat with double-breasted brass buttons, front view" - Team photo on a local business page:
alt="Two technicians fitting a combi boiler in a kitchen" - Chart or infographic: sum up the main point, such as
alt="Bar chart showing organic sessions rising each month from January to June", and explain the detail in the body text. - Decorative divider or background design: use an empty alt attribute,
alt="", so screen readers skip it. Leaving the attribute out completely is not the same thing.
For inline SVGs, alt text does not apply. Google recommends a <title> element inside the SVG that describes it, linked with aria-labelledby.
Surrounding Context: The Page Does a Lot of the Work
Alt text is short. The page around the image fills in the rest. Google says it uses the page’s content, including captions and image titles, to understand what an image is about. It also uses that content to build the title and snippet in image results.
In practice, this means:
- Place images near the text they explain. A photo of a garden shed works better next to the paragraph about shed sizes than in a gallery at the bottom of the page.
- Use captions where they help readers. People read captions far more than body text, and they add a clear, visible description.
- Put important images on relevant pages. An image on a page about its own subject has a better chance than the same image dropped into an unrelated post.
I see this go wrong most on sites that dump all their photos into one gallery page. It is better to spread them across the pages they belong to.
Image Sitemaps: Help Google Find What It Might Miss
Google finds most images through normal crawling. An image sitemap helps when images load in ways Google may not find, such as through JavaScript galleries. It also helps when you want to make sure key product and portfolio images are known.
You can add image entries to your existing sitemap. Each page’s <url> entry lists its images:
<?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/oak-dining-table/</loc>
<image:image>
<image:loc>https://cdn.example.com/oak-dining-table-6-seater.webp</image:loc>
</image:image>
</url>
</urlset>
Three details trip people up:
- Only
<image:image>and<image:loc>are needed. Google has dropped the old caption, title, geo location and license tags from its image sitemap documentation. So there is no point adding them. - Images can live on another domain, such as a CDN. Verify that domain in Search Console so you see crawl errors for it. Also make sure its robots.txt does not block the images.
- Each page entry can list up to 1,000 images.
To see how image entries fit into a wider sitemap setup, read our XML sitemap best practices.
Modern Formats: WebP and AVIF
Google Search supports BMP, GIF, JPEG, PNG, WebP, SVG and AVIF images. But supported does not mean equal. WebP and AVIF usually make much smaller files than JPEG or PNG at similar quality. That matters, because images are often the heaviest part of a page.
What I recommend for most sites:
- Photos: serve AVIF or WebP, with JPEG as a fallback if you support very old browsers.
- Graphics with see-through areas: WebP or PNG.
- Logos and icons: SVG, which stays sharp at any size.
The <picture> element lets the browser pick the best format it supports. Google still finds the <img> fallback:
<picture>
<source type="image/avif" srcset="oak-dining-table.avif">
<source type="image/webp" srcset="oak-dining-table.webp">
<img src="oak-dining-table.jpg" alt="Six-seater oak dining table in a bright kitchen"
width="1200" height="800">
</picture>
Responsive Images With srcset
A phone does not need the 2,400-pixel image your desktop layout uses. The srcset and sizes attributes let the browser choose the right file for the screen:
<img
srcset="peacoat-navy-480w.webp 480w,
peacoat-navy-800w.webp 800w,
peacoat-navy-1200w.webp 1200w"
sizes="(max-width: 600px) 100vw, 600px"
src="peacoat-navy-1200w.webp"
alt="Navy wool peacoat with brass buttons, front view"
width="1200" height="1500">
Always keep a plain src attribute. Google says some browsers and crawlers do not understand srcset. The src is the fallback that makes sure the image is found.
Add width and height attributes too. They let the browser save space before the image loads. That stops content jumping around and helps your Cumulative Layout Shift score (a measure of how much the page moves while loading).
Lazy-Loading Without Hurting LCP
Native lazy-loading, loading="lazy", tells the browser to wait until an image is close to the screen before downloading it. For images further down the page, that saves data and speeds up the first load. Google can index lazy-loaded images, as long as they load in its renderer without a scroll or click.
The mistake is using it on every image. Your Largest Contentful Paint (LCP) element is the biggest thing that loads on screen first, and it is very often an image. It might be the hero photo, the main product shot or the featured image on a blog post. If you lazy-load it, the browser waits before even asking for it, which delays LCP. This is one of the most common speed mistakes I find.
The fix is simple:
- Find your LCP element using PageSpeed Insights or Chrome DevTools.
- Remove
loading="lazy"from that image and anything else visible on first load. - Add
fetchpriority="high"to the LCP image so the browser asks for it early. - Keep
loading="lazy"on images below the fold.
<!-- Above the fold: load early -->
<img src="hero-garden-office.webp" alt="Timber garden office with glass doors"
width="1600" height="900" fetchpriority="high">
<!-- Further down: lazy-load -->
<img src="garden-office-interior.webp" alt="Desk and shelving inside a garden office"
width="1200" height="800" loading="lazy">
Avoid old JavaScript lazy-load libraries that put a placeholder in src and hide the real URL in a data-src attribute. If the script fails, Google may only see the placeholder. For more on LCP limits and measuring real-user data, read our guide to Core Web Vitals in 2026.
Structured Data for Images
Structured data is code that describes your page to Google in a fixed format. It does not make an image rank on its own. But it links images to things Google understands, and it controls how they can appear.
- Rich result types need an image. Product, Recipe, Article and other supported types list
imageas a property. Google says adding it makes your images eligible to appear in those rich results and with badges in Google Images. - Product images matter most for shopping. Product markup and a Merchant Center feed help Google link your photo to a specific item with a price and stock status. That is what people looking at visual shopping results want.
- Image licence data makes images eligible for the Licensable badge in Google Images. You can add it with ImageObject properties such as
license,acquireLicensePage,creator,creditTextandcopyrightNotice. Or you can embed IPTC metadata in the file itself. If both conflict, Google uses the structured data. - Preferred page image: to guide which image Google uses as a page’s thumbnail, use
primaryImageOfPage, theimageproperty on your main entity, or anog:imagetag. Choose a clear, high-resolution image rather than a logo or a graphic full of text. Avoid very wide or very tall shapes.
Here is a simple Product example with an image:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Navy Wool Peacoat",
"image": "https://example.com/images/peacoat-navy-front-1200w.webp",
"offers": {
"@type": "Offer",
"price": "149.00",
"priceCurrency": "GBP",
"availability": "https://schema.org/InStock"
}
}
</script>
Test any markup with the Rich Results Test before you publish. Make sure every image URL in it returns a working file that Google can crawl.
Google Lens, Circle to Search and Multimodal AI Answers
Visual search is no longer a novelty. It is an everyday habit. People point Google Lens at a plant, a pair of trainers or a broken part. On Android, Circle to Search lets them circle anything on their screen and search it without switching apps.
Both now connect to AI answers. In April 2025, Google brought multimodal search (search that mixes images and text) to AI Mode. That idea goes back to Google multisearch, which let people add text to a Lens search in 2022. It combines Lens with a custom version of Gemini. It understands the whole scene and spots individual objects. Then it runs several related searches at once before writing an answer with links. In July 2025, Google added AI Mode to Circle to Search, so users can ask follow-up questions about what they circled.
Google has not published a separate guide for Lens or Circle to Search. Their results link to web pages Google has already crawled and indexed. So my view is simple: the basics above matter more now, not less.
- Use original photos. If your product shot is the same maker’s image used by fifty other shops, Google has little reason to show yours. Your own photos of the real item, from several angles, give it something unique to match.
- Shoot clearly. Good light, the subject in focus and a clean background make the object easier to recognise.
- Use high-resolution files and serve smaller versions through
srcset, so quality and speed do not fight each other. - Keep image URLs stable. Changing them on every redesign throws away what Google has already learned about the image.
- Make the page answer the next question. Someone who searches with a photo of a sofa wants the model, price, size and where to buy. A page with those details, plus Product markup, is a far better choice than a bare gallery.
To learn how AI Mode differs from AI Overviews and how each picks sources, see AI Overviews vs AI Mode.
WordPress Image SEO Tips
WordPress handles much of this for you. But the default settings have gaps you should know about.
- Rename files before upload. WordPress uses the uploaded file name in the image URL. It has no built-in way to rename a file afterwards.
- Fill in the Alternative Text field in the Media Library or the Image block sidebar. The Media Library alt text is only a default for new inserts. Changing it later does not update images already placed in posts, so fix those in each block.
- Trust responsive images. WordPress creates several sizes on upload and adds
srcsetandsizesautomatically. It also shrinks very large uploads, so a 6,000-pixel camera original is not served as it is. - Use WebP or AVIF. WordPress core can accept WebP uploads. AVIF support arrived in WordPress 6.5, where the server supports it. An image plugin can convert your existing library.
- Check the lazy-loading logic. Since WordPress 6.3, core skips lazy-loading on the first few content images. It also adds
fetchpriority="high"to the image it thinks is most likely the LCP element. Page builders, sliders and some themes skip this, so test your templates in PageSpeed Insights. Our WordPress speed guide covers other template fixes. - Check your sitemap. Popular SEO plugins can include images in their XML sitemaps. Confirm that the images you care about are listed.
How to Check Your Progress
In Search Console’s Performance report, switch the search type to Image. You will see the clicks and impressions from Google Images. Use URL Inspection on a key page and view the rendered HTML. Confirm your images appear as <img> tags with real URLs. Search Console also reports multimodal searches from Google Lens on their own.
Here is a quick audit I like to repeat every few months:
- Pages with images missing alt text or with generic file names.
- Large files over a few hundred kilobytes that could be resized or converted.
- Lazy-loaded LCP images on key templates.
Conclusion
Good image SEO comes down to making each image easy to find, easy to understand and fast to load. Use real <img> tags, clear file names, honest alt text and relevant text around the image. Then serve modern, responsive files and keep the LCP image out of lazy-loading. Those steps help in Google Images. They also help your pages show up when people search with Lens, Circle to Search or a photo in AI Mode.
A good next step: pick your five most important pages and run the checks above. Then read our schema markup guide to connect your product and article images to structured data.



