# Iminify > Free online image compressor, converter and resizer, plus a page scanner that finds and compresses every image on a web page. No account, no watermark, up to 16 MB per image; the page scanner needs a free account. Iminify runs on its own servers with jpegli, mozjpeg's jpegtran, pngquant, zopfli, cwebp, avifenc and gifsicle. Two compression levels search for the encoder quality per image against a PSNR target (Smart: 40 dB, Ultra: 34 dB) and then a perceptual target on the SSIMULACRA 2 scale (Smart: 70, Ultra: 50), so the same level means the same visual quality across photographs. These are targets, not guarantees: the search runs on images up to 36 megapixels and the perceptual check on images up to 8, and a larger image, or one that cannot reach a target, is encoded at the level's quality ceiling (Smart: 90, Ultra: 75, and never above 75 for an upload that is already a lossy WebP). The search is for JPG, WebP and AVIF output: a PNG is quantised to a smaller palette and a GIF compressed at a fixed setting for the level, neither against a target. Lossless repacks a JPEG, PNG or GIF without changing a pixel, except that a PNG tagged with a wide-gamut colour profile is converted to sRGB; a lossy WebP has no repack step, so Lossless re-encodes it at quality 75, and a HEIC or TIFF always comes back in another format because Iminify writes neither. None applies only the resize, conversion or metadata setting chosen, and an upload with none of those comes back byte for byte. ## Pages - [Image optimization](https://www.iminify.com): upload JPG, PNG, WebP, GIF, TIFF or HEIC; choose Lossless, Smart or Ultra; convert to WebP, AVIF, PNG or JPG, or let Auto pick the smallest; resize by pixels or percentage; keep or strip EXIF; compare a result with its original as a slider, side by side, or as a pixel difference map with its PSNR; compress a result again with different settings from its own copy of the original; rename results, one at a time or numbered in a batch, before downloading them singly or as a zip; share a result on a public page at an unguessable link, where anyone can see the optimized copy, compare it with the original where a browser can draw it, download either, or compress the original again with their own settings, until the link is switched off; AI alt text, on by default, writes a one-sentence description and suggests a file name for each image in one of 23 languages (Anthropic's Claude, from a small copy of the image), to copy or apply to the download. - [Page optimization](https://www.iminify.com/scan): enter a page URL; the scanner opens the page in a browser on our servers, collects every image the page loads, compresses them all and hands back one zip that keeps each image in the folders of its address, with a manifest.csv mapping each image address it fetched to its file. Each scan also reports how the page shows its images: oversized files (more than twice the size they are shown at), images without width and height, lazy loading in the first screen or missing below it, missing alt text (with an AI alt text suggested for each image shown without one, on by default), and the largest contentful paint, for every image address on the page. On Pro the report can be shared at a public link (read only, with thumbnails of the compressed images, kept out of search and paused while the account is not on Pro) and downloaded as a CSV of every image or a PDF. - [Pricing](https://www.iminify.com/pricing): the guest, free and Pro plans side by side, how Pro is paid for, and the billing questions. - [AI agents](https://www.iminify.com/ai-agents): the MCP server that lets Claude, ChatGPT, Cursor and other AI apps compress, convert and resize images and optimize pages on an Iminify account, which apps connect, and what it costs. - [Blog](https://www.iminify.com/blog): notes on image compression, formats and page speed from Mozex, who runs the tool. Append .md to a post address, or ask for text/markdown, for the post as plain markdown. - [Terms of service](https://www.iminify.com/terms-of-service) - [Privacy policy](https://www.iminify.com/privacy-policy) ## Tools Each page below opens the image tool already set up for one job. Any of them, and the home page, also takes `?format=` (webp, avif, png, jpg or auto) and `?level=` (lossless, smart, ultra or none) to open on those settings, for example https://www.iminify.com?format=avif&level=ultra. - [JPG to AVIF](https://www.iminify.com/jpg-to-avif): The smallest file a photo can get in a current browser. - [PNG to AVIF](https://www.iminify.com/png-to-avif): Big savings on screenshots and graphics, with transparency kept. - [HEIC to JPG](https://www.iminify.com/heic-to-jpg): iPhone photos as JPGs that open anywhere, the right way up. - [PNG to WebP](https://www.iminify.com/png-to-webp): Lossless or lossy, transparency kept, every browser supports it. - [JPG to WebP](https://www.iminify.com/jpg-to-webp): Smaller photos for the web, with the exceptions shown honestly. - [TIFF to JPG](https://www.iminify.com/tiff-to-jpg): Scans and exports as JPGs a fraction of the size. - [WebP to JPG](https://www.iminify.com/webp-to-jpg): For the image you saved from the web that nothing will open. - [GIF to WebP](https://www.iminify.com/gif-to-webp): Animated GIFs as animated WebP: every frame, far fewer bytes. - [Compress PNG](https://www.iminify.com/compress-png): Smaller PNGs that stay PNGs, transparency and all. - [Compress JPEG](https://www.iminify.com/compress-jpeg): Lossless repacking, or a quality measured for each photo. - [Compress WebP](https://www.iminify.com/compress-webp): Re-encode oversized WebP files, with the caveats stated. - [TinyPNG alternative](https://www.iminify.com/tinypng-alternative): Limits, formats and file retention, side by side. - [iLoveIMG alternative](https://www.iminify.com/iloveimg-alternative): A focused compressor next to a broad image toolkit. ## API Everything the website does is also a JSON API at https://www.iminify.com/api/v1, for any account with a verified email address, on the same daily and per-minute allowances as the website: compress, convert and resize an image sent as a file or fetched from a URL (with an AI alt text and a suggested file name, on by default), poll it, download it or a zip of several, rename, share, recompress, retry, cancel or delete it, ask for its alt text later or in another language, scan a page for every image it loads, share its page report or download it as CSV or PDF (Pro), and read the plan and usage. A Pro account can also have each image and scan that finishes or fails sent to its own server as a signed webhook, set up in Settings > Webhooks (https://www.iminify.com/docs/webhooks). The Iminify GitHub Action (https://github.com/mozex/iminify-action, open source) compresses the PNG, JPG, WebP and GIF files a pull request adds or changes through the API, with a token kept as a repository secret, commits the smaller files to the pull request's branch and comments with the savings (https://www.iminify.com/docs/github-action). Requests carry a personal access token from Settings > API Tokens as a Bearer token. The OpenAPI 3.1 description, with code samples in cURL, Python, PHP and JavaScript, is at https://www.iminify.com/api/v1/openapi.json. - [Iminify API](https://www.iminify.com/docs): Compress, convert and resize images over HTTP with the Iminify API. Upload a file or send a URL, poll the result, download it. Samples in cURL, Python, PHP and JavaScript. - [API authentication](https://www.iminify.com/docs/authentication): How to create an Iminify API key, send it as a Bearer token, keep it safe and replace it, and which accounts can use the API. - [API compression settings](https://www.iminify.com/docs/compression-settings): The levels, formats, resize options and metadata switch the Iminify API takes, what each one does to an image, and requests for common jobs. - [API rate limits and quotas](https://www.iminify.com/docs/limits): Requests a minute, compressions a minute, images and page scans a day, file size and batch size for each Iminify plan, and how to handle a 429. - [API errors](https://www.iminify.com/docs/errors): Every error the Iminify API answers with: the JSON shape, the HTTP status, each error code and what to do about it. - [API webhooks](https://www.iminify.com/docs/webhooks): Get a signed request on your own server when an Iminify image or page scan finishes: the events, the body, checking the signature, and retries. - [Iminify MCP server](https://www.iminify.com/docs/mcp): Connect Claude, ChatGPT, Cursor or VS Code to Iminify's MCP server and let an AI agent compress, convert and resize images and scan pages for you. - [Iminify GitHub Action](https://www.iminify.com/docs/github-action): Compress the images a pull request adds with the Iminify GitHub Action: it commits the smaller files to the branch and comments with what each one saved. - [Images API](https://www.iminify.com/docs/images): Compress an image from a file or a URL, poll it, download it, rename it, share it, run it again or delete it. Every images endpoint with samples. - [Page scans API](https://www.iminify.com/docs/page-scans): Scan a web page for every image it loads, compress them all, and download them as one zip. Every page scans endpoint with samples. - [Account API](https://www.iminify.com/docs/account): Read your Iminify plan, its limits and how much of the day's images and page scans are used, from the account endpoint. ## MCP server AI agents (Claude, ChatGPT, Cursor, VS Code and any client that speaks MCP over streamable HTTP) can use Iminify through its MCP server at https://www.iminify.com/mcp, signing in with OAuth or sending an API key as a Bearer token. Its tools compress, convert and resize images from URLs, one-time upload links or small inline files, each with an AI alt text and a suggested file name, write the alt text of an image that has none, scan a page for every image it loads, share the page report of a scan or hand it over as CSV or PDF (Pro), answer each result with signed download links, and rename, share or delete results, on the same allowances as the website and the API. What it does: https://www.iminify.com/ai-agents. Setup for each client: https://www.iminify.com/docs/mcp. In Claude (Chat and Cowork, on web, desktop and mobile), Iminify is listed in the Connectors Directory, and one connection covers both: https://claude.ai/directory/iminify. The server alone handles local files wherever the agent runs commands next to them (Claude Code, Cursor, Claude in Cowork with a folder connected). The optional Iminify plugin (https://github.com/mozex/iminify-plugin, open source) packs the server with three skills: optimize-images finds the images in a project or a folder, compresses them through upload links and writes the smaller files back in place; image-seo writes alt text for the images a project's pages show without any and gives files descriptive names, with the user's approval; fix-core-web-vitals scans a published page, reads its image report and fixes the images behind its largest contentful paint and layout shift in the project (priority, lazy loading, width and height, files larger than their space). It is in Anthropic's plugin directory: install it in Claude Code with /plugin install iminify@anthropic-plugin-directory (or by hand from GitHub with /plugin marketplace add mozex/iminify-plugin, then /plugin install iminify@iminify); in Claude, it is in the plugin directory under Customize, Plugins, where one install covers Chat and Cowork and includes the connector; with both installed, Claude shows one set of tools, since they share one address. ## Blog posts - [Why is red text blurry in JPG and WebP? Chroma subsampling, measured](https://www.iminify.com/blog/25-why-is-red-text-blurry-in-jpg-and-webp-chroma-subsampling-measured): Red text goes dull in JPG, WebP and AVIF when colour is stored at a quarter of the detail. Seven images, six settings: what 4:4:4 and sharp_yuv cost. - [How much does lossless JPEG compression save? 25 files, every pixel checked](https://www.iminify.com/blog/24-how-much-does-lossless-jpeg-compression-save-25-files-every-pixel-checked): Lossless JPEG compression saved 0 to 16.3 percent on 25 JPEGs (9.5 percent in total) with every pixel unchanged. Progressive scans were the biggest step. - [Can ChatGPT read HEIC? What five AI tools list, and what three APIs did with an iPhone photo](https://www.iminify.com/blog/23-can-chatgpt-read-heic-what-five-ai-tools-list-and-what-three-apis-did-with-an-iphone-photo): ChatGPT's and Claude's format lists leave out HEIC; Gemini's API image page and Grok's FAQ name it. What three AI APIs did with an iPhone HEIC, and the fix. - [Does Squarespace compress images? What it sent Chrome for 621 images](https://www.iminify.com/blog/22-does-squarespace-compress-images-what-it-sent-chrome-for-621-images): Squarespace compresses images: resized JPEGs at quality 85, WebP to Chrome on 84 of 85 sites, none over 2,500 px, PNG photos sent to Chrome lossless. - [Why is my JPG file so large? What 11 real JPEGs are made of](https://www.iminify.com/blog/21-why-is-my-jpg-file-so-large-what-11-real-jpegs-are-made-of): JPG too large? In 11 real JPEGs the picture was 89.7 to 99.9% of every file and nothing else in them passed 729 KB. A lower quality setting shrank all 11. - [Does compression remove Content Credentials? Two signed Gemini images through 13 tools](https://www.iminify.com/blog/19-does-compression-remove-content-credentials-two-signed-gemini-images-through-13-tools): Compressing broke C2PA Content Credentials in our c2patool tests: every file 13 tools changed lost the manifest or kept an invalid copy. - [Why is my GIF so big? What each fix did to four real GIFs](https://www.iminify.com/blog/13-why-is-my-gif-so-big-what-each-fix-did-to-four-real-gifs): A GIF stores every frame losslessly in at most 256 colours, which is why it gets so big. We measured the usual fixes on four: WebP cut a 555 KB GIF to 154 KB. - [Stop your iPhone saving HEIC, and convert the photos you already have](https://www.iminify.com/blog/12-stop-your-iphone-saving-heic-and-convert-the-photos-you-already-have): Turn off HEIC on iPhone: Settings > Camera > Formats > Most Compatible. In our table, three iPhone photos came out 24% smaller to 61% bigger as JPGs. - [Image too large to upload? Each fix, measured on a phone photo](https://www.iminify.com/blog/11-image-too-large-to-upload-each-fix-measured-on-a-phone-photo): A 6.5 MB phone photo too large to upload: halving its width and height gave 1.33 MB at quality 90; at full size, getting under 2 MB took quality 61. - [Does WordPress compress images? What WordPress 7.1 does to your upload](https://www.iminify.com/blog/10-does-wordpress-compress-images-what-wordpress-71-does-to-your-upload): WordPress 7.1 doesn't compress your upload: it stores it byte for byte and re-encodes the resized copies. A 2x screen can still download the original. - [ComfyUI PNG to JPG loses the workflow. WebP and AVIF can keep it](https://www.iminify.com/blog/20-comfyui-png-to-jpg-loses-the-workflow-webp-and-avif-can-keep-it): ComfyUI's own loader can't read a workflow from a JPG. A WebP or AVIF with it in EXIF can, at about a tenth of the PNG's size. Ten example images, tested. - [How to find large images on a website: three tools gave us three different lists](https://www.iminify.com/blog/9-how-to-find-large-images-on-a-website-three-tools-gave-us-three-different-lists): To find a page's large images, scroll to the bottom and sort Chrome's Network panel by size. Lighthouse's phone run missed a real page's two heaviest. - [Does a JPEG lose quality every time you save it? We saved five photos 100 times](https://www.iminify.com/blog/18-does-a-jpeg-lose-quality-every-time-you-save-it-we-saved-five-photos-100-times): Does re-saving a JPEG lose quality? At the same setting, no later save cost as much as the first, but one-pixel crops kept costing. 100 saves, measured. - [Improve image delivery in Lighthouse: what it replaced and how it counts savings](https://www.iminify.com/blog/8-improve-image-delivery-in-lighthouse-what-it-replaced-and-how-it-counts-savings): Lighthouse's "Improve image delivery" replaced four audits, "Serve images in next-gen formats" among them. Its savings are arithmetic on bytes and pixels. - [How many tokens is an image? Claude, GPT and Gemini, measured on seven real files](https://www.iminify.com/blog/17-how-many-tokens-is-an-image-claude-gpt-and-gemini-measured-on-seven-real-files): GPT-5.6 at default detail counts a 12.5 MP photo at 14,746 tokens, Claude Opus 5.5 at 4,743 and Gemini 3.8 Flash at 1,102, each on the vendor's own counter. - [Why is my PNG file so large? Four causes, measured](https://www.iminify.com/blog/7-why-is-my-png-file-so-large-four-causes-measured): In our tests a photo as PNG was 5.7 to 9.3 times its JPEG at quality 90. Extra pixels, 16-bit colour and light compression add size too. The fix for each. - [Image exceeds 5 MB maximum? Claude counts the base64, not your file](https://www.iminify.com/blog/16-image-exceeds-5-mb-maximum-claude-counts-the-base64-not-your-file): Claude's 5 MB image limit on Bedrock counts base64, so a 4,309,090-byte JPEG is too big. Six files measured against each image limit, and the fixes. - [How big is a Nano Banana image? 52 files measured, from 512 px to 4K](https://www.iminify.com/blog/15-how-big-is-a-nano-banana-image-52-files-measured-from-512-px-to-4k): Nano Banana image size, measured on 52 API images: a detailed picture from Nano Banana 2 or Pro is about 1 MB at 1K and 10.45 to 12.13 MB at 4K, as a JPEG. - [Does converting PNG to WebP lose quality? Five files, every pixel checked](https://www.iminify.com/blog/6-does-converting-png-to-webp-lose-quality-five-files-every-pixel-checked): Lossless WebP kept every 8-bit pixel of five PNG files and made them 28.6% to 77.3% smaller. What quality 100, a JPG and the compress-PNG button really cost. - [Why do images save as WebP? What 12 sites sent Chrome, and how to get the JPG](https://www.iminify.com/blog/14-why-do-images-save-as-webp-what-12-sites-sent-chrome-and-how-to-get-the-jpg): Why do images save as WebP? Many sites pick the format from a line your browser sends. We tested 12: 9 sent WebP or AVIF, and all 9 gave us a JPEG. - [AVIF vs WebP file size: ten images, one quality score, and where WebP still wins](https://www.iminify.com/blog/5-avif-vs-webp-file-size-ten-images-one-quality-score-and-where-webp-still-wins): AVIF vs WebP file size on ten images at one quality score: AVIF a third smaller, WebP ahead on lossless and, alpha matched, on our one transparent image. - [JPEG 80 is not WebP 80: what quality means in four encoders](https://www.iminify.com/blog/2-jpeg-80-is-not-webp-80-what-quality-means-in-four-encoders): WebP quality 80 isn't JPEG quality 80. Matching mozjpeg at 80 on six photographs took a median of cwebp 87.5, jpegli 83.5 and avifenc 72. - [SSIMULACRA 2 scores in practice: what 50, 70 and 90 cost in kilobytes](https://www.iminify.com/blog/1-ssimulacra-2-scores-in-practice-what-50-70-and-90-cost-in-kilobytes): What a SSIMULACRA 2 score costs in kilobytes: an 832 KB photo clears 70 at 311 KB through jpegli, and 90 at 847 KB. Ten public images, three encoders. - [How many KB should a website image be? Measured at four widths](https://www.iminify.com/blog/3-how-many-kb-should-a-website-image-be-measured-at-four-widths): How big a website image should be in KB: Lighthouse budgets a sixth of a byte per pixel, 10 KB at 300x200, 256 KB at 1536x1024. Ten real images, measured. - [What AVIF quality setting should you use? The answer changed in March 2026](https://www.iminify.com/blog/4-what-avif-quality-setting-should-you-use-the-answer-changed-in-march-2026): Which AVIF quality number to type: libavif 1.4.0 changed what it means, so -q 60 gives one file on Debian 13 and another on 1.4.2. Ten images, measured. ## Limits and storage - Maximum 16 MB per image without an account, 32 MB with a free account and 90 MB on the paid Pro plan, and 64 megapixels on every plan. - Images a day: 10 without an account, 40 with a free account and no cap on Pro. - Page scans a day: none without an account, 3 with a free account at up to 20 images a scan, and no cap on Pro at up to 150 images a scan. - Pro: $36 a year ($3 a month) or $5 month to month, no daily caps, paid by card, PayPal, Apple Pay or Google Pay through Lemon Squeezy. - AI alt texts a day: 10 without an account, 40 with a free account, unlimited on Pro within fair use. - Each daily count runs for 24 hours from the first image, scan or alt text it counts, not from midnight. - Input formats: PNG, JPG, JPEG, WEBP, GIF, HEIC, HEIF, TIFF, TIF. Output formats: WebP, AVIF, PNG, JPG, or Auto. - Uploaded and optimized files are kept so results stay available; a delete button on each result removes the image and its optimized copy from storage for good. ## Support - Questions and account requests: support@iminify.com.