SEO Auditor

Image SEO Checker Online

Paste your page HTML and instantly audit every image for issues that hurt SEO and Core Web Vitals: missing alt text, generic filenames, missing dimensions, lazy loading problems, and outdated formats.

Last updated: August 2026

9 Checks

Per Image

Alt Text

Analysis

CWV

LCP + CLS

Private

No Uploads

Your HTML is analyzed locally in your browser. Nothing is sent to any server.

How to audit image SEO from HTML

Five steps, all running locally in your browser.

01

Get your page HTML

View Page Source and copy it, or just copy the section with your images.

02

Paste it into the checker

Only img elements are read, everything else is ignored.

03

Run the check

Results appear instantly, grouped by image with a severity breakdown.

04

Review each image

Expand a row for the specific issue and fix. Errors first, then Warnings, then Suggestions.

05

Fix and re-check

Update your markup and paste it back in to confirm the issues are resolved.

A closer look at getting your HTML in

  1. 1

    Open your page in a browser.

  2. 2

    Right-click anywhere on the page and choose View Page Source (or press Ctrl+U on Windows, Cmd+U on Mac).

  3. 3

    Select all and copy (Ctrl+A then Ctrl+C), then paste the HTML into the checker above. You can also paste just the relevant section containing your images rather than the full page.

  4. 4

    Click Run check. Results appear instantly, grouped by image with a severity breakdown for each issue found.

  5. 5

    Expand each image row to read the specific issue and the recommended fix. Prioritize Errors first, then Warnings, then Suggestions.

What each check looks for

ErrorMissing alt attribute

An img element with no alt attribute at all is both an SEO gap and an accessibility failure. Google cannot classify the image and screen readers announce it as a nameless image. Every img must have an alt attribute, even if it is empty for decorative images.

ErrorMissing width or height attribute

Without explicit dimensions, the browser cannot reserve space for the image before it loads. The layout shifts when the image arrives, increasing your Cumulative Layout Shift (CLS) score, which is one of Google's Core Web Vitals metrics used as a ranking signal.

ErrorGeneric or camera-generated filename

Filenames like IMG_1234.jpg, DSC_0032.jpg, image1.png or screenshot.png carry no descriptive value for search engines. Google uses filenames as one of the signals to understand image content. Descriptive, hyphen-separated filenames are a direct SEO improvement.

WarningEmpty alt on a content image

alt="" is correct for purely decorative images (dividers, background shapes). But if the image carries meaning or context for the user, empty alt wastes an SEO and accessibility opportunity. The tool flags this as a warning since intent cannot be determined from HTML alone.

WarningAlt text that looks like a filename

A common mistake is setting alt to the image filename: alt="IMG_1234.jpg" or alt="product-photo.png". This is no more useful than an empty alt from Google's perspective and reads nonsensically to screen reader users.

WarningAlt text too short or too long

Alt text shorter than 5 characters is almost certainly not meaningful. Alt text longer than 125 characters exceeds what most screen readers will announce fully, and search engines prefer concise descriptions. The recommended range is one or two descriptive sentences.

Warningloading="lazy" on the first image

The first image on most pages is the hero banner or featured image, which is typically the Largest Contentful Paint (LCP) element. Lazy-loading it tells the browser to delay loading the most important above-fold content, directly increasing LCP time and hurting Core Web Vitals.

SuggestionNo lazy loading on non-first images

Images below the fold load unnecessarily on the initial page paint without lazy loading. Adding loading="lazy" defers them until the user scrolls close, reducing initial load time and bandwidth, especially on mobile connections. Note this fires for any missing loading="lazy", including an image explicitly set to loading="eager".

SuggestionOutdated image format (BMP)

BMP is an uncompressed format that produces very large files with no quality advantage over WebP or AVIF. GIF files are intentionally not flagged by this check, since there's no reliable way to tell a genuinely animated GIF from a static one using markup alone, and flagging every GIF risks a false suggestion on real animation.

Common image SEO checker mistakes

Assuming static GIFs get flagged as an outdated format

They don't. Only BMP currently triggers the outdated-format suggestion. GIF is exempted since the checker can't tell a genuinely animated GIF from a static one using markup alone, and flagging every GIF would risk a false suggestion on real animation.

Expecting <picture>, srcset or CSS background images to be audited

Only literal img elements are read. A picture element's fallback img inside it is checked normally, but its source variants, responsive srcset entries, and any image set via CSS background-image are invisible to this tool entirely.

Thinking a lazy-loading suggestion means something is actually broken

