Updated September 2026
Why Your Favicon Isn't Updating (And How to Force a Refresh)
You replaced favicon.ico, reloaded the page, and… the old icon is still there. This is one of the
most common favicon complaints, and it is almost never a bug in your upload — it is the browser's cache, which
treats favicons very differently from the rest of a page.
Why favicons cache so stubbornly
Browsers cache favicons separately from normal page assets, often in their own dedicated store (Chrome, for example,
keeps a local Favicons database distinct from the regular HTTP disk cache). A normal page reload, or even a
hard refresh in some cases, does not always touch that store, because the browser is not treating the favicon as part of
the page it just reloaded — it is treating it as a property of the site, checked far less often.
Fixes that actually work, in order of how much control you have
-
Version the URL. The most reliable fix if you control the site's HTML: add a query string that
changes every time you update the icon, e.g.
<link rel="icon" href="/favicon.ico?v=2">. Browsers
cache by exact URL, so a new version string forces a fresh fetch. Bump the number (or use a build hash) every time you
change the icon.
-
Set explicit cache headers on the favicon file. If your server or CDN is serving
favicon.ico with a long Cache-Control: max-age (common, since it is a static file that
rarely changes), that header is honored on top of the browser's own favicon cache. Lowering it, or pairing it with
the versioned URL above, avoids stale copies being served from an intermediate cache too.
-
Clear the browser's favicon cache manually (useful for checking your own change, less realistic to
ask visitors to do). In Chrome/Edge, a full "Cached images and files" clear from Settings → Privacy usually
clears it; on some versions closing the browser after clearing history is needed before the new icon shows.
-
Try a private/incognito window. A fresh browsing context has no favicon cache yet, so it is the
fastest way to confirm whether your new icon is actually being served correctly, separate from whether your own
browser has simply cached the old one.
Checklist before you assume it's a caching problem
- Confirm the new file was actually uploaded to the right path — view
https://yoursite.com/favicon.ico
directly in a new tab to bypass the page entirely.
- Check you are not also referencing an old icon explicitly with a
<link rel="icon"> tag pointing at
a different, stale file than the one you updated.
- If you use a CDN in front of your site, purge that layer too — it caches independently of both your server and
the visitor's browser.
Once you have a design you are happy with, export it from the editor and reuse
the versioned-URL trick above every time you update it, so future changes show up immediately instead of fighting the
cache again.