← All articles

Why Your Photos Library Is the Biggest Thing on Your Mac

The Photos library is usually the largest item on a personal Mac. What is inside the package, what Optimize Mac Storage really does, and what to touch.

· Updated September 14, 2026
PhotosmacOSStorageiCloud

Across every category covered on this blog, Photos is usually the single largest one on a personal Mac — bigger than any developer cache, bigger than System Data, often bigger than everything else on the disk combined.

du -sh ~/Pictures/Photos\ Library.photoslibrary

What’s actually inside the package

Finder shows Photos Library.photoslibrary as one file, but it’s a package — right-click and Show Package Contents to see the real structure:

du -sh ~/Pictures/Photos\ Library.photoslibrary/*
  • originals/ — every photo and video at full, unmodified resolution. This is usually 80%+ of the library’s total size, especially with 4K video from a recent iPhone.
  • resources/ — Apple’s derived data: thumbnails at every size the UI needs, the on-device face recognition index, and edit history for any photo you’ve adjusted (kept separately from the original so edits stay non-destructive).
  • database/ — the actual catalog: albums, tags, dates, which photo is where. Small relative to the rest, but the part that would actually hurt to lose — this is your organization, not your media.

iCloud Photos “Optimize Mac Storage” — what it really does

If you have iCloud Photos enabled, System Settings → Apple ID → iCloud → Photos offers “Optimize Mac Storage,” which keeps smaller, device-appropriate versions locally and downloads full originals on demand when you actually open a photo. This is the single biggest lever most people never pull:

# No shell equivalent — this is a toggle in System Settings, not a command.
# System Settings → [your name] → iCloud → Photos → Optimize Mac Storage

The trade-off: opening an old photo you haven’t viewed in a while triggers a download from iCloud, which needs an internet connection and takes a moment the first time. For most people this is invisible in daily use and reclaims tens of gigabytes immediately. It only works if your library is actually backed by iCloud Photos — if you’re not signed into iCloud Photos at all, everything stays local regardless of this setting, full stop.

What if you’re not using iCloud Photos

If your library is local-only — no iCloud sync, or iCloud switched off — there’s no “optimize” button, and the options are more manual:

Delete duplicates and near-duplicates. Photos’ own Utilities → Duplicates view (in recent macOS versions) surfaces exact and near-exact duplicate detection built into the app — burst-mode sequences and accidental double-imports are common contributors here.

Empty the Photos Trash. Deleting a photo inside the app moves it to a Recently Deleted album for 30 days before actually freeing space — same mechanic as the Finder Trash, same fix:

Album → Recently Deleted → Delete All, or wait out the 30 days.

Move the library, or export what you don’t need daily. Photos supports multiple libraries and external-drive storage for an archival library you rarely open, keeping only a working library locally. This is a bigger workflow change than anything else in this article, worth it only if you’ve already optimized everything above and are still tight on space.

What not to touch directly

Never edit files inside originals/ or resources/ by hand, and never delete anything inside the package outside the app itself — the database/ catalog tracks exact file paths and checksums for everything in originals/, and manual changes desync the catalog from reality in ways that can corrupt the library or make photos “disappear” from the app while the files are technically still on disk. Every legitimate way to reclaim space here goes through the Photos app itself or the iCloud optimization setting, never a rm command aimed inside the package.

Where this fits with the rest of your disk

Photos is arguably the one major storage category on a personal Mac that genuinely isn’t cache or cruft — it’s the actual thing you own. That’s why DevCruft, the free Mac app for developers we’re building, is being designed to treat it differently from everything else it scans: shown at true size, marked as “keep,” and never offered as a reclaim target the way DerivedData or a stale node_modules folder would be, because “this 88 GB is real and yours” is as useful a thing to know as “this 62 GB is a build cache you don’t need.” Join the waitlist to hear when it launches.

For the other large, non-cache thing worth knowing about on a Mac, see the iPhone backups guide — Photos syncing and local backups are often confused for each other but are entirely separate storage categories.

A free app for this is on the way.

We’re building DevCruft to find every cache in guides like this one and show what each costs you. Join the waitlist to hear when it launches.

One email at launch, nothing else. Ask us any time to remove you. Privacy policy