How to Free Up Disk Space on Mac in 2026
Your Mac is full and you're not entirely sure why. Here's where all that space actually went, and how to get it back without nuking anything important.
Apple gives you a pretty bar chart under About This Mac → Storage that tells you exactly nothing useful. "System Data: 47 GB." Thanks, very helpful. You know you have 47 GB of mystery, and you still don't know what to delete.
This guide skips the obvious advice ("empty your Trash!") and focuses on where space actually disappears on a real Mac in 2026. That's especially true for developers, creatives, and anyone who has been using the same machine for more than a year.
Where All That Storage Actually Goes
The first time I ran a proper disk analysis on a two-year-old developer MacBook Pro, the results were embarrassing. Not because the Mac was messy. Because of how invisible the clutter was. Node modules from abandoned side projects. Seven copies of the same client brief renamed slightly differently. A 14 GB Xcode simulator runtime for iOS 15 that I hadn't touched in eighteen months.
Here's what actually fills up most Macs:
| Category | Typical size (active Mac, 2 to 3 years old) | Easy to delete? | Rebuilds itself? |
|---|---|---|---|
| Xcode DerivedData | 5 to 25 GB | ✓ Yes | ✓ Xcode rebuilds on next build |
| iOS/watchOS Simulator runtimes | 3 to 8 GB each | ✓ Yes (keep one or two) | ~ Re-download if needed |
| node_modules folders | 500 MB to 3 GB per project | ✓ Yes | ✓ npm install rebuilds |
| Duplicate files | 2 to 15 GB | ~ Need to identify them | ✗ No |
| Old DMG / ZIP / PKG archives | 1 to 5 GB | ✓ Yes | ✗ No |
| Browser caches | 0.5 to 3 GB | ✓ Yes | ✓ Rebuilds as you browse |
| Unused app support files | 100 MB to 5 GB | ~ Hidden in ~/Library | ✗ No |
| Flutter / Gradle / CocoaPods caches | 2 to 10 GB | ✓ Yes | ✓ Rebuilt on next build |
Notice something about that table: most of the biggest offenders are caches that rebuild themselves. You can delete them without losing any work. Your tools just regenerate them the next time they need them. That's the low-risk, high-reward category. Start there.
Quick Wins You Can Do Right Now
These take under 10 minutes and require no tools beyond what macOS already gives you:
Empty Trash, including Finder's hidden trash
Free · 2 minRight-click the Trash icon in your Dock and choose Empty Trash. If you want to be thorough: with Finder active, go to Finder → Empty Trash from the menu bar. This catches items in the Trash of network volumes that the Dock icon sometimes misses.
Typical recovery: 0.5 to 5 GB. Not glamorous, but it's free and takes thirty seconds.
Nuke your Downloads folder (selectively)
Manual · 5 minSort Downloads by Kind. You'll usually find: DMG files (app installers you already ran), ZIP archives you've already expanded, and PDF receipts from 2019. Delete confidently.
In Finder: View → Show View Options → Sort by Kind. Everything labeled "Disk Image" is safe to delete once you've installed the app.
Clear browser caches
Free · 2 minSafari: Enable the Develop menu (Settings → Advanced → tick "Show Develop menu in menu bar"), then Develop → Empty Caches.
Chrome: Settings → Privacy and Security → Clear browsing data → check "Cached images and files" → Clear data.
Firefox: Settings → Privacy & Security → Clear Data → check "Cached Web Content".
Developer Caches (The Biggest Hidden Culprit)
If you write code, this section is for you. Developer caches are by far the most efficient storage recovery on a Mac that gets used for software development. They're also the most invisible. They live inside hidden Library folders or deeply nested project directories that normal Finder browsing never surfaces.
Xcode: DerivedData and Simulators
Xcode caches compiled output in a folder called DerivedData. For a project you've built dozens of times across multiple Xcode versions, this folder can grow to 10 to 20 GB without you ever noticing. It's completely safe to delete. Xcode rebuilds it on the next compile.
In Xcode: Go to Xcode → Settings → Locations. Click the arrow next to the DerivedData path to open it in Finder, then delete the folder.
In Terminal: rm -rf ~/Library/Developer/Xcode/DerivedData
Simulator runtimes are the other big Xcode offender. Each iOS version you've ever tested against takes up 3 to 6 GB. Realistically you only need the current iOS version, maybe one back for compatibility testing. The rest can go.
Delete simulators: Xcode → Window → Devices and Simulators → Simulators tab. Select the ones you don't use and press Delete.
node_modules: The Silent Folder That Never Sleeps
Every Node.js project you've cloned has a node_modules directory. Each one is typically 200 MB to 2 GB depending on the project's dependency count. If you have ten old repos on your machine, that's potentially 10 to 15 GB of modules for code you haven't touched in a year.
The terminal approach to find all of them:
# Find all node_modules directories and their sizes
find ~/Projects -name "node_modules" -type d -prune | head -20
# If you want sizes too:
find ~/Projects -name "node_modules" -type d -prune -exec du -sh {} \;Then delete whichever projects you're done with. When you come back to an old project, run npm install and everything comes back in minutes.
Other Caches Worth Checking
| Cache | Location | Safe to delete? |
|---|---|---|
| Flutter SDK cache | ~/.pub-cache | ✓ Yes, rebuilt on next flutter pub get |
| Gradle cache | ~/.gradle/caches | ✓ Yes, rebuilt on next build |
| CocoaPods cache | ~/.cocoapods/repos | ✓ Yes, rebuilt on next pod install |
| pip cache | ~/Library/Caches/pip | ✓ Yes, just slows next install slightly |
| Docker images | Docker Desktop → Images | ~ Only images you no longer use |
| Homebrew cache | Run brew cleanup | ✓ Yes, only old versions of installed packages |
Finding and Removing Duplicate Files
Duplicates are sneaky. They don't accumulate in one obvious place. They scatter across Downloads, Desktop, iCloud Drive, and whatever folder your last project was in. You'll have three copies of a client logo, four versions of a contract PDF with names like "contract_FINAL_v2_USE_THIS_ONE.pdf", and a dozen identical iPhone photos that got re-imported twice.
Manual method: Finder search (tedious, but free)
Finder doesn't have a true duplicate finder. What you can do is sort by size, look for files of identical sizes, and manually check them. For photos, Smart Albums in Photos.app can surface duplicates. But for general files across your whole drive, manual scanning stops being practical pretty quickly.
Better: a content-based duplicate scanner
A good duplicate finder scans by file content (not name), so it catches files that were renamed. Files Magic AI's System Cleaner does this. It computes checksums, groups exact matches, and shows you which copy to keep based on location and date. You never delete blindly; every removal is a deliberate choice.
Unused Apps and Their Leftover Support Files
When you delete an app by dragging it to Trash, macOS removes the .app bundle. What it does not remove: the support files stored in ~/Library/Application Support/, preferences in ~/Library/Preferences/, and caches in ~/Library/Caches/. These can collectively add up to hundreds of megabytes, sometimes gigabytes for apps like design tools or video editors.
Then there are apps you still have installed but haven't opened in six months. They're taking up space without giving you anything back. A good cleaner surfaces these sorted by last-used date so you can make a quick decision.
To find leftover support files manually: open Finder, press ⌘⇧G, and go to~/Library/Application Support/. Sort by size. The folders named after apps you've uninstalled are safe to delete.
Using Files Magic AI System Cleaner
If you want to do all of the above in one session without Terminal commands or hunting through Library folders, Files Magic AI has a System Cleaner built specifically for this. Here's how it works in practice:
Run a scan
Files Magic AIOpen Files Magic AI and click System Cleaner in the sidebar. Hit Scan. Within a minute or two you get a breakdown by category: Duplicate Files, Unused Apps, Developer Caches (node_modules, Xcode, Flutter, Gradle), DMG Installers.
Review before deleting
Files Magic AIEvery item shows you its size, path, and last-accessed date. Nothing gets deleted automatically. You expand each category, uncheck anything you want to keep, and then clean what's left.
The Developer Caches section is particularly useful for developers. It breaks out node_modules, Xcode DerivedData, CocoaPods cache, Flutter cache, and Gradle separately, with sizes for each. You see exactly what's eating your disk before you touch it.
Clean and verify
Files Magic AIClick Clean Selected. Files Magic AI sends everything to the Trash rather than immediately deleting, giving you a safety net. Empty the Trash once you've verified everything looks right.
Most developers I know recover 15 to 40 GB on the first scan. It's less about what you didn't know existed and more about the friction of finding it manually. A scan removes the friction.
Try Files Magic AI for free
System Cleaner, AI file organization, and offline file renaming, all in one app. 15-day free trial, no credit card required.
Start 15-day free trialLearn moreMethod Comparison: Which Approach Is Worth Your Time?
| Method | Time required | Typical space recovered | Best for | Risk |
|---|---|---|---|---|
| Empty Trash + clear Downloads | 5 to 10 min | 2 to 10 GB | Everyone, first step | ✓ None |
| Clear browser caches | 2 to 5 min | 0.5 to 3 GB | Heavy browser users | ✓ None |
| Delete Xcode DerivedData manually | 5 min | 5 to 20 GB | iOS/macOS developers | ✓ None (rebuilds) |
| Terminal: find + delete node_modules | 15 to 30 min | 3 to 15 GB | Developers comfortable in Terminal | ~ Low (be careful with paths) |
| Manual duplicate hunt in Finder | 30 to 60 min | 1 to 5 GB (incomplete) | Very small file sets | ~ Low but time-consuming |
| Files Magic AI System Cleaner | 10 to 20 min | 10 to 40 GB (comprehensive) | Anyone wanting a full cleanup in one pass | ✓ None (review-first) |
Keeping Your Mac Clear Long-Term
Cleaning up once is satisfying. Keeping it clean is a different problem. Here's what actually works without becoming a chore:
- Set a Downloads folder rule: Anything older than 90 days that you haven't opened gets deleted. You can automate this with Files Magic AI's scheduling feature, or just manually review it once a quarter.
- Delete node_modules when a project goes inactive: The moment you archive a project or finish a contract, run
rm -rf node_modulesin the project root. You can always restore with a single command. - Keep only two Xcode simulator versions: Current iOS release plus one back. Delete the rest.
- Run a system scan quarterly: Developer caches accumulate fast. A quarterly scan with Files Magic AI (or manually via Terminal) catches what daily habits miss.
- Move completed project archives to external storage: Not everything needs to live on your primary SSD. A project you closed six months ago belongs on a backup drive or cold storage, not eating your NVMe.
Frequently Asked Questions
rm -rf ~/Library/Developer/Xcode/DerivedData in Terminal.find ~/Projects -name "node_modules" -type d -prune to find them, then delete each with rm -rf <path>.Files Magic AI method: Open System Cleaner → Developer Caches → node_modules. It finds all of them across your Mac, shows sizes, and lets you remove without touching Terminal.
Published June 27, 2026 · More guides · Files Magic AI