Compress images online, free, and keep the detail

Drop JPG, PNG, WebP, GIF, TIFF or HEIC files up to 16 MB each, or 32 MB with a free account. Iminify measures every image and picks the smallest file that still looks like the one you uploaded. No account, no watermark.

  • Up to 16 MB per image
  • JPG, PNG, WebP, GIF, HEIC or TIFF in
  • WebP, AVIF, PNG or JPG out
  • Resize and convert in the same pass
  • Batch upload, one zip download
  • Before and after on every result

Balance between the image quality and compression How to choose?

Output format

Auto tries every format your image can be saved as and gives you the smallest one

Resize

Change the width, height or scale of every image you upload

Original Dimensions Percentage
px
px

Set one side to keep the proportions, or both for an exact size.

Percentage
%
Keep EXIF Keeps details such as the camera, the date and the location in each file. Leave it off to remove them and save space.
Write alt text with AI Describes each image for screen readers and search engines, and suggests a file name
Alt text language
No language matches
English
Spanish
French
German
Italian
Portuguese
Dutch
Polish
Swedish
Turkish
Russian
Ukrainian
Arabic
Persian
Hebrew
Hindi
Indonesian
Vietnamese
Thai
Japanese
Korean
Simplified Chinese
Traditional Chinese
Rename files Downloads take the suggested name instead of the one you uploaded

Up to 16 MB per image PNG, JPG, WEBP, GIF, HEIC, TIFF

Guests get 10 images a day, 10 left today. A free account gets 40 a day.

Auto-start
On, each image starts compressing as soon as it uploads. Off, images wait in the box so you can check the settings, then start together.
Delete this image?
The image and its optimized copy will be removed from storage. This cannot be undone.

Rename this image
Choose the name the optimized image downloads with. Its format stays the same.

Uploaded as

Rename the selected images
Each image gets this name and a number, counted in the order they were uploaded. Their formats stay the same.

Share this image
AI alt text
Alt text

Paste it into the alt attribute of the image on your page.

Before and after

See it on real images before you upload yours

These 10 images went through the exact pipeline your upload goes through, with every level and every format, and nothing was tuned by hand. Drag the handle, put the two side by side, or switch to Difference and see every pixel that moved, with the PSNR. Then change the level and the format and read the numbers off the results.

Best result so far: 97.2% smaller, Ultra level, AVIF.

All 10 samples at Smart, same format: 3.89 MB in, 1.45 MB out, 62.7% smaller overall.

Fjord, from a camera

Rock, water and sky at 1800 by 1200, saved the way a camera saves it: quality 92, full chroma. Fine texture everywhere, which is where lossy encoders spend their bytes.

Level
Output format
Compare
Original Optimized
Original · ·
Optimized
Drag to compare
Original

Original

Optimized

Optimized

Comparing every pixel
The difference couldn't be computed in this browser.
Same Changed

Brighter means a bigger change. Over 40 dB is hard to tell apart by eye; under 30 dB shows at a glance.

Look the same? Good, that's the job. And no, we didn't put the same picture on both sides: the only difference you're supposed to see is the file size.

