Optimize every image on a web page at once
Paste the URL. Iminify opens the page in a real browser, collects every image it loads, runs them all through the same compressor as the upload tool, and gives you one zip to put back. No plugin, nothing installed on your site. Free with an account.
Page scans come with a free account: 10 a day, up to 50 images each. Already have one? Sign in.
Before and after
See it on real images before you upload yours
Every image a scan collects goes through this exact pipeline. These 10 samples were run at every level and every format, with nothing 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.
Original
Optimized
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.
Every result for this image
| Same format | WebP | AVIF | |
|---|---|---|---|
| Lossless | |||
| Smart | |||
| Ultra |
What a scan does
Exactly what happens after you press Scan
A scan is not a crawler and it is not a plugin. It opens one page in a browser the way you would, waits for it to load, scrolls to the bottom, and collects every image along the way. Here is the whole sequence.
-
1
Open the page in a real browser
Iminify loads the URL in headless Chrome, scripts and all, then scrolls to the end so lazy-loaded pictures get requested too. Nothing is written to your server.
-
2
Collect every image the page shows or loads
Every img and each size in its srcset, picture sources, video posters, CSS backgrounds, and anything a script added after the page loaded. If the browser fetched it, the scan saw it. Duplicates are removed.
-
3
Download each one the way a browser would
Each image is fetched with your page as the referrer, so hotlink protection lets it through, and identified by its bytes rather than its file extension. Images on other domains are kept too: a CDN, a storage bucket, an embed, all of it.
-
4
Compress each one with your settings
Level, format, resize and EXIF apply to every image the scan found. Each is queued on its own, so one huge file doesn't hold up the rest.
-
5
Download the set as one zip
The results table shows every image with its original size, new size and saving, and each row has the menu an upload gets: compare it with the original, compress it again with other settings, rename it, share it. Tick the ones you want and download a zip with the original file names, ready to upload back.
When to scan
Scan when the images are already live
The upload tool is for images you have on disk. The scanner is for the ones you only have on a website.
You inherited a site
A client or a previous developer built it, the media folder is a mess, and PageSpeed keeps flagging "Properly size images". Paste the slowest page and see what it weighs.
Your CMS uploads full-size originals
WordPress, Shopify and most page builders store whatever the editor dropped in, 5 MB phone photos included. A scan pulls the versions the page actually serves.
You want a before-and-after you can show someone
Total original size, total optimised size and the saving, per page, in a table. Useful for a handover, a proposal or a performance ticket.
You need the images in a new format
Turn on Change Format and every image on the page comes back as WebP or AVIF, or whichever is smaller with Auto, in one download.
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 20 images a day and a history that lives in this browser. A free account raises that to 50, 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
One form and one email to verify, and the limits move. |
Pro
$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 50 images are not enough. |
|---|---|---|---|
| Images a day | 20 | 50 | Unlimited |
| Page scans | Not included | 10 a day, up to 50 images each | Unlimited, up to 150 images each |
| Size per image | Up to 16 MB | Up to 32 MB | Up to 90 MB |
| Queue | The shared queue | The shared queue | A lane of its own, ahead of everyone waiting |
| Uploads a minute | 20 | 30 | 60 |
| Your history | In this browser, until the cookies go | Kept with your account for as long as you have one | Kept with your account for as long as you have one |
| Levels and formats | All of them | All of them | All of them |
| Smart level, quality measured per image | Included | Included | Included |
| Auto format, the smallest file wins | 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 |
| API, MCP server and libraries | Not included | Soon, within your daily count | Soon, without a daily cap |
| Watermarks and ads | None, ever | None, ever | None, ever |
| 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, 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.
Settings
One set of settings for the whole page
Everything you can choose for a single upload applies to every image a scan finds. The scan itself has nothing to set up.
- No hunting for the images
- Themes, plugins and page builders scatter pictures across folders and hosts, and you don't have to track any of that down. The page is loaded the way a visitor loads it, scripts running, and whatever it pulls in is what gets compressed.
- One budget per page
- A scan compresses up to 50 images from one page and gives itself about ten minutes. Both cover almost any page. A huge gallery is better scanned section by section.
Limits
What a scan will not find
- Images on other pages. A scan reads the one URL you give it and does not follow links. Scan each page you care about.
- Images behind a login or a cookie wall. The scan sees the page a first-time visitor sees, so anything that needs a session isn't there.
- SVG and AVIF files, and anything above 32 MB or 64 megapixels. Those are skipped and the rest of the scan carries on.
- Tracking pixels, and the same file under two addresses. A tracker isn't a picture, and a duplicate would only hand you a second copy.
Questions
Questions people ask before they scan
Paste the slowest page you own
Scroll up, drop in the URL and press Scan. The results table tells you within a minute how much that page was carrying.