Skip to content

What Is System Data on Mac? (And How to Safely Shrink It)

Open Apple menu → System Settings → General → Storage and you will see a tidy set of categories: Applications, Documents, Photos, Messages. Then there is a grey slab labelled System Data, and it might be 40GB. Or 180GB. Click it and macOS tells you nothing at all.

That silence is the whole problem. This post explains what is actually in there, why it grows, and what you can safely do about it.

The short answer

System Data is not a folder. It is a leftover — the label macOS puts on everything it could not sort into a friendlier category.

If macOS can confidently say “this is a photo” or “this is an app,” it files it accordingly. Everything else lands in System Data: caches, logs, disk images, virtual machines, old iOS backups, APFS snapshots, developer toolchains, mail attachments, and files in locations Apple never bothered to name.

So “System Data is huge” does not mean anything is wrong. It means macOS gave up on classifying tens of gigabytes of files, and it will not tell you which ones.

What is actually inside it

In rough order of how much space they typically take:

APFS local snapshots. Time Machine keeps hourly point-in-time copies on your internal disk, not just on the backup drive. They exist so you can restore between backups. macOS is supposed to purge them under disk pressure, and it usually does — but “usually” is doing a lot of work in that sentence. On a Mac that has been near-full for weeks, snapshots are frequently the single biggest chunk.

Caches. ~/Library/Caches and /Library/Caches hold anything an app wanted to keep handy: browser data, Xcode’s derived data, Spotify’s offline songs, Adobe’s media cache, thumbnail databases. Almost all of it is rebuilt automatically. Xcode alone routinely holds 20–60GB on a developer’s machine.

Old iOS and iPadOS backups. If you have ever backed up a phone to your Mac instead of iCloud, those live in ~/Library/Application Support/MobileSync/Backup. Each one is the size of the phone’s used storage, and macOS never deletes the old ones.

Disk images and installers. Downloaded .dmg files, the 12GB macOS installer you used two years ago, virtual machine disks from Parallels or UTM.

Logs and diagnostic reports. Individually tiny, collectively not, especially if something on your Mac has been crashing in a loop.

Mail downloads. Every attachment you have ever opened in Mail, cached locally, forever.

Large language models and dev toolchains. A newer entry, and a big one. Ollama models, Homebrew’s cache, node_modules graveyards, Docker images, Rust and Go build artifacts. A single local LLM can be 40GB.

Why it keeps growing

Three reasons, and none of them are a malfunction:

  1. macOS is optimistic about free space. It defers cleanup until the disk is genuinely tight, which means it will happily sit on 60GB of snapshots while you have 15GB free.
  2. Apps clean up after themselves inconsistently. Uninstalling an app by dragging it to the Trash leaves its caches and application support files exactly where they were.
  3. Nothing is ever attributed to the app that made it. Once Spotify’s cache is in ~/Library/Caches, macOS has no interest in telling you it belongs to Spotify.

What is safe to remove — and what is not

This is where most advice on the internet goes badly wrong. Treat the contents of System Data as three separate tiers.

Safe: things macOS rebuilds on its own

Caches, logs, temporary files, thumbnail databases, browser caches, dev-tool build artifacts. Delete these and the worst that happens is the next launch of an app is a few seconds slower while it rebuilds. This is usually the majority of recoverable space.

Your call: things that are real but probably stale

APFS snapshots, old iOS backups, downloaded installers, disk images, models you pulled once and forgot. None of these are junk exactly — they are just probably not needed. You should be told what each one is and when it was last touched, and then you should decide.

Never: things that look like junk but are not

Mail’s local store, Messages attachments, Photos library internals, app containers holding your actual documents, anything under System Integrity Protection. These live in ~/Library next to real caches and are easy to mistake for junk. Deleting the wrong one loses mail, chat history or app data permanently.

The rule that keeps you safe: never delete anything from ~/Library that you cannot name. “It was in a Library folder” is not a reason.

How to shrink it, in order of effort

1. Check your snapshots first

In Terminal:

tmutil listlocalsnapshots /

If that lists a dozen entries, snapshots are likely a large part of your System Data. Connecting your Time Machine drive and letting a backup complete lets macOS thin them naturally — the safest route. Deleting them manually with tmutil deletelocalsnapshots works but removes your ability to restore to those points.

2. Delete old iOS backups

Finder → your device → Manage Backups, or look directly in ~/Library/Application Support/MobileSync/Backup. Each folder is one backup. If you back up to iCloud now, these are dead weight.

3. Empty the caches that belong to tools you know

Xcode: Xcode → Settings → Components, plus ~/Library/Developer/Xcode/DerivedData. Homebrew: brew cleanup -s. Docker: docker system prune. These three account for a startling share of “mystery” storage on technical Macs.

4. Empty the Trash

Files in the Trash still occupy the disk, and on a Mac with “Remove items after 30 days” switched off they can sit there for years.

5. Restart

Genuinely. A restart clears sleep-image and swap files and triggers some of macOS’s own cleanup routines. It is the least glamorous item on this list and it sometimes recovers several gigabytes.

What about cleaner apps?

Most of them make the same mistake macOS does: they show you a number and a button. You click Clean, a progress bar runs, the number goes down, and you have no idea what left your Mac.

That is the wrong shape for this problem. System Data is confusing because it is unlabelled — so a tool that deletes it without labelling it has not solved anything. It has just moved the trust problem one level up.

What you actually want from a tool here:

  • Every item named, sized, and given a reason it was flagged.
  • A clear split between “rebuilds itself,” “your call,” and “your data, off limits.”
  • Deletion that goes to the Trash, so a mistake costs you a Finder click rather than a file.
  • No claims about making your Mac faster. Freeing disk space frees disk space.

This is precisely why we built Purgy the way we did: it measures inside System Data, sorts every byte into those three tiers, and shows you the list before anything moves. You can read more about how the safety tiers work on the front page.

The one-line version

System Data is not a problem to be feared or a folder to be nuked. It is an unlabelled pile — mostly caches that rebuild themselves, some genuinely stale backups and snapshots, and a bit of irreplaceable data mixed in. Label it before you delete it, and the whole thing stops being scary.