Largest image under 300 KB
No image on the home page exceeds 300 KB.
- Severity
- low
- Tier
- Passive: runs on any URL
- Category
- Performance
- Fix
- Summary below; full runbook in the Fix Kit, Module 01: Ship it
- Id
- largest-image
What this means
Passing means no image on your home page is over 300 KB. Failing means at least one is, and the result names it. One oversized image is the most common reason a page fails the weight check, so we test it on its own.
How we test it
We parse the home page for every image it references, send a HEAD request to each, and read Content-Length. Every image under 300 KB passes. Any image over 300 KB fails, and we report the address and size. An image served without a Content-Length header cannot be measured by this check.
Why it matters
One unoptimized hero image is usually half the page. An image exported at full camera size and displayed at a third of the width sends every byte anyway, on every visit, before anything below it loads. The kit's runbook says the same of a performance score under 80: usually one oversized hero image, fix the largest asset first, and curl -sI IMAGE_URL | grep content-length finds it.
The fix
Resize the named image to the largest size it is displayed at, export it as WebP where the build can produce it, give it width and height attributes so the layout does not shift, and add loading="lazy" if it sits below the fold; on Next.js, next/image for images you host does the resizing. Confirm with curl -sI https://YOUR_DOMAIN/IMAGE_PATH | grep -i content-length, expected a value under 307200.
The full runbook is in the Fix Kit, Module 01.
Prompt for your AI
Paste this into the coding agent that built the app. It reproduces the finding and stops before changing anything; the fix steps are in the kit.
Do not change anything. This is a verification pass. Run: curl -s https://YOUR_DOMAIN/ | grep -oE '<img[^>]*>' and show me every img tag. For each src, run: curl -sI https://YOUR_DOMAIN/THAT_PATH | grep -iE '^(content-length|content-type)' and show me the output. List every image over 307200 bytes with its path, its byte size, its format and its pixel dimensions. For each one, tell me the largest width it is displayed at in the layout, and whether the tag has width, height and loading attributes. List what it would take to bring each one under 300 KB, and stop there. Run: curl -sI https://YOUR_DOMAIN/LARGEST_IMAGE_PATH | grep -i content-length and show me the output. Expected on a passing site: a value under 307200.
Grade your own URL
Every grade lists this check with its evidence for your site. Two free grades a day.