Image SEO Checker

Analyze all images on page: alt tags, lazy loading, WebP, sizes, srcset. Find and fix issues.

Image SEO Check — Picture Optimization

Check the images on a page: alt text, lazy loading, format by file extension (WebP/AVIF), srcset and width/height attributes. A score and a list of issues for every image.

All image alt tag check
Format by file extension and width/height attributes
Lazy loading check (loading="lazy")
Missing WebP/AVIF detection
Srcset and responsiveness analysis
Image SEO optimization score

How to Use

  1. Enter page URL for analysis
  2. Wait for all images to be scanned
  3. Fix found issues based on recommendations

FAQ

Alt tags describe images for search engines and screen readers. Google Images uses alt text for ranking. Missing alt is a common SEO mistake that's easy to fix.

Large images slow down LCP (Largest Contentful Paint) — a key Core Web Vitals metric. Google recommends using WebP/AVIF, compression and proper dimensions.

Image SEO checker: how the test scores your page

This image SEO checker fetches the page's HTML (JavaScript is not executed) and parses every <img> tag, up to 100 per page. When src holds a lazy-loading placeholder — a data URI or a file named like "placeholder", "blank" or "spacer" — the real address is taken from data-src, data-lazy-src, data-original or similar attributes, and data-srcset counts as srcset.

The score starts at 100. Penalties depend on the share of images that pass each check:

CheckThreshold and penalty
Non-empty alt textunder 50% −30; under 80% −15; under 100% −5
loading="lazy" (first three images excluded)under 50% −15; under 80% −8
Both width and height attributesunder 50% −15; under 80% −8
WebP, AVIF or SVGunder 30% −10
srcset on raster imagesunder 30% −10

A page with no <img> at all gets 50. In the "All Images" table every image has its own issue list, and the "With Issues" filter leaves only the rows you need to fix. A score of 100 means every image passed every check above — not that the images are light or well chosen.

A worked example

Say a page has 20 images: 12 have alt text (60%, −15), 5 of the 17 images after the first three use loading="lazy" (29%, −15), all have width and height, all are JPG (−10) and none has srcset (−10). The result is 50. Adding alt text to the remaining eight images lifts it to 65; lazy-loading every below-the-fold image adds another 15, to 80. Alt text and lazy-loading carry the biggest penalties and need no re-encoding of files, so start there.

Running an image SEO audit across a whole site

Image problems almost always come from templates. Test one URL per page type — home page, category, product page, blog post — and fix the template: one change clears the same issue on thousands of URLs. Then test pages where editors upload images by hand, since that is where missing alt text usually hides.

What this image SEO test can and cannot see

Knowing the method saves you from chasing false alarms:

  • Format is read from the file extension in the URL. An image served from a CDN without an extension (/img/123?w=800) is not flagged "Not WebP/AVIF format", but it does not count towards the modern-format share either.
  • <picture> sources are ignored. If a <source> delivers AVIF or WebP and the fallback <img> points to a JPG, the JPG is flagged. That is expected: browsers that support the newer format will download it.
  • File size is not measured — images are not downloaded. To find heavy files, run a page speed test.
  • CSS background images and images injected by JavaScript are not in the source HTML, so the checker does not see them.
  • Dimensions set only in CSS (for example with aspect-ratio) do not count — the check looks for width and height attributes in the markup.
  • JavaScript lazy-loading via data-src is not flagged on the image row, but only native loading="lazy" counts towards the lazy-loading share in the score.

Fixing the most common findings

"Missing alt attribute" and "Empty alt="""

Alt text describes what the image shows, not the keyword you want to rank for: "Grey three-seat sofa with oak legs", not "buy cheap sofa online best price". An empty alt="" is the correct choice for decorative images — dividers, background patterns, icons next to text that already says everything — because screen readers skip them. The checker reports empty alt as a warning so you can confirm each one is intentional. In WordPress, fill in "Alternative Text" in the Media Library; themes that output images with wp_get_attachment_image() pick it up automatically.

When an image is a link, Google uses its alt text much like anchor text, so banners and image buttons need meaningful alt. For the logo in the header, the company name is enough.

Missing loading="lazy"

Lazy-load images below the fold. The main above-the-fold image, which is usually the Largest Contentful Paint element, should never be lazy — give it priority instead:

<img src="/img/hero-1200.webp" width="1200" height="600"
     alt="Bicycle repair workshop" fetchpriority="high">

That is why the checker does not expect lazy-loading on the first three images. Recent WordPress versions add loading="lazy" on their own and skip the first content image.

"Missing width/height"

The attributes tell the browser the aspect ratio before the file arrives, so it reserves space and the layout does not jump (CLS). Use the file's real pixel dimensions and handle responsiveness in CSS:

img { max-width: 100%; height: auto; }

"Missing srcset" and "Not WebP/AVIF format"

One pattern clears both — <picture> with several widths:

<picture>
  <source type="image/avif"
          srcset="/img/sofa-640.avif 640w, /img/sofa-1280.avif 1280w"
          sizes="(max-width: 700px) 100vw, 700px">
  <img src="/img/sofa-1280.webp"
       srcset="/img/sofa-640.webp 640w, /img/sofa-1280.webp 1280w"
       sizes="(max-width: 700px) 100vw, 700px"
       width="1280" height="853" loading="lazy"
       alt="Grey three-seat sofa with oak legs">
</picture>

Every current browser supports WebP, so a WebP fallback is enough and you can drop the JPG. The sizes attribute matters as much as srcset: without it the browser assumes the image fills the whole viewport and may pick a larger file than needed. Convert files to WebP or AVIF with the image converter and shrink them with the image compressor — both run in your browser. On Shopify, Wix, Squarespace and similar builders, formats and srcset are usually generated by the platform, so alt text is the part you control.

WordPress specifics

WordPress adds srcset and sizes to images inserted through the editor and generates the smaller copies itself. WebP uploads are supported since version 5.8 and AVIF since 6.5. If the checker still reports "Missing srcset" on a WordPress site, the theme or page builder is most likely printing <img> tags by hand instead of using WordPress image functions — the fix belongs in the theme template.

Beyond the checker: image search basics

These points are not tested here, but they affect how Google discovers and shows your images:

  • File names. grey-sofa-oak-legs.webp says more than IMG_4821.webp. Separate words with hyphens.
  • Surrounding text. A caption and the nearby paragraph help Google understand an image as much as alt text does.
  • Image sitemap. You can list a page's images in your sitemap with <image:image><image:loc>. Google now supports only image:loc; caption, title, geo_location and license tags are ignored.
  • Crawlability. Do not block your image directory in robots.txt, or the images cannot appear in Google Images.
  • One canonical URL per image. Serving the same picture under several query-string variants splits signals and wastes crawl budget.

Finally, caching. Images rarely change, so let browsers keep them for a year, and rename a file when you replace it (sofa-v2.webp) so visitors do not get the stale copy. In nginx:

location ~* \.(avif|webp|jpe?g|png|gif|svg)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
}

Google's own requirements are in its image SEO best practices, and the link between images and loading metrics is covered in our Core Web Vitals explainer.

Improve search rankings

SEO problems may be costing you traffic. Cascade link building will improve site visibility in search.

Cascade link promotion for your site $30 bonusBacklinks 5→50→5000 across 100+ platforms. From $30 to start, plus a $30 bonus for newcomers.