Free SEO Tool · No Signup Required

Image Optimization Checker

Find the images on a page that are still JPEG, PNG or GIF files, and the ones further down that load before anyone scrolls to them. Paste a URL and this free check reads the page's main content as the server sends it and counts both. It reads the HTML, not the image files, so it tells you about format and loading, never about weight.

https://

Read-only. One fetch of the page from our server, the served HTML only. No image is downloaded and nothing is written to your site.

  • No signup, no email wall
  • Same result every run
  • Legacy formats counted
  • Lazy loading checked
  • Main content only
  • Free, no daily cap
What we checked

2 checks. Is any image in the page's main content a legacy JPEG, PNG, GIF, BMP or TIFF file, and does every image after the first carry loading="lazy". One GET of the URL as VerandBot/1.0, redirects followed, 12 second timeout, the served HTML only: no JavaScript runs. The main content is the first <article> or <main> holding 250 characters of text or more, otherwise the body with header, nav, footer and aside removed.

How a flag is decided

These are Verand's own rules of thumb, not Google's. An image is legacy when its src ends in .jpg, .jpeg, .png, .gif, .bmp, .tif or .tiff. The first image is exempt from lazy loading, because it is usually the hero and should load at once; each image after it without loading="lazy" is counted. A fail comes back as a count, not a list of files.

What it cannot see

File weight and pixel dimensions: no image is downloaded. The 200 KB weight check runs in Verand's deep crawl, not here. Which file a browser actually downloads: an image counts as modern when the markup offers WebP or AVIF through a <picture> source or a srcset candidate, and the format is read from the file name or the source's type, not the file. Images with a data: placeholder that a script swaps later, CSS backgrounds, inline SVG, and logos outside the main content are not counted. Alt text is the Image Alt Tag Checker's job.

About this tool

How the Image Optimization Checker reads a page.

One fetch, one region, two questions per image tag. The card is the tool in motion on an example article, looped, and each step lights up while the card is doing it.

01

One request for the page

The tool asks for the URL you typed as VerandBot, following redirects and giving up after twelve seconds. It reads the HTML the server sends and runs no JavaScript, so an image a script inserts after load is not in what it reads.

02

The main content is isolated

Scripts, styles, inline SVG, noscript, iframes and forms are dropped, then the first <article> or <main> with 250 characters of text becomes the region. The logo in your header is not part of the count.

03

Two questions per image

For every <img> with a real src: does the file name end in a legacy extension, and, from the second image on, does the tag say loading="lazy"? Inline data: images are skipped.

04

Two counts, no weights

The answer is how many legacy files and how many early loaders, not which ones and not how heavy. Open the page's HTML to find them; the card shows what the fixed tags look like.

Images, explained

How to optimize images for the web, and what image SEO actually asks of them.

Images are usually the heaviest thing on a page and the least looked at after upload. Here is what "optimized" means in practice: the three sizes people confuse, the five formats, the markup that keeps a page steady while it loads, and the one image that should never wait.

Three sizes that get confused

Every image has three sizes, and most bad advice mixes them up. File weight is the number of bytes the browser has to download, the thing that decides how long the image takes to arrive. Pixel dimensions are the width and height the file was saved at, say 4000 by 6000 for a photo straight from a camera. Rendered size is the space the image actually fills on screen, which the page's CSS decides, often a few hundred pixels across.

The expensive mistake is the gap between the second and the third. A professional headshot delivered by the photographer at full resolution and uploaded as is can weigh several megabytes and display at 300 pixels wide. The browser downloads every pixel, then throws most of them away to fit the box. Nothing looks wrong, which is why it survives: the photo is sharp, the page is just slow. A reasonable target is a file saved at no more than about twice the width it displays at, which covers high-density screens, then compressed.

