Corrected on September 17, 2026

The first version of this guide told you to lazy-load images visible on first load, which Google advises against, and said images without alt text are invisible to Google Images. It described ImageObject as powering image carousels (Google uses it for license metadata), referred to a "Page Experience score" that doesn't exist, and claimed ChatGPT and Perplexity check alt text against the pixels, which no vendor documents. The "live audit of 10 guides" had no saved data and contradicted itself in places, so I removed it.

Image SEO gets a lot of generic advice and very little measurement. Most guides repeat the same list: modern formats, descriptive alt text, width and height, lazy loading. Some of it is right, some is outdated, and some goes further than Google's documentation does.

This guide sticks to what's documented. Where something is a rule of thumb rather than a documented rule, I say so.

What Image SEO Actually Is

Image SEO covers everything that helps search engines find, understand and show your images, and everything that keeps images from slowing the page down. That means discoverable markup, descriptive text, sensible file names, efficient formats and a loading setup that doesn't hurt Core Web Vitals.

Google explains its side in one sentence in the image SEO documentation: it "uses alt text along with computer vision algorithms and the contents of the page to understand the subject matter of the image." So alt text is one input among three. Images need to be in the HTML as <img> elements (or <picture> with an <img> fallback) so Google can find them. CSS background images aren't indexed as images.

The 6 Factors That Matter

These six cover most of what you can control. They don't carry equal weight, and Google doesn't publish weights, so treat the order as practical rather than official.

1. Alt text

Alt text describes the image for people who can't see it and gives Google a text version of the content. Google asks for "useful, information-rich content that uses keywords appropriately and is in context of the content of the page."

2. Efficient formats

WebP and AVIF produce smaller files than JPEG at similar visual quality, which speeds up loading. Google Images supports both.

3. LCP image priority

If an image is the LCP element, it shouldn't be lazy-loaded, and fetchpriority="high" helps the browser fetch it earlier. web.dev's documented example is Google Flights, where the LCP dropped from 2.6 to 1.9 seconds with priority hints.

4. Width and height

With width and height attributes (or CSS aspect-ratio), the browser reserves the right space before the image arrives. That prevents the layout from jumping, which is what Cumulative Layout Shift measures. Unsized images are a common cause of CLS.

5. File name

Google's advice is short: file names should be "short, but descriptive". Its own example is my-new-black-kitten.jpg instead of IMG00023.JPG. There's no documented length limit. Hashed file names from build tools aren't a problem as long as alt text and context carry the meaning.

6. Image metadata and structured data

Structured data or IPTC metadata with license information can make an image eligible for the Licensable badge in Google Images. Separately, article, product and recipe markup can reference images. Google doesn't describe either as a ranking factor.

Alt Text: What Google Actually Asks For

Three problems show up again and again: alt text stuffed with keywords ("seo tool dashboard best seo 2026 keyword research"), alt="" on images that carry information, and missing alt attributes on images inserted by templates or CMS blocks that drop them.

Good alt text describes what the image shows, written for someone who can't see it. "GSC dashboard showing clicks rising 38% week over week" is better than "dashboard". "Plumber repairing a kitchen sink trap" is better than "plumber sink". There's no official length. I aim for a short sentence, because that's usually enough to be specific without turning into a caption.

Three cases cover most images. Decorative images, like background shapes or divider icons, get alt="", so screen readers skip them. Images that carry information get a specific description, which naturally includes the page's topic when the image is about it. Complex images like charts or dense screenshots get a short alt plus a fuller explanation in a caption or the text next to them.

On keywords, Google is direct: "Avoid filling alt attributes with keywords (also known as keyword stuffing) as it results in a negative user experience and may cause your site to be seen as spam." Use the topic where it fits the description, and don't repeat the same phrase across every image.

One myth worth dropping: an image without alt text isn't invisible to Google. Google also uses computer vision and page content. Missing alt text still costs you, though. You lose the clearest description you control, and screen reader users get nothing.

Modern Formats: WebP and AVIF

WebP launched in 2010 and supports lossy and lossless compression plus transparency. It typically produces files around a quarter to a third smaller than comparable JPEGs. About 97% of browsers in use support it.

AVIF is newer, from 2019, and usually compresses further, often around half the size of a comparable JPEG. About 95% of browsers support it: Chrome and Firefox, Safari from iOS 16 and fully from macOS Safari 16.4, and Edge since version 121 in January 2024. Encoding AVIF takes noticeably longer than JPEG or WebP, so it's best done at build time or by an image CDN, not on every request.

How much you save depends on the image, so measure your own files rather than trusting a single percentage. The common setup is a <picture> element: AVIF first, WebP second, and a JPEG or PNG in the <img> as fallback. The browser picks the first format it supports and downloads one file.

