Blog

September 2, 20265 min read

How to Free Up Space on Your Mac (and Actually Keep It Free)

The highest-yield ways to free up space on a Mac, ordered from safe to advanced — with exact folders, terminal commands, and the warnings most guides skip.

GuidesStorage

Deleting a few files won't rescue a full Mac disk, because the biggest recoverable chunks usually aren't files you created. On a typical Mac, tens of gigabytes hide in developer caches, old iOS backups, package manager downloads, and Time Machine local snapshots — none of which show up in Finder.

The fastest path: empty the Trash, then clear Xcode's DerivedData and Homebrew's download cache if you develop, prune stale Time Machine snapshots, and remove old iPhone backups. Those four moves alone usually reclaim 20–60 GB. Everything below explains each step, what's safe to delete, and what you should never touch.

Why your disk fills up faster than you think

Three macOS behaviors quietly consume space:

  • Caches that never prune themselves. Xcode keeps every build's intermediate files forever; Homebrew keeps every version of every formula it has ever downloaded.
  • Local snapshots. APFS keeps hourly Time Machine snapshots on the internal disk so backups can catch up later. They're supposed to expire in 24 hours, but they linger when the disk stays busy.
  • Purgeable-but-present media. Optimized Photos and Mail attachments count as "purgeable" — macOS reclaims them only when it decides it needs room, not when you do.

We've covered the System Data category in detail in why your Mac's storage graph lies — it's the bucket where most of this hides.

First, see what's actually using the space

SAFE: System Settings → General → Storage gives you category totals and four built-in recommendations (Store in iCloud, Optimize Storage, Empty Trash Automatically, Reduce Clutter). Start there.

For folder-level truth, Terminal is faster and more honest:

df -h /                      # free space on the system volume
du -sh ~/* 2>/dev/null | sort -h    # biggest folders in your home dir
du -sh ~/Library/* 2>/dev/null | sort -h   # biggest folders in ~/Library

df reports the filesystem; du -sh ranks folders by total size. Run them top to bottom and the space hogs name themselves.

Fix 1: the empty Trash you think you already emptied

SAFE TO REMOVE. Check it — macOS keeps files in the Trash for 30 days by default. Also delete iOS app archives and disk images from the Downloads folder; a single .dmg you already installed can be 1–5 GB.

Fix 2: developer caches (the biggest win for most pros)

SAFE TO REMOVE. If you've ever built an app or used Homebrew:

# Xcode build artifacts — safe, rebuilt on next compile
rm -rf ~/Library/Developer/Xcode/DerivedData/*

# Old simulator devices tied to runtimes you no longer have
xcrun simctl delete unavailable

# Homebrew's download cache and stale versions
brew cleanup -s

DerivedData holds compiled indexes and build products; deleting it just makes the next build slower once. brew cleanup -s scrubs cached downloads under ~/Library/Caches/Homebrew. We break down all the hidden caches worth clearing — including npm, Gradle and Docker — in a separate guide.

Fix 3: prune stale local snapshots

POTENTIALLY SAFE. Snapshots enable Time Machine recovery between backup drives; prune only the stale ones:

tmutil listlocalsnapshots /          # list them
sudo tmutil deletelocalsnapshots <date>   # delete a specific one

Never delete a snapshot from a day you might need to restore.

Fix 4: remove old iPhone and iPad backups

POTENTIALLY SAFE. Each backup can run 5–20 GB and macOS keeps them forever. In Finder, connect the device → General → Manage Backups and delete ones you don't need, or go directly to ~/Library/Application Support/MobileSync/Backup/ and check folder sizes first.

Fix 5: let macOS do the routine work

SAFE. In Storage settings, enable Empty Trash Automatically (30 days) and review Reduce Clutter. If you use iCloud Photos, Optimize Mac Storage keeps full-resolution originals in the cloud and placeholders on disk — effective, but it trades disk space for network dependence.

What you should NOT delete

  • Anything in /System or the sealed system volume. It's read-only on modern macOS for a reason.
  • /private/var/vm — swap and sleep image files; macOS manages them.
  • Any ~/Library folder you can't name. If you can't say what an application support folder belongs to, leave it alone.
  • System Data you can't explain — read what's actually in System Data before touching it.

How MacVoid fits in

Everything above exists because macOS spreads junk across a dozen directories and never shows it to you. MacVoid scans those exact locations — DerivedData, Homebrew caches, simulator data, old backups, stale snapshots — groups what it finds by category, and shows you the full list before anything moves. Removal always goes to the Trash, so a cleanup is reversible. It's $19 once, runs entirely on your Mac, and has no subscription.

FAQ

Why is my Mac storage full even after deleting files?

Deleted files often remain in the Trash, in Time Machine local snapshots, or inside caches and app support folders that Finder doesn't surface. Empty the Trash, prune local snapshots with tmutil, and check ~/Library for caches — that's where most phantom space lives.

What is purgeable space on a Mac?

Purgeable space is storage macOS calculates it could reclaim on demand: local snapshots, caches, and already-synced media originals. It counts as used in Finder but frees itself when the system needs room.

Is it safe to delete caches on a Mac?

User caches in ~/Library/Caches rebuild automatically and are safe to delete, though the space usually returns within days. Developer caches like DerivedData and Homebrew downloads are both safe and high-yield.

How much free space should a Mac have?

Keep at least 10–15% of the disk free. macOS needs working room for swap, snapshots, and updates — below that, performance degrades and updates can fail.

Why does Finder show different free space than df?

Finder subtracts purgeable space from the "used" figure it shows you; df -h reports raw filesystem usage including snapshots and purgeable data. Neither is wrong — they're answering different questions.