Regulated firms carry more of these than most sites: partner and advisor headshots, team photos from an office shoot, and the badges and award logos that sit in an About page or a sidebar. They are uploaded once, by someone in a hurry, and rarely touched again. This checker does not weigh files (see what it cannot see, above), but a count of legacy formats on an About page is often the first sign that those uploads were never resized.

JPEG, PNG, GIF, WebP and AVIF

Format matters because two files of the same picture at the same visual quality can differ a lot in weight. The older three each have a job; the newer two can do all three jobs in less space.

FormatCompressionGood forWorth knowing
JPEGLossyPhotographsNo transparency. Re-saving it repeatedly degrades it a little more each time.
PNGLosslessScreenshots, logos, anything with sharp edges or transparencyHeavy for photos. A photo saved as PNG is one of the most common oversized files on the web.
GIFLossless, 256 colours per frameSimple animationThe colour limit makes photos look banded, and animated GIFs are large for what they show.
WebPLossy or losslessEverything the three above do, including transparency and animationReleased by Google in 2010 and supported by every current major browser.
AVIFLossy or losslessThe same, usually at a smaller weight than WebP for photosBuilt on the AV1 video codec from the Alliance for Open Media. Slower to encode, and supported by current Chrome, Edge, Firefox and Safari.

That is why this checker flags JPEG, PNG and GIF files rather than calling them wrong. A JPEG is a perfectly good file. It is simply no longer the lightest way to send a photograph, and on image optimization for a website the lightest file at the same quality is the whole game.

Lossy and lossless compression

Lossless compression shrinks a file without changing a single pixel; decompress it and you get exactly what went in. Lossy compression discards detail the eye is unlikely to miss, and gets far smaller files for it. For photographs, lossy at a sensible quality setting is almost always the right call: the discarded detail is noise and fine texture no reader will notice. For screenshots of a fee table or a chart with small type, lossless keeps the edges crisp. The mistake is using one setting for everything, which leaves either photos too heavy or text images smeared.

Responsive images: srcset and sizes

A single image file cannot be the right size for a phone and a wide desktop at once. The srcset attribute lists several widths of the same image, and sizes tells the browser how wide the image will display, so the browser picks the smallest file that still looks sharp on that screen. The phone gets the 600-pixel file, the desktop the 1200.

<!-- three widths, the browser chooses -->
<img src="/images/team-1200.webp"
     srcset="/images/team-600.webp 600w,
             /images/team-1200.webp 1200w,
             /images/team-2000.webp 2000w"
     sizes="(max-width: 700px) 100vw, 700px"
     width="1200" height="800"
     loading="lazy" alt="The advisory team outside the office">

To offer AVIF with a fallback for older software, wrap the image in <picture> with a <source type="image/avif"> above the <img>. This checker reads that markup: an <img> inside a <picture> whose <source> offers WebP or AVIF, or whose own srcset lists a .webp or .avif file, counts as modern, and its JPEG or PNG fallback is not flagged.

Width and height, so the page does not jump

When an image has no width and height attributes, the browser does not know how much room to leave for it until the file arrives. The text below is laid out first, then shoved down when the image lands, which is the jolt that makes a reader tap the wrong link. Google measures this as Cumulative Layout Shift, one of its Core Web Vitals. The fix costs nothing: put the image's real width and height on the tag, and let CSS scale it. Modern browsers use the two numbers to reserve a box of the right shape before a byte of the image has loaded. This tool does not check for them, so it is worth a look while you are in the markup.

Lazy loading, and the one image that should not wait

loading="lazy" tells the browser not to fetch an image until the reader scrolls near it. On a long article with a dozen charts and photos, that means the first screen loads with only the images it shows, and the rest arrive as they are needed, or never, for a reader who leaves early. Browsers support the attribute natively; no script is required.