<picture>
  <source srcset="hero.avif" type="image/avif">
  <source srcset="hero.webp" type="image/webp">
  <img src="hero.jpg" alt="Lumina dashboard showing GSC clicks rising"
       width="1200" height="630" fetchpriority="high">
</picture>

You don't always need the markup. Image CDNs can serve WebP or AVIF from the same URL based on what the browser accepts, so a file ending in .jpg may arrive as AVIF. Check the Content-Type in DevTools rather than judging by the file extension.

LCP Image: The Pattern That Works

Largest Contentful Paint measures when the largest element in the first view is rendered. Google's threshold for "good" is 2.5 seconds at the 75th percentile. According to the 2025 Web Almanac, that largest element is an image on about three quarters of mobile pages and even more desktop pages.

Three things help the LCP image. Don't lazy-load it: a lazy-loaded LCP image waits until layout has run, and in web.dev's lab test that added around 270 milliseconds at the median. Add fetchpriority="high": the browser otherwise starts images at low priority and only raises the ones in the viewport after layout. And give it width and height so the layout doesn't shift when it arrives. Dimensions don't make the download start sooner, they only reserve the space.

For other images, the rule is simple. Images visible when the page first loads keep the browser's default eager loading. Only images below the fold get loading="lazy", which is what Google's lazy-loading guidance says, because lazy-loading visible images delays them for no benefit. Use fetchpriority="high" sparingly: if you mark everything as high priority, nothing is.

Image Schema and Structured Data

Two different things get called "image schema", and they do different jobs.

The first is license metadata. With structured data (ImageObject) or IPTC photo metadata, you can state who created an image and under which license it can be used. Google requires contentUrl plus at least one of creator, creditText, copyrightNotice or license. The result can be the Licensable badge in Google Images, which links to the license. Google makes no ranking promise for it. It's worth adding for photographers, stock libraries and publishers who license images, and rarely for a typical blog.

{
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "contentUrl": "https://example.com/photos/harbor.jpg",
  "license": "https://example.com/license",
  "acquireLicensePage": "https://example.com/how-to-license",
  "creditText": "Example Photo Agency",
  "creator": {"@type": "Person", "name": "Jane Doe"},
  "copyrightNotice": "Jane Doe"
}

The second is the image property inside other structured data. For articles, Google recommends it (a URL or ImageObject), ideally in several aspect ratios such as 16:9, 4:3 and 1:1 with at least 50,000 pixels each. It isn't a requirement for Top Stories, which needs no markup at all. Recipe and product markup also use images for their search features. For a broader overview, see the Schema Markup Guide.

Much of what's written about images and AI search is speculation. OpenAI, Anthropic and Perplexity don't document how, or whether, images on a page affect which sources get cited. Claims that AI engines compare alt text with the pixels, or rank sources by image file names, have no public source.

What is known: AI crawlers do fetch images. Vercel's December 2024 analysis of its own network found that about 11.5% of ChatGPT's crawler requests and 35% of Claude's were for images. Fetching isn't proof of how the images are used, though. Google's AI features build on Google's own understanding of images, which uses alt text, computer vision and page content.

One point is solid: none of the major AI crawlers from OpenAI, Anthropic or Perplexity executes JavaScript, according to the same Vercel analysis. Images that only get their real src from a JavaScript lazy-loader are invisible to those crawlers. Native loading="lazy" is a plain HTML attribute and doesn't have that problem. Lumina's JS vs No-JS tool shows which images are present in the raw HTML and which only appear after rendering.

The practical advice doesn't change: descriptive alt text, a caption or nearby text that explains the image, and images in the HTML.

The 6 Mistakes Most Sites Make

Most are quick fixes once you know where to look.

1. Large JPEG or PNG files where WebP or AVIF would do

Serving an oversized JPEG when a modern format, or a correctly sized version, would be a fraction of the bytes slows every visit. Next.js and Astro produce WebP out of the box. Hugo, Nuxt Image and Eleventy need explicit configuration, and in Hugo that means a processing step such as .Process "webp", not just loading the resource.

2. Lazy-loading images that are visible on load

Adding loading="lazy" to the hero or to other images in the first view delays them for no benefit. The LCP pattern above shows what to do instead.

3. Empty or missing alt on images that carry information

Templates, Markdown converters and CMS blocks sometimes drop alt text. Check regularly with Lumina's Alt Text Checker and add alt text to every image that isn't decorative.

4. Keyword-stuffed alt text

"seo tool image checker free 2026 best alt text dashboard" doesn't describe anything, and Google says keyword stuffing in alt can make your site look like spam. Describe the image.

5. Missing width and height

Without dimensions, the layout jumps when the image loads. Set width and height to the image's intrinsic dimensions and scale with CSS, or use aspect-ratio.

