On this page
Images make websites visually compelling, but they're also the leading cause of slow page loads. A single unoptimized hero image can weigh more than an entire well-built web page's worth of HTML, CSS, and JavaScript combined. The good news is that reducing image sizes for speed doesn't mean making your site look worse—it means delivering the right resolution at the right quality for each device.
Why image size matters more than you think
Google's Core Web Vitals include Largest Contentful Paint (LCP)—the time it takes for the largest visible element (usually an image) to load. If your hero image is a 3 MB JPEG at 4000px wide being served to a mobile phone screen, you're making the browser download roughly 10x more data than it can display. LCP suffers, your ranking takes a hit, and users bounce before they've read a word.
The numbers bear this out. According to HTTP Archive data, the median web page loads over 900 KB of images. Optimized properly, many pages can serve the same visual experience at 200–400 KB total—a 3× to 4× reduction in image weight.
The three levers of image optimization
1. Resize to the actual display size
This is the most impactful change. A 4000×3000 px photo from a modern camera displayed at 800px wide in a blog post is wasting over 90% of its pixels. The browser downloads all of them, then shrinks the image using CSS—throwing away most of what you paid for in bandwidth.
Match your image dimensions to the largest size they'll display at. For most body content images, 1200px wide is the ceiling. For thumbnails and card images, 400–600px is plenty.
2. Choose the right format
Different image types suit different content:
| Format | Best for | Notes |
|---|---|---|
| WebP | Photos, most web use | 25–35% smaller than JPEG, transparency support |
| JPEG | Photos without transparency | Universal support, great for photos |
| PNG | Screenshots, logos, transparency | Lossless, larger files |
| SVG | Icons, logos, illustrations | Scalable, tiny file size for vector art |
| AVIF | High-efficiency photos | Smaller than WebP, but slower to encode |
For new projects in 2026, WebP is the default choice for photographs and complex images. It's supported in all modern browsers and strikes the best balance between quality and file size.
3. Compress to the optimal quality level
Image quality in JPEG and WebP terms is a scale from 0 to 100. The perceived difference between quality 85 and quality 100 is negligible on screen, but the file size difference is dramatic. Most optimization guides recommend:
- 80–85% for JPEG and WebP: Sharp enough for any screen use, significantly smaller
- 90–95% for print preparation or high-end product photography
Going below 70% produces visible compression artifacts—blocky patterns in smooth gradients and blurry edges on text. Stay in the 75–90% range for reliable quality with real savings.
Step-by-step: optimizing images with FixTools
Step 1: Resize first
Open the Image Resizer tool and set your target width. For blog post body images, use 1200px. For hero/banner images, use 1920px. Resize in bulk if you have a folder of images to process.
Step 2: Compress to target quality
Open the Image Compressor tool. Paste or drop in your resized image and choose your compression level. The tool shows you the before and after file size so you can decide if the saving is worth the quality tradeoff.
Step 3: Convert to WebP if you're on a modern stack
If your CMS or framework supports WebP delivery, convert your JPEG and PNG files to WebP using the Image Format Converter. You'll typically save an additional 25–35% over an already-compressed JPEG.
Serving the right image to each device
Optimization goes beyond file size. The srcset attribute in HTML lets you serve different image sizes to different devices:
<img
src="hero-800.webp"
srcset="hero-400.webp 400w, hero-800.webp 800w, hero-1600.webp 1600w"
sizes="(max-width: 600px) 400px, (max-width: 1200px) 800px, 1600px"
alt="Description of image"
loading="lazy"
/>
A mobile visitor on a 390px screen downloads a 400px image. A desktop visitor with a 1440px monitor downloads the 1600px version. Without srcset, everyone gets the largest image regardless of their device.
If you're on WordPress, Shopify, or a similar CMS, image optimization plugins handle srcset generation automatically. On custom builds, Next.js's <Image> component does this out of the box.
Quick wins: the checklist
- No image wider than 1920px on any page
- Body content images at 1200px or less
- JPEG/WebP quality at 80–85%
- PNG files converted to WebP where transparency isn't needed
-
loading="lazy"on all images below the fold - Hero image preloaded with
<link rel="preload"> - Alt text on every image (required for accessibility and image SEO)
Following this checklist on an existing site typically improves Lighthouse performance scores by 20–40 points and brings LCP scores from "Needs improvement" to "Good" for most content sites.
Try it instantly
Use these free FixTools right in your browser. No sign-up, no uploads—your data stays private.
Frequently asked questions
How much does image size affect website speed?
Images are typically the largest assets on a webpage—often accounting for 50–80% of total page weight. Reducing image sizes is usually the single highest-impact performance improvement available. A page that loads in 2 seconds vs 5 seconds can have a 40% lower bounce rate.
What's the best image format for websites in 2026?
WebP is the best general-purpose format for the web. It's 25–35% smaller than JPEG at equivalent quality and supports transparency like PNG. For very simple graphics with solid colors, SVG is ideal. Use AVIF if you need even smaller files and can accept slightly longer encoding times.
What resolution should images be on a website?
For full-width desktop images, 1920px wide is the maximum you'll ever need. For blog post images, 1200px wide is standard. Product thumbnails work well at 400–600px. Going larger than needed is the most common reason websites have unnecessarily large images.
Does image compression affect SEO?
Yes, indirectly. Page speed is a confirmed Google ranking factor. Faster-loading pages get better Core Web Vitals scores (especially LCP—Largest Contentful Paint), which feeds into Google's ranking signals. Image optimization is one of the fastest ways to improve your site's Core Web Vitals.
Should I use lazy loading for images?
Yes, for images below the fold. The HTML attribute loading='lazy' tells the browser to defer loading images until they're about to enter the viewport. This reduces initial page weight and improves Time to Interactive. Don't lazy-load your hero image or above-the-fold content—that will hurt your LCP score.
O. Kimani
Software Developer & Founder, FixTools
Building FixTools — a single destination for free, browser-based productivity tools. Every tool runs client-side: your files never leave your device.
About the author →