Why Your Image Is Still Too Large After Compressing
You compressed it, the number barely moved, and the upload form is still refusing it. There are six reasons this happens and they are all diagnosable in under a minute — the trick is that most of them are not about compression at all.
Find your symptom in the table below, or start with the first cause: it accounts for more cases than the other five combined.
Find your symptom
| What you are seeing | Most likely cause | Fix |
|---|---|---|
| Quality at 40%, file barely changed | It is a PNG staying a PNG | Change output format to WebP |
| 80% quality, still megabytes | Too many pixels | Set a longest-edge limit |
| Row says "Already optimised" | Source was compressed before | Resize or convert instead |
| Output is bigger than the input | Same — re-encoding preserves artifacts | Keep the original |
| Target size mode overshot | Target impossible at those dimensions | Resize first, then set the target |
| Output is a single frame | Animated GIF through a canvas | Use a video format |
| 1.9 MB rejected by a 2 MB limit | Base64 inflation, or a request-wide limit | Aim 25% under the stated limit |
Each of these is expanded below, in the order you should check them.
1. It is a PNG, and it stayed a PNG
Symptom: quality set to 40%, file dropped by 3%.
Quality settings apply to lossy compression, and PNG has none. Browsers ignore the quality argument entirely when encoding PNG, so dragging the slider does precisely nothing to a PNG that comes out as a PNG — the only levers left are fewer pixels or fewer colours.
This catches almost everyone with screenshots, because screen-capture tools default to PNG and screenshots are exactly the content people most often need to shrink for a bug report or a document.
Fix: change the output format. For a screenshot, WebP lossless keeps every pixel and is around 26% smaller than PNG by Google's measurement. For a photograph that was wrongly saved as PNG, WebP lossy or JPEG will cut it by an order of magnitude. The compressor detects this case — a PNG in the queue with PNG or "keep original" as the output — and offers a one-click switch to WebP rather than letting you discover the problem yourself.
2. The problem is dimensions, not quality
Symptom: 80% quality, still 1.8 MB.
Compression re-encodes the same pixel grid more economically. Resizing removes pixels. They are separate operations, and the second is far more powerful because the effect is quadratic: halving both dimensions quarters the pixel count before any compression happens.
A 4000 × 3000 photograph has twelve million pixels. Even efficiently encoded, that is a large file — and if it is destined for an 800-pixel-wide column, over 90% of those pixels cannot be displayed at all.
Fix: set a longest-edge limit. The compressor's default is "Don't resize", so this is opt-in and easy to miss. Choose 1920px for a full-width web image, 1280px for most content, 1080px for social, 800px for a thumbnail. Most files that resist compression fall into place immediately, because the encoder finally has a sensible number of pixels to work with. Working out which number you need takes a minute in developer tools.
3. It was already optimised
Symptom: the row says "Already optimised", or the output is larger than the input.
Compressing an already-compressed image usually makes it bigger. The first encoder's artifacts are themselves fine detail, and the second encoder dutifully spends bytes preserving them — so you pay for the damage rather than removing it.
Files that arrive in this state: anything downloaded from a website, images exported by a CMS, photographs that have been through a messaging app, and stock images. All have been compressed at least once.
The compressor has a safeguard on by default for precisely this. When the output would be larger than the input it keeps your original bytes and marks the file "Already optimised" instead of handing back a worse, bigger copy. That is the tool working, not failing.
Fix: accept that this file is close to its floor, and get the saving elsewhere — resize it, or convert the format, both of which change the arithmetic rather than re-treading it. If you genuinely need it smaller and it is already optimised at the right dimensions, the only remaining lever is visible quality loss.
4. The target is impossible at those dimensions
Symptom: target-size mode ran and the result is still over the limit, or it is under the limit and looks terrible.
Target-size mode steps quality down repeatedly — up to twelve attempts — until the file fits. But quality is the only lever it pulls, so if the pixel count is too high for the target, it either cannot get there or gets there by destroying the picture.
Asking a 4000-pixel-wide photograph to fit in 50 KB is asking for about 3 bytes per thousand pixels. There is no encoder that makes that look acceptable.
Fix: give it fewer pixels and the same target becomes easy. Set the longest edge first, then the KB ceiling. A useful pairing: under 100 KB wants 1080px or below; under 500 KB is comfortable at 1920px.
5. It is an animated GIF
Symptom: the tool warns you, and the output is a still image.
Canvas-based compression decodes and re-encodes a single frame, so an animation comes out as one picture. The compressor flags animated GIFs in the queue rather than silently flattening them, which is the honest behaviour but not a solution.
Animated GIFs are also enormous by nature: every frame is a full image with a palette of at most 256 colours, so a three-second clip can run to several megabytes.
Fix: convert the animation to a video format — an MP4 or a WebM of the same clip is routinely a tenth the size and looks better — or to animated WebP if it must stay an image. Neither is something a canvas-based browser tool can do, so this one needs different software; the honest recommendation is ffmpeg or a dedicated converter.
6. The upload limit is not measuring what you think
Symptom: the file is 1.9 MB, the limit says 2 MB, and it is rejected anyway.
Several things can be true at once here.
Base64 inflation. Some systems encode an attachment as Base64 before checking or storing it, which adds roughly a third to the size. A 1.9 MB file becomes about 2.5 MB and fails a 2 MB check that appeared to have room.
Megabytes counted differently. A "2 MB" limit may mean 2,000,000 bytes or 2,097,152. Your file manager and the server may disagree about whether your file is under it.
The limit is on the whole request. Other form fields, other files and multipart overhead all count. Two 1 MB images do not fit a 2 MB request limit.
A separate dimension limit. Some platforms cap pixel dimensions as well as bytes and report both failures with one unhelpful message.
Fix: aim about 25% under any stated limit and the class of problem disappears. If a form rejects a file without saying why, halve it and try again — that distinguishes a byte limit from a dimension limit in one step.
The order to work through it
Sixty seconds, in this order:
- What format is it, and what format is coming out? PNG in, PNG out, is the answer most of the time.
- What are the pixel dimensions? Over 2000px on the long edge for something displayed at 800px is your answer.
- Where did the file come from? Downloaded or already exported means already optimised, and the saving has to come from dimensions or format.
- Is it animated? Then it is a video problem, not an image one.
- What exactly is the limit measuring? Aim a quarter under it.
Notice that only one of those five is about compression settings. That is the real lesson of this article: a file that resists compression is nearly always telling you it needs a different operation — a resize, a format change, or a different destination — rather than a harder squeeze. The main how-to sets out the order that avoids the problem in the first place.
Image Compressor
Compress JPG, PNG, WebP by quality or target file size. It runs in your browser, so the files never leave your machine, and there is nothing to install or sign up for.
Try the Image CompressorFrequently asked questions
Why does lowering the quality do nothing to my PNG?
Because quality only applies to lossy encoding and PNG is lossless — the browser ignores the quality value entirely for PNG output. Convert to WebP instead: lossless WebP keeps every pixel and is about 26% smaller, and lossy WebP will go much further if the image is a photograph.
Why did my compressed image come out bigger than the original?
The original was already well compressed, so re-encoding it means spending bytes preserving the first encoder's artifacts. With the default safeguard on, the tool keeps your original and marks the row "Already optimised" rather than giving you the larger version.
How do I get a photo under 100 KB?
Resize before compressing. Cap the longest edge at around 1080 pixels, then set a 100 KB target. Attempting it at full camera resolution forces the encoder to destroy the picture, because quality is the only lever it has left.
The upload form says 5 MB and rejects my 4 MB file. Why?
Most often Base64 encoding, which inflates an attachment by about a third before the server measures it, so 4 MB is checked as roughly 5.3 MB. It can also be a limit on the whole request rather than the file, or a separate cap on pixel dimensions. Aim 25% under any stated limit.
Is there a point where an image cannot get smaller?
For given dimensions and a given format, yes — you reach a floor where further reduction is visible damage rather than optimisation. The way past it is always to change one of the other variables: fewer pixels, a more efficient format, or a tighter crop.
The short version
A file that will not shrink is usually not a compression problem. Check the format first — a PNG staying a PNG cannot respond to a quality setting — then the pixel dimensions, then whether the file was already optimised before you touched it. Animated GIFs need video tools, and upload limits frequently measure something larger than the file on your disk, so aim a quarter under whatever number you were given.
Tools that go with this
Each one is here for a specific reason rather than because it is in the same category.
Image Format Converter
Convert between JPG, PNG, WebP, AVIF, and HEIC
The fix for the most common cause — a PNG that will only shrink once it stops being a PNG.
Image Batch Resizer
Resize multiple images at once online for free
The fix for the second most common — too many pixels, which no quality setting addresses.
Image Cropper
Crop and resize images with custom aspect ratios
When the picture contains a lot you were never going to show, cropping beats compressing.
Image Metadata Remover
View and remove EXIF, GPS, and hidden data from images
Occasionally the culprit on small files, where EXIF and an embedded thumbnail are a real share of the bytes.
Related articles
How to Compress an Image
Compress JPG, PNG or WebP files in your browser: which preset to use, when to set a target size in KB, and the order of operations that saves the most.
What Image Size Should You Use on a Website?
Pixel dimensions, file size and DPI are three different things, and only two of them matter on the web. The sizes to use, and why 300 DPI is meaningless here.
How Image Compression Works
Why a photo can lose 80% of its bytes and look identical: what lossy compression discards, how quality settings behave, and why PNG ignores them entirely.
How to Compress Images Without Losing Quality
Truly lossless compression, and visually lossless compression, are different things. Which to use per image type, and where the quality thresholds actually sit.
What Is the Difference Between Lossy and Lossless Compression?
Lossless keeps every pixel; lossy discards what you cannot see. What each one actually promises, why lossless is not "better quality", and which to pick.
Image Optimization Best Practices
The nine things that actually make images fast, in order of impact — right dimensions, right format, lazy loading everything except the one image you must not.
JPG vs PNG vs WebP: Which Should You Use?
A decision table plus the published figures: WebP is 25–34% smaller than JPEG and 26% smaller than PNG. When each format still wins, and where AVIF fits.
What Is a CR3 File?
CR3 is Canon's raw photo format, introduced in 2018. Here is what is inside one of these files, why most software cannot open them, and what to do with them.
Sources
- WebP: A new image format for the Web
Google · Official documentation · accessed 7 September 2026
Cited for: WebP lossless at 26% smaller than PNG, which is the fix for the most common cause here
- Image file type and format guide
MDN Web Docs · Technical documentation · accessed 7 September 2026
Cited for: PNG being lossless (so unaffected by a quality setting) and GIF storing every frame against a palette of at most 256 colours
- Portable Network Graphics (PNG) Specification (Third Edition)
W3C · Standards organisation · published 24 June 2025 · accessed 7 September 2026
Cited for: PNG compression preserving all information — why there is no quality dial to turn on a PNG in the first place
About the author
Builder and maintainer, ToolForge
Started ToolForge in May 2026 and has built and maintained it since, writing every tool on the site and the documentation that goes with each one.
Part of
Image Compression & FormatsWhy lossy compression works, which format to use, what image size a web page actually needs, and why a file is still too big after compressing it.
Browse all image tools