# Free Up Browser Storage on Mac Safely

> Measure Chrome, Safari, and other profile trees, clear disposable caches without wiping logins, and treat site databases as user data.

Published: 2026-07-31 | Updated: 2026-08-22

Browsers are among the largest quiet consumers of disk on a developer or everyday Mac.
A single Chromium profile can hold multi-gigabyte **Cache**, **Code Cache**,
**GPUCache**, and service-worker stores while bookmarks and passwords remain small.
Storage settings often fold that weight into
[System Data](https://mole.fit/blog/what-is-system-data-on-mac) instead of a clear "Chrome" line.

This guide separates profile bulk you can rebuild from identity you must keep, explains
why Safari's modern paths differ from legacy Caches, and shows how to free space without
signing out of everything. When you finish, you should be able to measure a profile,
clear only the disposable tier, and verify logins still work.

The real growth lives inside browser profiles, mostly Service Worker caches and abandoned profiles, not in one obvious folder. Use the browser's own site-data cleanup first; clearing caches alone keeps you logged in, and profile leftovers are only safe to remove once you have confirmed which browser owns them.

## What actually grows inside a browser profile

Think in layers, not one "browser folder":

| Layer | Role | Rebuild cost |
|---|---|---|
| HTTP disk cache | Images, scripts, media for faster loads | Low; first visit slower |
| Code / JS bytecode cache | Compiled script cache | Low; CPU on next launch |
| GPU / Dawn / WebGPU caches | GPU-side resources | Low |
| Service Worker + Cache Storage | Offline app shells, PWAs | Medium; apps re-cache |
| IndexedDB / Local Storage | App state, offline DBs | High if not synced |
| Cookies / Login Data | Sessions and credentials | High; you re-authenticate |
| Extensions + extension storage | Features and their local DBs | Medium to high |
| History / bookmarks | Navigation and sync | Depends on account sync |

Clearing **cache** is not the same operation as clearing **site data**. The browser UI
separates them for a reason; folder deletion often does not.

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/browser-profile-layers.webp" width="1360" height="454" loading="lazy" alt="Left column lists disposable browser caches; right column lists identity and site state that should not be bulk-deleted.">
  <figcaption>One profile holds two risk tiers. Clear the left column after quit; treat the right column as a reset, not a tidy-up.</figcaption>
</figure>

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/cache-lifecycle.webp" width="1360" height="454" loading="lazy" alt="Cache is written, reused, then safely discarded while state remains.">
  <figcaption>HTTP and GPU caches are meant to be disposable. Login databases and many Local Storage trees are state, not junk.</figcaption>
</figure>

## Lab: measure the browser, not only System Data

Quit the browser first so files are not mid-write. Full Disk Access may be required for
Terminal or a cleaner to see container paths. Permission errors mean access, not
emptiness.

### Chrome / Chromium family

Paths vary by channel and "Chrome for Testing":

```
du -sh ~/Library/Application\ Support/Google/Chrome \
  ~/Library/Caches/Google/Chrome 2>/dev/null
du -sh ~/Library/Application\ Support/Google/Chrome/* 2>/dev/null | sort -h
```

Drill into `Default` or `Profile N`:

```
du -sh ~/Library/Application\ Support/Google/Chrome/Default/* 2>/dev/null | sort -h
```

Typical heavy leaves under a profile: `Cache`, `Code Cache`, `GPUCache`,
`Service Worker`, sometimes `IndexedDB`. Only the first group is a light tidy-up.

### Safari

Modern weight is often in the container; legacy Caches can be nearly empty:

```
du -sh ~/Library/Containers/com.apple.Safari/Data/Library/Caches \
  ~/Library/Safari \
  ~/Library/Caches/com.apple.Safari 2>/dev/null
```

Safari's heavy modern cache is often:

```
~/Library/Containers/com.apple.Safari/Data/Library/Caches/com.apple.Safari
```

The legacy `~/Library/Caches/com.apple.Safari/WebKitCache` tree can look related while
holding almost nothing. Measure both before you celebrate.

### Firefox

```
du -sh ~/Library/Application\ Support/Firefox \
  ~/Library/Caches/Firefox 2>/dev/null
```

### Edge, Brave, Arc, Dia, and other Chromium builds

Same idea: Application Support holds the profile tree; Caches may duplicate or shadow
parts of it. Multi-profile machines accumulate abandoned `Profile 12` directories;
measure each before deleting any.

## Built-in cleanup first (preferred)

### Chrome, Edge, Brave, Arc, and similar

1. Use the browser **Task Manager** when CPU is the symptom
   ([Chrome Helper](https://mole.fit/blog/google-chrome-helper-high-cpu-mac)); disk is a different job.
2. Follow Chrome's
   [Clear browsing data](https://support.google.com/chrome/answer/2392709) path and start
   with **Cached images and files** only.
3. Time range matters: "All time" plus cookies signs you out everywhere.
4. Remove unused **profiles** from the profile picker so internal registries stay
   consistent; do not guess-delete profile folders.
5. Disable extensions you do not use; some keep large local stores.

### Safari

1. Use Safari's documented
   [history and website-data controls](https://support.apple.com/guide/safari/clear-your-browsing-history-sfri47acf5d6/mac)
   with a bounded range, or Empty Caches from the Develop menu when only cache is in scope.
2. On versions with profiles, remove a whole secondary profile from Settings.
3. Prefer Safari UI over deleting `~/Library/Safari` wholesale; history, Reading List,
   and other state mix there.

### Firefox

Mozilla documents the split under
[Settings, Privacy & Security, Cookies and Site Data](https://support.mozilla.org/en-US/kb/how-clear-firefox-cache).
Clear cached web content without wiping cookies and logins unless you mean to reset them.

Why the UI wins: browsers maintain indexes and quota accounting. Deleting random leaves
can leave corrupt state that forces a longer repair on next launch.

## Manual paths when the UI is not enough

Only after quit, and only for leaves you understand:

```
du -sh ~/Library/Application\ Support/Google/Chrome/Default/Cache \
  ~/Library/Application\ Support/Google/Chrome/Default/Code\ Cache \
  ~/Library/Application\ Support/Google/Chrome/Default/GPUCache 2>/dev/null
```

Delete a **cache leaf**, not the entire `Default` directory. Removing the whole profile
is a factory reset of that identity.

## Worked example

A developer Mac reports "System Data" around 90 GB. Measurement shows:

```
~/Library/Application Support/Google/Chrome/Default/Cache          18G
~/Library/Application Support/Google/Chrome/Default/Code Cache      4G
~/Library/Application Support/Google/Chrome/Profile 3               22G
```

Profile 3 is an abandoned work profile. The safe path:

1. Open Chrome's profile picker and remove Profile 3 from the UI if it still appears.
2. If the folder remains and the profile is truly unused, quit Chrome and remove that
   profile directory only after confirming it is not the Default identity you need.
3. Clear Default's Cache and Code Cache via Clear browsing data (cached files) or by
   deleting those two leaves after quit.
4. Remeasure; confirm Default still has Login Data and you can open work sites signed
   in.

Do not delete the entire `Google/Chrome` tree to "save time."

## Updater leftovers and abandoned profiles

Chromium updaters sometimes leave old version directories beside the live browser. Keep the
tree that matches the running app; older staged directories can go after a successful
launch. Multi-profile machines: remove abandoned profiles from the UI when possible.

Edge's updater store has an extra rule on some systems: payloads **older than the
installed Edge version** can be removable, while equal-or-newer payloads may be pending
updates. Without a readable installed version, keep-newest conservatism is safer.

## Sync side effects

Clearing **cache** does not delete bookmarks that sync through a browser account.
Clearing **cookies and site data** does. History and open-tab sync depend on the
vendor. Treat synced data like any cloud mirror: a delete here can change other
devices.

## Where a Mac cleaner helps

[Mole](https://mole.fit/) can group known browser cache categories and show their sizes. Cookies,
account state, site databases, and profile deletion stay in the browser's own UI; an
entire Application Support profile must never appear as one safe cache checkbox.

Use Analyze or `du` to **find** which profile is huge; use the browser or a reviewed
cache list to **remove**. Pair with general
[cache hygiene](https://mole.fit/blog/how-to-clear-cache-on-mac).

## Common mistakes

**Clearing "all browsing data" for disk space.** You pay in re-authentication, not only
in GB.

**Deleting `Default` wholesale.** That is a reset, not a tidy-up.

**Trusting the legacy Safari Caches path alone.** Measure the container.

**Leaving Chrome open while deleting cache leaves.** Writers may hold files.

## Verify

1. Relaunch; confirm profiles and logins you expect.
2. Remeasure the same paths; cache leaves drop, profile roots remain.
3. Load a few heavy sites once; slower first loads are normal.
4. Empty Trash only after you accept the removals.

## Order of operations

1. Quit the browser.
2. Measure Application Support and Caches roots; drill into the largest profile.
3. Prefer Clear browsing data, cached files only.
4. Remove abandoned profiles from the UI.
5. Only then delete known cache leaves by hand if needed.
6. Relaunch and verify identity still works.
7. Empty Trash.

## Further reading

- Chrome: [Delete browsing data](https://support.google.com/chrome/answer/2392709)
- Safari: [Clear browsing history](https://support.apple.com/guide/safari/clear-your-browsing-history-sfri47acf5d6/mac)
- Firefox: [Clear the Firefox cache](https://support.mozilla.org/en-US/kb/how-clear-firefox-cache)
- [System Data](https://mole.fit/blog/what-is-system-data-on-mac)
- [Clear caches](https://mole.fit/blog/how-to-clear-cache-on-mac)
- [Chrome Helper high CPU](https://mole.fit/blog/google-chrome-helper-high-cpu-mac)

Browser storage is a cache and profile-management problem, not a reason to reset macOS.
Measure the profile tree, clear disposable caches first, and treat logins and site
databases as user data even when they sit next to a folder named Cache.

## Measurement order when several browsers are installed

Safari, Chrome, and Arc side by side is the normal case, and guessing which one is heaviest
wastes a pass. Sort the roots by total size first, then decide which tree to drill:

```
du -sh ~/Library/Application\ Support/Google/Chrome \
  ~/Library/Application\ Support/Arc \
  ~/Library/Containers/com.apple.Safari \
  ~/Library/Application\ Support/Firefox 2>/dev/null | sort -h
```

Start at the largest root. A single abandoned profile is often enough to account for the
growth in System Data you could not place, so measure before you suspect macOS itself.

## Site data and extensions: what to tick

When disk space is the only goal:

- Tick cached files.
- Leave cookies, passwords, and autofill unticked.
- Review extensions one at a time; uninstalling one you stopped using takes its local store
  with it, which is more controlled than wiping every store at once.

To reset a single site completely, use the browser's own delete-data-for-this-site control
instead of the profile directory. It touches that one origin and nothing else.

## Why browser profiles land in System Data

A large browser profile is usually counted as System Data. Clear 20 GB of cache out of the
profile tree and that figure can lag a day or two before it reclassifies, so read `du` and
actual free space rather than watching the category bar. More on why the bar drifts in
[System Data](https://mole.fit/blog/what-is-system-data-on-mac).

## FAQ

### Will clearing browser storage log me out of websites?

Only if you clear cookies. Caches, Service Worker storage, and GPU caches are rebuildable and hold no login state, so a cache-only cleanup keeps every session alive.

### Why does browser storage show up under System Data?

Browser profiles live in `~/Library`, and macOS storage settings fold most of that tree into the System Data bar, so a 10 GB profile inflates a number that looks unrelated to any browser.

### Are old updater files and abandoned profiles safe to remove?

Yes, once you confirm the owner: an uninstalled browser's whole profile folder and its updater directories serve nothing. For a browser you still use, remove only profiles you have verified are no longer listed in its profile manager.

---

Canonical HTML page: https://mole.fit/blog/how-to-free-up-browser-storage-mac
Blog index for agents: https://mole.fit/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
