Chrome does not have one cache. It has at least six: the HTTP cache, the back-forward cache, the DNS cache, the service worker cache, the shader cache, and the code cache. The standard "Clear browsing data" dialog only touches one of them.
Full disclosure: I built these tools as part of Zovo, a collection of Chrome extensions I maintain at zovo.one. Take my perspective accordingly.
A stale CSS file causing a broken layout requires a different clearing method than a cached API response returning outdated data, which is different from a cached DNS entry pointing to the wrong server. I have spent enough time debugging Chrome behavior to know which cache to clear and when.
When Clearing Cache Actually Helps
Before you clear anything, verify cache is the actual problem. Clearing cache forces Chrome to re-download everything, which slows browsing until the cache rebuilds.
Clear cache when:
- A website shows outdated content (old CSS, stale images, wrong layout)
- A web app is stuck in a broken state after a deploy
- You see
ERR_CACHE_MISSor similar errors - Storage space is critically low
- You are a developer testing changes Chrome is caching aggressively
Do not clear cache when:
- Chrome is running slowly (cache speeds things up, close tabs instead)
- Websites are not loading at all (that is a network issue)
- You want to "clean up" Chrome (cache is there to improve performance)
The Fast Methods
Hard refresh (per-page): Press Ctrl+Shift+R (Windows/Linux) or Cmd+Shift+R (macOS). This bypasses cache for the current page only. Use this 90% of the time.
Full clear via keyboard: Press Ctrl+Shift+Delete (Windows/Linux) or Cmd+Shift+Delete (macOS). Check only "Cached images and files," select your time range, click Delete.
Empty cache + hard reload (DevTools): Open DevTools with F12, then right-click the reload button and select "Empty cache and hard reload." This clears everything for the current site and forces a full reload. This option only appears while DevTools is open.
Selective Cache Clearing
The most useful method most developers miss: clearing cache for a single site.
- Visit the site.
- Click the lock/info icon in the address bar.
- Click "Site settings."
- Click "Clear data."
This removes cached data, cookies, and permissions for that one site. Everything else stays intact.
For even more granular control, open DevTools, go to the Application tab, and click "Clear site data" under Storage. You can selectively clear cache storage, cookies, IndexedDB, local storage, and session storage independently.
The Other Caches
DNS Cache
Chrome maintains its own DNS cache separate from the OS. If a site recently changed servers and you are hitting the old IP:
- Navigate to
chrome://net-internals/#dns - Click "Clear host cache"
To also clear stale connections, go to chrome://net-internals/#sockets, click "Close idle sockets," then "Flush socket pools."
Service Worker Cache
Modern web apps cache resources through service workers independently of the HTTP cache. These persist even when you clear standard browsing data.
Open DevTools, go to the Application tab, expand "Cache Storage" in the sidebar. Each service worker cache is listed by name. Right-click entries to delete individual items, or clear the whole thing.
Back-Forward Cache (bfcache)
Chrome stores complete page snapshots in memory for instant back/forward navigation. The standard clear dialog does not touch this. To flush it: navigate away, close the tab, open a new one. For testing, disable it at chrome://flags by searching "back-forward cache."
Code Cache and Shader Cache
These store compiled JavaScript bytecode and GPU shaders. You can only clear them from the file system:
# macOS
rm -rf ~/Library/Application\ Support/Google/Chrome/Default/Code\ Cache/*
rm -rf ~/Library/Application\ Support/Google/Chrome/Default/GPUCache/*
# Linux
rm -rf ~/.config/google-chrome/Default/Code\ Cache/*
rm -rf ~/.config/google-chrome/Default/GPUCache/*
On Windows PowerShell:
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Code Cache\*"
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\GPUCache\*"
Close Chrome before running these.
DevTools: Disable Cache While Developing
If you are actively developing, check "Disable cache" in the DevTools Network tab. With this enabled, Chrome skips the cache for all requests while DevTools is open. It only applies to the tab with DevTools. Other tabs still use cache normally.
This is the cleanest approach for development. No need to repeatedly clear cache.
Automated Cache Clearing
I run a weekly cron job to keep cache size manageable:
# Add to crontab
0 3 * * 0 pkill -f "Google Chrome" && sleep 5 && rm -rf ~/Library/Application\ Support/Google/Chrome/Default/Cache/Cache_Data/* && echo "Cache cleared $(date)" >> ~/chrome-cache-clear.log
Chrome's cache typically caps at 256MB to 1GB depending on available disk space. Unless you are low on storage, automated clearing is optional.
Quick Reference
| Action | Windows/Linux | macOS |
|---|---|---|
| Open Clear Browsing Data | Ctrl+Shift+Delete |
Cmd+Shift+Delete |
| Hard refresh (bypass cache) | Ctrl+Shift+R |
Cmd+Shift+R |
| Open DevTools | F12 |
Cmd+Option+I |
Chrome 134 uses a dual-keyed caching system partitioned by top-level site. Cached resources are isolated per website, which means clearing cache for one site does not affect other sites, and resources cached on one site cannot be reused by another. This is a privacy feature that prevents cache-based tracking.
I build Chrome extensions at zovo.one. All 16 are free, open source, and collect zero data.
Top comments (0)