The map and its numbers are computed in your browser from the two files on screen, the way the compare view on a result of your own does it. Smart aims at 40 dB and Ultra at 34 when it writes a JPG, WebP or AVIF, then holds the result to a perceptual score as well (70 for Smart and 50 for Ultra on the SSIMULACRA 2 scale, which the map can't show), and a result under its PSNR target stopped at the level's quality ceiling rather than grow the file; a PNG is quantised to fewer colours instead, with no target. Lossless comes out identical except where a file has to be re-encoded, a JPEG converted to another format or a lossy WebP, and there it gets the level's top quality.

Original
Optimized

Every result for this image

Same format WebP AVIF
Lossless
Smart
Ultra

What Iminify does

One upload, four jobs, one download

Most image tools do one thing and make you chain three sites together for the rest. Iminify compresses, converts, resizes and strips or keeps metadata in a single pass, so your image is re-encoded once and only once. Two encodes in a row cost you quality twice. One doesn't.

Compress, with the quality chosen per image

A fixed quality setting treats a foggy sky and a brick wall the same, and they aren't. Smart encodes each image at several qualities, measures how far each one drifted from your upload, and keeps the smallest that still clears a 40 dB PSNR target. It then scores that file on the SSIMULACRA 2 scale, which is built to match what people see, and sends the search back up when it lands under 70. Ultra does the same with a 34 dB target and a bar of 50.

Convert to WebP, AVIF, PNG or JPG

Pick a format, or pick Auto and let the encoders compete. Up to about eight megapixels, Auto writes every format your image can be saved in without losing transparency or animation and hands you whichever came out smallest; above that it goes straight to WebP, the format that wins most often. You never pay for a conversion that made the file bigger.

Resize by pixels or by percent

Set a width, a height, or both, or scale the whole image down to a percentage. Resizing uses a Lanczos filter and writes a lossless intermediate, so the format encoder is still the only step that loses anything.

Or compress a whole page at once

Paste a URL and the page scanner finds every image the page loads, runs each one through this same compressor with your settings, and gives you one zip. Built for the moment you inherit a site full of 4 MB hero images. It comes with a free account.

Scan a page instead

Metadata is stripped by default, camera model and GPS location included. Flip Keep EXIF on and it rides along, even into AVIF, where most tools quietly drop it. Stripping never leaves a phone photo on its side: the orientation tag is applied to the pixels before it goes, and a Display P3 or CMYK colour profile is converted to sRGB instead of just dropped, so the colours stay put.

Compression levels

What each level actually promises

Other compressors give you a slider from 1 to 100 and leave you guessing, though quality 80 in one encoder isn't quality 80 in another. Iminify's levels are defined by measurements, not a number: how far the compressed pixels are allowed to drift from yours, in decibels of peak signal-to-noise ratio, and how different the result is allowed to look on the SSIMULACRA 2 scale, a score built to match what people see. Higher is closer to the original on both. Above roughly 40 dB the difference isn't visible at normal size, and above 70 on the second scale it's hard to fault without the original next to it.

Level What it promises What happens Pick it when
Lossless
Not one pixel changes in a JPEG, PNG or GIF The file is repacked, never re-encoded. JPEGs get an optimised Huffman table and progressive scan, PNGs a tighter deflate pass, GIFs a lossless gifsicle run. A lossy WebP has no repack step, so it is re-encoded at the highest quality the level allows. A sideways phone JPEG is rotated losslessly on the way through and keeps its colour profile. The one exception to the promise is a PNG or WebP tagged with a wide-gamut profile such as Display P3: its colours are converted to sRGB, so the values change but the picture doesn't. Logos, line art, anything you'll edit again, or when the file is evidence.
Smart
No visible change, targets 40 dB PSNR and a perceptual score of 70 A quality search runs per image and stops at the lowest quality that still clears the PSNR target. That answer is then scored on the SSIMULACRA 2 scale, because an average over every pixel lets a mostly flat picture through at a quality its detail doesn't deserve, and when it falls under 70 the search moves back up until it doesn't. Photos and graphics end up at different qualities because they need different ones; an image that cannot reach the targets inside the quality ceiling is encoded at the ceiling. Almost everything on a website. This is the default for a reason.
Ultra
Smallest file, targets 34 dB PSNR and a perceptual score of 50 The same two-stage search with lower targets. Fine texture softens a little; edges and text stay sharp. Thumbnails, backgrounds, email images, anything shown small or blurred anyway.
None
No compression at all Only the resize, conversion or metadata setting you chose is applied. Without a resize or a conversion every pixel comes back as it was: the file only loses its metadata, and with Keep EXIF on it comes back byte for byte. You only wanted to resize or convert, and quality is someone else's decision.
One honest caveat. A JPEG or WebP you upload has already lost something. A "lossless" pass can only repack a JPEG, and a lossy WebP has no repack step at all, so Lossless re-encodes it at the highest quality the level allows; a Smart pass measures drift against the file you gave us, not the photo it came from. That is why a heavily compressed web JPEG barely shrinks: there's little left to remove. A photo straight off a phone or camera shrinks a lot. And one about size: the quality search runs on images up to 36 megapixels and the perceptual check on images up to 8. Past those the level's quality ceiling decides, so a very large photo is compressed at a fixed setting instead of a measured one.

Formats

Which format should you pick?

You can upload PNG, JPG, JPEG, WEBP, GIF, HEIC, HEIF, TIFF, TIF. You can get back WebP, AVIF, PNG or JPG. Here's when each one is the right answer, and when to let Auto decide.

Format Best for Transparency Animation Worth knowing
WebP The default for the web. Photos, graphics, screenshots. Yes Yes Supported by every current browser. Iminify encodes it with cwebp at its slowest, most thorough setting, and losslessly for PNG sources when you ask for Lossless.
AVIF Photos and graphics for current browsers. The smallest file on nine of the ten samples above. Yes No The newest format and the slowest to encode. Smart and Ultra search each image for the lowest AVIF quality that still clears the level's PSNR floor, the same floor every other format is held to, and at that floor AVIF beat WebP and JPG on every photograph and graphic above. Only the desktop screenshot went to PNG. Lossless is where it struggles: AVIF's lossless mode came out bigger than WebP's on nine of ten. Supported in Chrome, Firefox, Edge and Safari 16.4 or newer.
JPG Photos that have to open anywhere, including old software. No No Encoded with jpegli, the JPEG encoder from the JPEG XL project: adaptive quantisation and a psychovisual model inside a standard JPEG that opens anywhere. On thirteen test photographs it came in 4.7% under mozjpeg at Smart with better perceptual scores, in a third of the time. Lossless repacks use mozjpeg's jpegtran. Progressive by default.
PNG Logos, icons, UI, anything with hard edges or transparency that must open everywhere. Yes No Smart and Ultra quantise to a palette of at most 256 colours with pngquant, which is where the big PNG savings come from. Small and mid-sized PNGs then get a zopfli deflate pass at every level, which packed the lossless test files 3 to 16 points tighter than optipng; very large ones get optipng instead, because zopfli is priced per pixel. Lossless keeps every colour.
GIF Short animations where WebP isn't an option. Yes Yes Every frame is kept. Convert an animated GIF to WebP and the animation survives too; convert it to PNG, JPG or AVIF and only the first frame does.
HEIC Uploading iPhone photos. Output as JPG, WebP or AVIF. No No Input only. Browsers don't display HEIC, so the useful move is HEIC in, WebP or JPG out.
Not sure? Choose Auto. For images up to about eight megapixels it encodes every candidate format and keeps the smallest; bigger ones go straight to WebP. In the showcase above, AVIF takes nine of the ten samples at Smart and the desktop screenshot goes to PNG, while Lossless hands nine of ten to WebP. The right answer depends on the picture and the level, which is exactly why a fixed choice leaves bytes on the table.

How it works

Three steps, no sign-up

  1. 1

    Pick a level and, if you like, a format or size

    Smart is selected for you. Use Format to convert, Size to scale and Metadata to keep EXIF.

  2. 2

    Drop your images

    A whole batch at once, up to 16 MB each as a guest and 32 MB with a free account. Each one is queued the moment it lands and starts compressing on our servers.

  3. 3

    Download one file or all of them

    Every result shows the original size, the new size and the saving. Compare any of them with its original, rename what needs a new name, then tick the ones you want and download a single zip.

After the result

Check it, tune it, name it, pass it on

A result is a row with Compare and Download buttons and a menu for the rest. Most tools stop at the download button. Everything on the row works on the original we already have, so nothing is uploaded twice, and none of it needs an account.

Compare it with the original, three ways

Compare puts the two on the drag-to-compare stage from the showcase above, side by side, or on a difference map: every pixel coloured by how far it moved, with the share that changed noticeably and the PSNR in decibels. That is the measurement the levels promise, computed in your browser from the two files, so a Smart result can be checked against its 40 dB target before you trust it.

Compress it again with other settings

Not small enough, or a touch too soft? Change the level, the format or the size on the page and pick Recompress. The new result is encoded from the original you uploaded, never from the optimized copy, so a second pass does not stack a second generation of loss on the first. Both results stay in the list until you delete one, and a re-run counts as one of your daily images.

Rename it before you download

Give a result the name it will have on your site, or select a batch and number them in one go. The single download, the zip and the preview all use the new name, and the extension follows the format you chose.

Share it on a page of its own

Share gives a result a public page: the optimized copy, the original, the three compare views and both downloads, plus a button that lets whoever opens it run the same original through their own settings. The link is 24 random characters nobody can guess, nothing lists it, search engines are asked to stay out, and Stop sharing switches it off. Nothing is public until you press Share and agree.

For AI assistants

Or ask Claude, ChatGPT or Cursor to do it

Iminify has an MCP server, so an AI app can compress, convert and resize images and optimize whole pages on your account. Tell it what you want; it brings back the links.

  • "Make every image on my homepage lighter"
  • "Convert these PNGs to AVIF"
  • "Resize to 1200 wide and strip EXIF"

Guest, account or Pro

Compress without an account, sign up for more, or go Pro and forget the caps

No trial and no card to start. A guest gets 10 images a day and a history that lives in this browser. A free account raises that to 40, opens the page scanner and keeps your history with your account for as long as you have one. Pro takes the daily caps away, raises the size limit to 90 MB and puts your uploads ahead of the queue, from $3 a month.

What you get
Guest

Drop a file, get it back. Nothing to fill in.

Free account
Free forever

One form and one email to verify, and the limits move.

Pro
No daily caps

$3 a month

billed $36 a year, 40% less than monthly

$5 a month

billed month to month, cancelled any time

For the days when 40 images are not enough.

Images a day 10 40 Unlimited
AI alt texts a day 10 40 Unlimited
Page scans a day Not included 3 Unlimited
Images per scan Not included 20 150
File size 16 MB 32 MB 90 MB
Queue Standard Fast Fastest
Uploads a minute 10 20 60
History In this browser In your account In your account
All levels and formats Included Included Included
Smart quality per image Included Included Included
Auto format Included Included Included
Format conversions Unlimited Unlimited Unlimited
Resize, convert, keep EXIF Included Included Included
Batch upload, one zip Included Included Included
Compare, recompress, rename and share Included Included Included
Share page reports, CSV and PDF Not included Not included Included
API Not included Included Included
AI agents (MCP server) Not included Included Included
Webhooks Not included Not included Included
Watermarks and ads None None None
Start without an account Create a free account Go Pro

The daily counts reset 24 hours after your first image. Signing up takes a name, an email and a password, or one click with Google, GitHub, Microsoft or Apple, and the account stays free. Pro is paid by card, PayPal, Apple Pay or Google Pay, renews on its own and can be cancelled any time from your plan page. Payment methods and billing questions are on the pricing page.

Your images

Straight answers about where your files go

Uploads travel over an encrypted connection and are compressed on servers we run ourselves, never by a third-party API. The encoders are jpegli, mozjpeg's jpegtran, pngquant, zopfli, optipng, cwebp, gif2webp, avifenc and gifsicle, running on our own machines. AI alt text is different: unless you switch it off above the upload box, a small copy of each image goes to Anthropic, whose Claude model describes it. Anthropic doesn't train on it and deletes it within 30 days, unless its safety systems flag it or the law requires it to be kept longer.

We keep your originals and your optimised copies rather than deleting them on a timer, so a result is still there when you come back for it.

A free account isn't required to compress. Sign up and your history stays with your account instead of this browser, for as long as you have one, so every result is still there on another device or after your cookies are gone, and the daily allowance goes from 10 images to 40.

Nothing you upload is public. A result gets a public page only when you press Share and agree, at an address of 24 random characters that nothing lists and that search engines are asked not to index, and Stop sharing takes it down again.

Questions

Questions people ask before they upload

From the blog

What we've measured so far

We run the encoders on real photos and screenshots and publish the numbers: when WebP beats AVIF, what quality 80 means in each encoder, and how many kilobytes an image on a web page should weigh.

All posts
Two cards under the title "Do AI images hurt SEO? The file can.": a Gemini 2K picture as delivered, 3.95 MB, largest paint 20.3 s; the same picture resized to 720 wide, 104 KB, 1.4 s, in Lighthouse's mobile test.

Do AI images hurt SEO? What Google's pages say, and what a 2K Gemini picture did to a page

We put Gemini pictures on a plain article page, one size at a time, and ran Lighthouse's mobile test on each. Straight from the generator, the 1K file (1.06 MB) took 6.2 seconds to become the page's largest paint (LCP), the 2K file (3.95 MB) took 20.3 seconds and the 4K file (10.51 MB) took 52.4 seconds. Google's target for that metric is 2.5 seconds. Do AI images hurt SEO? In the Google pages we read, nothing marks an image down for being AI-made. The file is another matter: the same 2K picture, resized and compressed to 104 KB, took 1.4 seconds. Iminify's compressor also drops the C2PA manifest that marks a Gemini file as AI-made, and Google's Merchant Center asks sellers to keep an IPTC tag that says the same.

8 min read
Two white cards on a blue gradient: WebP at quality 75, 35.1 KB, score 68.0, and AVIF at quality 47, 25.5 KB, score 68.8, beside the headline "A quality of 75 ships as WebP 75, or AVIF 47 if enabled".

What image quality does Next.js ship? WebP 75, AVIF 47 if you list it, and by default a 90 becomes 75

We built a Next.js 16.4.3 app with four images on one page, two of them declared with quality={90} and quality={100}. All 36 image addresses in the page's HTML said q=75. We also asked the image endpoint for q=90 directly, and it answered HTTP 400: "q" parameter (quality) of 90 is not allowed. That is Next 16's default: the list of allowed qualities is [75], and the component moves anything else to the nearest entry. This post follows the 75 to the encoder, in WebP and in AVIF if you switch it on, across 867 requests to a self-hosted /_next/image on nine source images. The default WebP puts one of our five photographs at 1080 px above 70, the "high quality" mark on SSIMULACRA 2, a perceptual score. AVIF at the same setting was 36.5 percent smaller across our 27 image and width combinations, and more than 3 points below WebP on score in 8 of them.

7 min read
Two enlarged crops of the same red text saved as JPEG at quality 80, one at 4:2:0 and one at 4:4:4, beside the title. The 4:2:0 crop has a duller, browner red.

Why is red text blurry in JPG and WebP? Chroma subsampling, measured

On a test page we made full of red text, no quality from 30 to 100 lifted a plain 4:2:0 encode (no -sharp_yuv) past 58.2 on the SSIMULACRA 2 scale, which runs to 100: JPEG (cjpegli) reached 57.9, WebP 55.2, AVIF (avifenc) 58.2. The same JPEG written at 4:4:4 scored 81.6 at quality 90. That gap is chroma subsampling: 4:2:0 keeps colour at a quarter of the detail that brightness gets, and 4:4:4 keeps all of it. It's why red text looks blurry in a JPG or a WebP. The fix is 4:4:4 for JPEG and AVIF, -sharp_yuv for lossy WebP (which narrows the gap), or lossless WebP on a flat page; What we'd use has the numbers and commands.

6 min read

Your first image takes about ten seconds

Scroll up, drop a file, watch the size fall. If it doesn't shrink, you'll get your original back and nothing lost.