The missing-lazy-load check fires for any image beyond the first without loading="lazy" exactly, including one deliberately set to loading="eager". It's a Suggestion, not an Error, and safe to dismiss if that was intentional.

Expecting the tool to verify actual file sizes or compression quality

It only reads HTML attributes, it never fetches the image files, which browsers block for external URLs anyway. For real file size and compression checks, use browser DevTools or Google PageSpeed Insights.

Pasting a whole page and missing images loaded through JavaScript

View Page Source shows the HTML as initially delivered, not what JavaScript adds afterward. If your images are injected client-side, check the rendered DOM in DevTools instead and copy that markup.

Why use ImgTweak?

Runs entirely in your browser
No uploads, ever, not even the images themselves
9 checks per image, grouped by severity
Per-image fix suggestions, not just a pass/fail score
Honest about what it can't check from HTML alone
Free forever, no account needed

Frequently asked questions

How do I get the HTML to paste into this tool?

Open your page in a browser, right-click anywhere and choose View Page Source, then copy the entire HTML or just the section that contains your images. You can also paste just the relevant img tags directly, without the full page HTML. The tool only reads img elements and ignores everything else.

Does this check <picture> elements, srcset, or CSS background images?

No. The checker only reads literal img elements from the pasted HTML. A picture element's fallback img inside it will still be checked normally, but individual source elements, srcset variants, and images set via CSS background-image are not audited at all, since they're structurally different from an img tag.

Why does alt text matter for SEO?

Google uses alt text alongside its computer vision algorithms and the surrounding page content to understand what an image shows and what topic it supports. Missing or vague alt text means Google has less signal to classify the image, reducing its chances of appearing in Google Images and weakening the relevance signal it provides to the surrounding page. Alt text also serves screen readers, making it a legal accessibility requirement under laws like the ADA, Section 508 and the European Accessibility Act.

Why do missing width and height attributes matter?

When a browser loads a page, it needs to know how much space to reserve for each image before the image file arrives. Without explicit width and height attributes, the browser renders the page without that space, then shifts the layout when the image loads. This is called Cumulative Layout Shift (CLS) and it is one of Google's Core Web Vitals metrics. High CLS scores hurt both user experience and search rankings.

Why is lazy loading the first image a problem?

Lazy loading tells the browser to defer loading an image until it is about to enter the viewport. For images below the fold, this is a significant performance improvement. But the first image on most pages is typically the hero banner or featured image, which is the Largest Contentful Paint (LCP) element. Lazy-loading the LCP image delays the browser from loading the most important visible content, which directly increases the LCP time and hurts Core Web Vitals scores.

Will I get a suggestion even if I set loading="eager" on purpose?

Yes, for any image beyond the first. The missing-lazy-load check simply looks for loading="lazy" being absent, it doesn't distinguish between no loading attribute at all and an explicit loading="eager". If you deliberately set eager loading on a below-fold image for a real reason, that suggestion is safe to dismiss, it's a Suggestion severity precisely because the tool can't know your intent.

What is wrong with filenames like IMG_1234.jpg?

Search engines use image filenames as one of several signals to understand what an image depicts. Camera-generated filenames like IMG_1234.jpg, DSC_0032.jpg, or Screenshot_2024.png provide zero descriptive context. A filename like red-running-shoes-side-view.webp tells both the search engine and the URL structure something meaningful about the image. Filenames also cannot be changed after upload without breaking URLs and losing any accumulated link value.

Does the outdated format check flag GIF files too?

No, currently only BMP triggers this suggestion. GIF files are intentionally exempted, because there's no reliable way to tell from markup alone whether a .gif is a genuinely animated image, where GIF is still often the only practical choice, or a static image that was simply saved in an old format. Flagging every GIF risks a false suggestion on legitimate animation. If you know a specific GIF on your page is static, converting it to WebP or AVIF manually is still worthwhile, the checker just won't prompt you to.

Is my HTML sent to a server?

No. The entire check runs in your browser using the built-in DOMParser API. Your HTML is never sent to any server. You can disconnect from the internet after the page loads and the checker still works.

Can this tool check actual image file sizes?

No. Checking actual file sizes requires fetching each image URL from a server, which is a network request that browsers block for external URLs due to CORS restrictions. This tool works from HTML alone, which means it can audit the markup attributes but not the files themselves. To check file sizes, use browser DevTools, Google PageSpeed Insights, or WebPageTest.

Ready to audit your images?

No sign-up. No uploads. Paste your HTML above and see every issue in seconds.