The exception is the image at the top. The hero photo on an article is often the largest thing in the first screen, which makes it the element Google times as Largest Contentful Paint. Lazy-loading it makes the browser wait before even requesting it, and the page feels slower for it. Load it at once, and consider fetchpriority="high" to move it up the queue. That is why this checker exempts the first image in the main content and counts only the ones after it. It is a rule of thumb: if your hero is the third image in the markup, the first two are exempt in spirit, and the count will include one you should leave alone.

Many themes and plugins lazy-load with a script instead, putting a tiny placeholder in src and the real address in an attribute like data-src. This checker skips images whose src is an inline data: placeholder, so a page built that way can pass both checks without a single image being read. A pass on such a page means "nothing to count", not "all clear".

Image SEO: what search engines read

For search, an image is its markup more than its pixels. Google indexes images from HTML <img> elements, including ones inside <picture>, and says it does not index images set as CSS backgrounds, so a photo you want found in Google Images belongs in an <img> tag. It reads the file name, the alt text, and the words around the image to work out what it shows. A file called IMG_4471.jpg says nothing; office-closing-denver.webp says something. Alt text is its own subject, covered by the Image Alt Tag Checker.

Weight feeds search indirectly. A heavy hero image is one of the most common reasons a page is slow to show its main content, and Google uses Core Web Vitals, including Largest Contentful Paint, among its page experience signals. It is careful to say that relevant content matters more. Faster images will not rescue a thin page, but a slow one makes a good page harder to use.

Never put the words in the picture

The image problem specific to regulated sites is text saved as a graphic: a rate table exported as a PNG, a disclosure pasted as a screenshot, a credential or license number set inside a banner. A screen reader cannot read it unless someone wrote it all into the alt text, a search engine cannot reliably read it, a visitor cannot select or copy it, and nobody can update one figure without reopening the design file. When the rate changes or the disclosure wording is revised, the graphic is the copy that gets missed. Put the words in HTML, where they can be read, searched, reviewed and changed; use the image for what only an image can show.

Verand's thresholds, stated as ours

No standard says when an image becomes "oversized" or which formats count as modern, and most checkers do not tell you where they draw the line. These are ours, taken from the code the tools run:

CheckVerand's rule of thumbWhere it runs
Legacy formatThe <img src> ends in .jpg, .jpeg, .png, .gif, .bmp, .tif or .tiff. A URL with no image extension is not counted.This tool, and every page of Verand's deep crawl
Lazy loadingEvery image after the first in the main content should carry loading="lazy". The first is exempt as the likely hero.This tool, and every page of Verand's deep crawl
OversizedThe image's Content-Length header is over 200 KB, read from up to 250 images per crawl.Verand's deep crawl only. This free tool downloads no image, so it never runs here.

Where else to check

For the measurements this tool does not make, use a browser-based test. Google's PageSpeed Insights runs Lighthouse against the page in a real browser, runs its scripts, and reports actual bytes and rendered sizes; Lighthouse has reported this ground under audit names like "Serve images in next-gen formats", "Properly size images" and "Defer offscreen images". GTmetrix and WebPageTest show each image's download in a waterfall, which is the quickest way to spot the one file that weighs more than the rest of the page. Their numbers will differ from this checker's, and from each other, because each looks at a different slice of the page; see the last question below.

Why this one

Why choose Verand's Image Optimization Checker?

Six things that are true of this tool, each one backed by a line in the code that runs it.

No signup, no email wall

The request carries a page URL and nothing else. There is no account and no session behind the tool, so there is nothing for us to keep about you.

The verdict on the page

Both counts come back in full, with the product's own wording beside them and an example of the fixed markup. Nothing is held back for a report, a call or an upgrade.

Deterministic

Each check is a fixed pattern over the image tags: a list of seven extensions and one attribute. No model reads the page, so the same HTML gives the same counts every time.

The product's own checks

These are the two image checks Verand's deep crawl runs on every page of every customer site every two weeks, called directly on one URL. The crawl adds the 200 KB weight check, which needs the image files; this tool says so rather than guess.

Names what it cannot see

