CompressPhotosCompress photos

Compress a photo library Free up gigabytes from your photo folders.

Pick a folder and get a smaller copy with the same folders inside. Your originals stay as they are.

or drop them here · paste with Ctrl+V

Free · No sign-up · Photos stay on your device

A starry night sky over a dark forest and a still lakeBefore · 3.6 MBAfter · 430 KB
88% smallerSame 3000 × 2000 photo

Nothing on this page writes to the folder you choose. Files are opened for reading, the results go into a separate archive that mirrors the folder structure, and what to do with the originals stays your decision — made afterwards, from the manifest.

Quality
Size per file
Long edge
Format
Metadata
Nothing chosen yet.Auto Encoded on this computer

Keyboard shortcuts

Ctrl/⌘ O
Choose photos
Ctrl/⌘ Enter
Compress (or re-run what changed)
Ctrl/⌘ S
Save the results
Ctrl/⌘ Z
Undo (recipe, own recipes, left out, names)
Ctrl/⌘ Shift Z, Ctrl Y
Redo
1 2 3 4
Light, Standard, Strong, Custom quality
G / T
Grid or table
P R E D
Photo, Recipe, Export, Device panel
[ ]
Move the ceiling line a step down or up
X
Leave the picked photos out, or put them back
Esc
Clear the selection
Space
Pause or resume a running job
\ (hold)
Show the original in the Photo panel
Arrows, Shift+Arrows, Enter
Move, extend, open in the sheet
?
This sheet

Shortcuts never fire while you are typing in a field.

Point it at the whole library. The folder structure survives, the originals are untouched, and the manifest is what you check before deleting anything.

What this does

The photographs on a full disk are rarely there because anyone chose them. They accumulated — a phone that backs up automatically, a camera emptied twice a year, a folder called Import that nobody has opened since 2019. The size of the problem is measured in gigabytes and the individual files are not interesting.

So the shape of the work is a pass over a directory tree, not a session with an image. One rule, applied in order, with the folder structure carried through to the output so that what comes back is recognisably the same library and not a flat bag of four thousand files called IMG_ something.

Setting the rule

  • Standard quality is the starting position for an archive. Strong is a reasonable choice for a folder you are keeping out of completeness rather than affection, and a poor one for the photographs you would miss.
  • Capture information stays by default here. The date a photograph was taken is frequently the only thing that makes a 2013 folder navigable at all, and it costs a few kilobytes a file.
  • The long edge cap is where the gigabytes actually are, and it is irreversible from the output. If you are going to use it on a library, use it on a copy first and look at the result on the largest screen you own.
  • Leave the skip rules on. They are why the total at the end is a number and not an estimate.

What it will open

A photo library is never only photographs. Video from the same phone, RAW files beside their JPEG previews, sidecar files from whatever catalogued them once, and the occasional PDF someone dropped in there. All of it is counted, none of it is touched, and the count is shown before the queue starts so the shape of the folder is not a surprise at file three thousand.

Photographs from an iPhone are commonly HEIC. This site ships no HEIC decoder of its own: Safari decodes HEIC itself and those files are written as JPEG, while in other browsers each HEIC is left alone with the reason on its row. The summary above the queue says how many are in the folder before anything starts.

Questions about long jobs

Does this replace my library?
No, and it cannot. The results are written into a separate archive with the folder structure copied. Deleting anything is a decision you make afterwards, with the manifest in front of you, on your own file manager.
How do I check a job before I delete anything?
The manifest is a CSV with one line per file: its path, what it weighed, what came out, the outcome and the reason. Open it in a spreadsheet, sort by outcome, and read the skipped and failed rows. If those rows account for everything missing from the archive, the job is complete.
How long does a few thousand photographs take?
It is a function of megapixels rather than files, and of how many decodes this device can afford at once, which the page works out for itself. A folder of phone photographs moves quickly; a folder of 45-megapixel raw exports converted to JPEG does not. Leaving it running is the expected way to use this. The record of which files finished survives the tab closing, but the compressed copies do not: in Chrome and Edge, save into a file as photos finish; elsewhere, save what is finished as a part ZIP before you close the tab.
Is a second pass over an already-compressed library worth anything?
Rarely, and the skip rule will tell you so. Files that came from a previous run re-encode larger, get thrown away and are counted as skips, so a pointless second pass reports itself as a pointless second pass instead of quietly costing quality.

Other jobs

More ways to shrink a photo