6. Images far bigger than they're displayed

A 4000 × 3000 pixel photo shown 800 pixels wide carries about 25 times more pixels than needed. Use srcset and sizes so each device downloads a suitable size. A CDN with image resizing does this automatically, and serving images from a CDN over HTTP/2 or HTTP/3 generally helps too.

A 5-Step Image SEO Workflow

Start where the effect on real users is largest: loading behavior and file size first, descriptions second, metadata last.

01
Audit current images

Run Lumina's Alt Text Checker on your most visited pages. Note images without alt text, oversized files, images without width and height, and lazy loading on images in the first view.

Run Alt Text Checker →
02
Serve efficient formats and sizes

Have your build pipeline or image CDN produce WebP and AVIF in several sizes. Use <picture> or content negotiation, and check the Content-Type in the DevTools Network tab.

Check Core Web Vitals →
03
Fix LCP and lazy loading

Find the LCP image on each template. Remove lazy loading from it and add fetchpriority="high". Keep other visible images eager, and lazy-load only images below the fold.

Run PageSpeed →
04
Rewrite weak alt text

Replace empty, missing or keyword-stuffed alt text with specific descriptions. The Alt Text Checker lists each problem image. Re-check after CMS or template changes.

Re-audit alt text →
05
Add metadata where it applies

If you license images, add license metadata for the Licensable badge. For articles, products and recipes, make sure the image property is set. Validate with Lumina's Schema Validator.

Validate schema →

FAQ

Image SEO covers everything that helps search engines find, understand and show your images, plus keeping images from slowing the page down. That includes images in the HTML, descriptive alt text, sensible file names, efficient formats like WebP and AVIF, width and height, and the right loading setup for the LCP image. Google says it uses alt text together with computer vision and the page's content to understand images.
Alt text is one of the signals Google uses to understand images, alongside computer vision and the page's content, which matters most for Google Images. Google recommends useful, context-rich alt text and warns that keyword stuffing can make a site look like spam. For accessibility it's essential regardless of rankings. Google doesn't publish how much weight alt text carries.
Both are fine, and Google Images supports both. AVIF usually compresses further, WebP encodes faster and works in slightly more browsers (about 97% versus 95% according to caniuse). A common setup is a picture element with AVIF first, WebP second and a JPEG or PNG fallback. If you only add one, WebP is the simpler choice. Measure your own images, because the savings vary.
As big as they're displayed, adjusted for high-density screens, and no bigger. Use srcset and sizes so phones download smaller versions than desktops. A common mistake is shipping a 4000 × 3000 pixel original to a slot 800 pixels wide, which carries about 25 times the pixels needed and slows the page. For article images in Google's structured data, larger versions of at least 50,000 pixels in several aspect ratios are recommended.
Regular SEO is about the page ranking in web results. Google Images SEO is about the image appearing in Google Images and similar image features, with your page as the destination. The basics overlap, but images depend more on alt text, the text around the image, file names and image quality. For visual searches like products, recipes or places, Google Images can bring meaningful traffic.
Yes. The LCP element is an image on most pages, and a large or late-loading image is a common reason LCP misses the 2.5-second threshold. Don't lazy-load the LCP image, give it fetchpriority high, and serve an efficient format at the right size. Width and height, or CSS aspect-ratio, prevent layout shifts, which improves CLS.
Mostly undocumented. AI crawlers do fetch images, and Vercel measured image requests from both ChatGPT's and Claude's crawlers, but OpenAI, Anthropic and Perplexity don't say how images affect citations. The major AI crawlers don't run JavaScript, so images that only appear through a JavaScript lazy-loader are invisible to them. Descriptive alt text, a caption and images in the HTML give every system the best chance.
Oversized images and wrong loading behavior are the ones that cost the most. That means photos far larger than their display size, no modern format, and lazy loading on the hero image. Missing or keyword-stuffed alt text is the most common content mistake. The Alt Text Checker finds all of these on a single page.

Where to Start

If you only do one thing this week, find the LCP image on your main templates and check two things: that it isn't lazy-loaded, and that it's served in a sensible size and format. Then run Lumina's PageSpeed tool. The lab result changes right away. Field data in Core Web Vitals follows over the next 28 days.

Then work through the rest of the workflow above. Formats, srcset and alt text on the images that carry information cover most of what image SEO can do for a typical site.

Audit your image SEO now

Lumina's Alt Text Checker scans every image on a page and flags missing or weak alt text, missing dimensions, lazy/eager problems on the LCP image and old formats. Free, no signup.

Run Alt Text Checker →
Julien El-Bahy

Julien El-Bahy

Web Development Lead and creator of Lumina SEO. Specializing in SEO, GEO, and AI-powered search tools.

Connect on LinkedIn →

Related tools & articles