This is one of the most common sources of favicon-related confusion: everything appears correctly configured, the new file is uploaded, the HTML looks right — and yet the old favicon stubbornly persists. Nearly always, this is a caching issue rather than an actual configuration problem.
Why browsers cache favicons so aggressively
Favicons are small, rarely-changing files, which makes them an ideal candidate for long-term browser caching — browsers are designed to avoid re-fetching a favicon on every single page load, since doing so would be wasteful for a file that essentially never changes for most sites. This reasonable optimization is exactly what causes the frustrating persistence of an outdated icon after an intentional update.
How to force your own browser to check for an update
- Hard refresh — a standard page refresh often isn't enough for favicon caching specifically; try a hard refresh (commonly Ctrl+Shift+R or Cmd+Shift+R) to bypass more of the browser's cache
- Open in a private/incognito window — this typically starts without any cached favicon data for your site, giving a clean test of whether the new file is actually being served correctly
- Clear your browser's cache entirely — more heavy-handed, but reliably clears any lingering favicon cache along with everything else
- Try a completely different browser — if a browser you've never used to visit the site shows the new favicon correctly, this confirms the server-side setup is correct and the issue is purely local caching in your usual browser
A more permanent fix: change the filename
A commonly used technique among developers to force a cache refresh for all visitors, not just yourself, is changing the actual filename of the favicon file (for example, from favicon.png to favicon-v2.png) and updating the HTML reference accordingly. Since it's technically a "new" file from the browser's perspective, this sidesteps the cache entirely rather than waiting for it to naturally expire.
Cache-busting query parameters
An alternative, similar technique appends a version query parameter to the existing filename in the HTML tag — for example, favicon.png?v=2 — which can achieve a similar cache-busting effect without renaming the underlying file itself, provided your server and CDN setup properly treat the different query string as a distinct resource for caching purposes.
Server and CDN caching, beyond just the browser
If your site uses a CDN (content delivery network) or server-side caching in addition to browser caching, the outdated favicon might be cached at that layer as well — a browser-side fix alone won't help other visitors if the CDN itself is still serving a stale cached version. Checking your specific hosting or CDN provider's cache-purging tools is worth doing if the issue persists for other people, not just your own browser.
Confirming the actual underlying file is correct first
Before assuming it's purely a caching issue, it's worth directly visiting the favicon file's URL (e.g., yoursite.com/favicon.ico) directly in a browser to confirm the server is actually serving the updated file — if the direct file URL still shows the old image, the problem is on the server/upload side, not just browser caching.
Patience is sometimes genuinely the answer
For other visitors who already have your old favicon cached, some caching behavior will naturally resolve itself over time as their own browser cache eventually expires and re-fetches the file — though this can reasonably take days to weeks depending on the specific caching headers your server sends, which is why the filename-change technique above is often the more reliable immediate fix for a broad audience.
Generate a fresh file to test with
If you're troubleshooting a favicon update, our free Favicon Generator can quickly produce a fresh, correctly-sized set to rule out any issue with the source image itself, leaving caching as the remaining, most likely explanation.
Keep reading: