How to free up space on a Mac without deleting the wrong thing
Start with what's actually big, not with caches. The order I work through on my own Mac, what comes back after you delete it, and what to leave alone.
On this page
- Look before you delete anything
- Empty the Trash, and know what it's still holding
- Find the handful of files that matter
- Remove apps you don't use, and what they leave behind
- Photos, Messages and iCloud
- If you write code, look at the developer folders
- Caches go last
- What I'd leave alone
- When the space doesn't come back
- Where Spaceback fits
While I was writing this, the MacBook Air I build Spaceback on had 2.9 GB free out of 455 GB. So this isn't advice from a tidy machine. It's the order I actually work through when macOS starts complaining, and it puts the big, boring things first because that's where the space is.
The short version: look at what's using the space before you delete anything, empty the Trash, deal with a handful of large files, then apps, then photos, messages and backups, and only then caches. Most "clean your Mac" lists run in the opposite order, which is why people clear their caches, get 3 GB back and are out of space again a week later.
Look before you delete anything
Open System Settings → General → Storage and wait until the bar stops saying "Calculating…". The categories are rough (apps, documents, photos, iCloud Drive, developer files, iOS backups, the Trash, macOS itself and System Data), but they tell you which kind of problem you have. A Mac with 120 GB of photos needs a different fix from one with 120 GB of System Data.
For a second opinion, a disk map shows you folders instead of categories. GrandPerspective is free, DaisyDisk is very good, and Spaceback has one as well. If you'd rather use Terminal, this lists the biggest folders directly inside your home folder, largest last:
du -h -d 1 ~ 2>/dev/null | sort -h | tail -12
The first time you run it, macOS may ask whether Terminal can access your Desktop, Documents and Downloads. Allow it, or those folders will be missing from the totals. Mail, Messages and a few other protected folders are skipped quietly unless Terminal has Full Disk Access, so treat the numbers as a floor, not an audit.
Empty the Trash, and know what it's still holding
Deleting a file in Finder moves it to the Trash, and the Trash still counts against your disk. Emptying it is the only step in this whole list that hands space back straight away. If you tend to forget, the Storage settings page has a recommendation called Empty Trash Automatically, which erases anything that has sat in the Trash for more than 30 days.
One catch. If Time Machine keeps local snapshots on your Mac, some of what you just deleted stays on disk until those snapshots expire. That's the usual answer to "I emptied 20 GB of Trash and got 3 GB back", and it's explained properly in the post on purgeable space.
Find the handful of files that matter
On most Macs, a few dozen files hold a surprising share of the used space: screen recordings, exported videos, disk images you mounted once, old virtual machines, and macOS installers (an "Install macOS" app in Applications is well over 10 GB). You don't need a cleaner to find them.
In Finder, open your home folder and press Command-F. From the first pop-up menu choose Other…, tick File Size, then set the rule to "is greater than 1 GB". Sort the results by size and you'll usually know within a minute what can go. The Terminal version:
find ~ -xdev -type f -size +1G 2>/dev/null
While you're at it, check for old iPhone and iPad backups. Each one can be tens of gigabytes, and they stay until someone deletes them. They live in ~/Library/Application Support/MobileSync/Backup, but the tidier way to remove them is in Storage settings, where they're grouped with software updates under iOS files and described, accurately, as something you erase permanently.
Remove apps you don't use, and what they leave behind
Dragging an app to the Trash removes the app itself. Its data stays in your Library. Usually that's a few megabytes of preferences and caches. Sometimes it's most of the app's footprint: virtual machines, game assets, offline music, downloaded AI models. These are the places to check after deleting an app:
~/Library/Application Support/followed by the app's name~/Library/Containers/and~/Library/Group Containers/, for App Store and other sandboxed apps~/Library/Caches/, usually in a folder named after the app's bundle identifier, likecom.company.app~/Library/Preferences/, which is tiny and not worth the effort unless you want a clean reinstall
On macOS 27, some of these folders are off limits to other apps, cleaners included, so an uninstaller may not see everything an app left behind. I wrote up what changed in macOS 27 separately.
Photos, Messages and iCloud
If you pay for iCloud storage, these are the safest big wins because they move data instead of deleting it:
- Photos: in Photos → Settings → iCloud, choose Optimize Mac Storage. Originals stay in iCloud and the Mac keeps smaller versions when it needs room.
- Messages: in Messages → Settings → General, "Keep messages" defaults to Forever. Setting it to a year, or turning on Messages in iCloud, stops years of attachments piling up locally.
- iCloud Drive: with Optimize Mac Storage on, macOS removes local copies of files you haven't opened recently. For a single folder, Control-click it in Finder and choose Remove Download.
The trade is that some files have to download again when you open them. On a slow connection that's annoying. On a laptop that lives near Wi-Fi it's usually invisible.
If you write code, look at the developer folders
On my Mac this is where the space actually was: 35 GB of iOS simulator runtimes, 32 GB of simulator devices, 6.5 GB of device support files, 2.9 GB of Xcode's DerivedData and 1.9 GB of npm cache. That's about 78 GB before counting a single file I'd call my own. If you have Xcode installed, read where Xcode's disk space goes before anything else on this page.
For other toolchains, use each tool's own cleanup command rather than deleting folders by hand: brew cleanup for Homebrew, npm cache clean --force for npm, pip cache purge for pip, and docker system df to see what Docker is holding before you prune anything.
Caches go last
My ~/Library/Caches folder was 4.4 GB spread over 187 folders. Clearing all of it would buy a little over 4 GB for about a week, because apps rebuild their caches as you use them. It's worth deleting a single app's cache when that one has grown huge or is misbehaving, and the cache post covers how to do that safely.
What I'd leave alone
- Anything in /System. On current macOS the system lives on a sealed, read-only volume. You can't delete from it, and nothing in there is yours to clean.
- Swap files and the sleep image. macOS manages these in
/private/var/vmand on a separate VM volume. On my Mac that volume holds 8.6 GB right now; a restart resets it. ~/Library/Mobile Documents. That's iCloud Drive's local folder. Deleting something in there deletes it from iCloud Drive as well.- Application Support folders for apps you still use. That's where your settings, libraries and logins live. It isn't cache.
- Anything a forum post tells you to delete with
sudo rm -rf. - Memory cleaners and "speed boosters". Free memory isn't wasted memory on macOS, and deleting files doesn't make a Mac faster unless the disk was so full that macOS had no room to work.
When the space doesn't come back
If you deleted a lot and the free space barely moved, it's almost always one of these:
- The files are still in the Trash.
- Local Time Machine snapshots still reference them. Check with
tmutil listlocalsnapshots /. - An app still has the file open. A video editor or a virtual machine can hold on to space until you quit it.
- You're comparing different numbers. Finder counts purgeable space as available and Terminal's
dfdoesn't, anddf -huses binary units, so the same free space reads smaller there.
Where Spaceback fits
I built Spaceback because I wanted the steps above on one screen with real sizes: a storage map, Downloads and large files, caches and logs, and the developer folders. Everything you pick goes to the Trash, so you can change your mind until you empty it. Every scanner and the Storage Map are free, and so is cleaning Downloads, large files and core junk. Pro adds duplicates, photo clutter, app leftovers, developer caches and old iOS backups. It won't tell you your Mac is infected or slow, and when macOS refuses to let it read a folder, it says so instead of counting the folder as empty.