Empty Cache and Hard Reload in Chrome, explained

Guides · Updated

With DevTools open, Chrome's reload button has three modes. Two of them delete nothing. The third deletes the cache of every site in your Chrome profile to refresh the one you're looking at.

Short answer: Hard Reload (Ctrl+Shift+R, Cmd+Shift+R on Mac) fetches the page fresh for one load and deletes nothing. Empty Cache and Hard Reload deletes Chrome's cache for every site, then does a hard reload. Neither touches cookies, localStorage, IndexedDB, Cache Storage or service workers.

Opening the menu

  1. Open DevTools: F12, or Ctrl+Shift+I (Cmd+Option+I on Mac).
  2. Right-click the reload button, or press and hold it for half a second.
  3. Choose Normal Reload, Hard Reload or Empty Cache and Hard Reload.

Empty Cache and Hard Reload not showing?

The menu only appears while DevTools is attached to the tab you're on, and not while the page is still loading: the button is a stop button then. Empty Cache and Hard Reload has no keyboard shortcut. Shift-clicking or Ctrl-clicking the reload button does a hard reload, with or without DevTools.

Reload shortcuts on Windows and Mac

Keyboard shortcuts for Chrome's reload options
Option Windows and Linux Mac
Normal ReloadF5 or Ctrl+RCmd+R
Hard ReloadCtrl+Shift+R, Shift+F5 or Ctrl+F5Cmd+Shift+R
Empty Cache and Hard Reloadno shortcutno shortcut

Normal Reload

F5 or Ctrl+R (Cmd+R on Mac). Chrome asks the server whether the page itself has changed, and loads everything else under the usual cache rules: scripts, styles and images that are still fresh come straight from the cache.

Hard Reload (a hard refresh)

Ctrl+Shift+R, Shift+F5 or Ctrl+F5 (Cmd+Shift+R on Mac).

  • Skips the HTTP cache and the site's service worker for this one load. The page and every file it requests until it finishes loading come from the server.
  • Deletes nothing. The fresh copies replace the cached ones.
  • Requests made after the page has loaded, such as lazy-loaded images or a fetch() when you click something, use the cache as usual. A fetch() that sets its own cache option keeps it.
  • It sends Cache-Control: no-cache, which asks proxies and CDNs for a fresh copy too. That's advisory: they don't have to listen.
  • The service worker sits this load out: navigator.serviceWorker.controller is null after a hard reload.

Empty Cache and Hard Reload

Only in the DevTools menu. First it deletes Chrome's cache for every site in this Chrome profile, from all time, not just the site you're on. Then it does a hard reload.

Chrome's other caches go with it: compiled JavaScript, pages kept for the Back button, CORS preflight answers, and the HTTPS-only (HSTS) rules sites have sent. Chrome's built-in HSTS list stays. Cookies stay too, so it signs you out of nothing, but every site you open next downloads its files again.

The Network panel's Clear browser cache (right-click the list of requests) does the same all-site clear, without the reload.

What none of them touch

Cookies, localStorage, sessionStorage, IndexedDB, Cache Storage and service worker registrations. Chrome stores each of these apart from the cache, and the reload menu only ever clears the cache. If a site keeps its state in any of them, every reload brings that state back.

When a hard reload or Ctrl+F5 changes nothing

  • A service worker is serving old files. A hard reload skips it once, but it stays registered and its Cache Storage stays full, so the next normal load can serve the old files again. Unregister it with the Unregister service workers box under Application, Storage, or tick Bypass for network under Application, Service workers while you work.
  • The stale data isn't in the cache. It's in localStorage, IndexedDB or sessionStorage, which survive every reload. Clear them under Application, Storage (how, for one site).
  • A CDN or proxy still has the old copy. Nothing in Chrome can empty another server's cache. Purge it at the CDN.
  • An old redirect. A permanent redirect (301) can be cached, so it can outlive its removal on the server.
  • HTTPS-only rules. Once a site has told Chrome to use HTTPS only, Chrome upgrades its http:// links by itself. Empty Cache clears those learned rules for every site; chrome://net-internals/#hsts deletes one domain's.
  • You pressed Back. Back and Forward can show a page kept in memory instead of loading it again. Reload it.

While you're developing, tick Disable cache in the Network panel. While DevTools is open, every request skips the cache, including the ones made after the page loads. It doesn't skip the service worker: that's the Bypass for network box.

Side by side

What each reload option and CacheSweeper do in Chrome
What happens Normal Hard Empty Cache CacheSweeper
Reloads the tabYesYesYesYes
Skips the cache for that loadchecks pageYesYesPremium, opt-in
Deletes cached filesNoNoevery sitethis site
Deletes cookies and storageNoNoNothis site
Unregisters service workersNoNoNoPremium
Needs DevTools openNoNoYesNo

Normal Reload checks the page itself with the server and takes the rest from the cache when it's still fresh. CacheSweeper's storage covers cookies, localStorage, IndexedDB and Cache Storage. Its free clear deletes the site's cached files before it reloads, so they come from the server anyway; files the site loads from another domain, such as a CDN, stay cached.

In one step

Empty Cache and Hard Reload throws away every site's cache to refresh one. CacheSweeper is our extension for clearing just the site you're on: click its toolbar icon or press Ctrl+Shift+X and it clears that site's cached files, cookies, localStorage, IndexedDB and Cache Storage, reloads the tab and, with per-origin scope on (the default), leaves every other site's cache and storage alone. DevTools doesn't need to be open, and all of that is free. Premium adds sessionStorage in every open tab, service worker unregistering and an optional reload that bypasses the cache.

See exactly what it clears on the features list, or compare Free and Premium. To clear one site by hand, see how to clear cache and cookies for one site in Chrome.

Sources

Checked against Chrome's documentation and Chromium's source code in September 2026.