No file weights, no pixel sizes, no script-loaded images, no CSS backgrounds. When a pass could mean there was nothing to count, the card says that beside the result.

$0, no daily cap

Each run is one page fetch and a parse, so it costs nothing and is never metered. The one limit is a courtesy to the sites being fetched: 20 checks a minute per visitor.

Questions

Frequently Asked Questions About the Image Optimization Checker

What counts as too big, which format to use, and why this tool's answer can differ from PageSpeed Insights.

What counts as an oversized image?

There is no standard figure, from Google or anyone else. Verand's rule of thumb is a file over 200 KB as served, which its deep crawl flags by reading each image's Content-Length header. That is our line, not a rule, and this free tool does not apply it, because it downloads no image. A more useful test for any single image is relative: a file saved at more than about twice the width it displays at is carrying pixels nobody sees, whatever it weighs.

Should I use WebP or AVIF instead of JPEG and PNG?

For most sites, yes, and WebP is the simple default: every current major browser supports it, and it handles photos, transparency and animation in one format. AVIF usually gets photos smaller still and is supported by current Chrome, Edge, Firefox and Safari, but it is slower to encode and not every editing tool or CMS handles it yet. If you serve AVIF or WebP through a picture element or a srcset with a JPEG fallback, this checker counts the image as modern: it reads the offered sources, not only the fallback's file name.

Why is an image flagged when it looks small on the page?

Because this checker does not look at size at all. It flags a JPEG, PNG or GIF by its file name, so a 16-pixel icon counts the same as a full-width photo, and it flags an image after the first for missing loading="lazy" however small it is. How big an image looks is its rendered size, set by the page's CSS, and says nothing about its pixel dimensions or file weight: a large photo squeezed into a small box is the classic case. For the dimensions of a single file, an image size checker or your image editor will tell you; for weight on a live page, a browser-based test will.

Does image size affect Google rankings?

Indirectly. Google uses Core Web Vitals among its page experience signals, and a heavy hero image is a common reason a page is slow to show its main content, which Largest Contentful Paint measures. Google also says relevant, helpful content matters more than page experience, so lighter images will not lift a weak page. For Google Images specifically, what counts is the markup: an img element rather than a CSS background, a descriptive file name, alt text and the words around it.

Does this tool compress my images?

No. It makes one GET request for the page's HTML from our server, reads the image tags, and writes nothing. It never downloads an image, so it cannot compress, convert or resize one, and it has no access to your site. Compression happens where images are stored: in your CMS or an image plugin, in your build step, or in an image editor before upload. Once converted, run the page again and the legacy count should fall.

Why is my result different from PageSpeed Insights?

Because they read different things. PageSpeed Insights loads the page in a real browser, runs its scripts, and looks at every image the browser actually downloads, including header logos, CSS backgrounds, picture sources and images a lazy-load script inserts, and it measures real bytes and rendered sizes. This checker reads the served HTML, only the main content, and judges each img tag by its file name and its loading attribute. So PageSpeed can flag an image this tool never sees, and this tool can count a JPEG fallback that PageSpeed knows the browser skipped. Both are right about what they looked at.

After the check

A lighter page loads faster. It still has to say something worth naming.

Fixing the images makes the page quicker to read; what is on it decides whether anyone cites it. Verand writes articles from your own expertise and credentials, so Google and the AI assistants have something of yours to name. It then tracks where you rank and where ChatGPT, Gemini, Google AI Overviews, Google AI Mode, Perplexity and Claude mention you, and gates every draft so a claim your regulator would not allow never publishes.

Verand

Content built to rank in Google and get cited by ChatGPTPerplexityGeminiClaude, with every claim checked before it goes live.

support@verand.ai

© 2026 Verand. All rights reserved. TermsPrivacyAI policyAccessibilitySecurity
Not legal advice. Compliance packs are researched from the regulators' own text and tested by Verand, not reviewed by a licensed attorney.