Como os Navegadores Fazem Cache de Favicons
Os navegadores fazem cache de favicons de forma agressiva e os armazenam separadamente do cache da própria página, muitas vezes mantendo um ícone por dias, independentemente de um reload normal. É por isso que um favicon alterado tão frequentemente continua mostrando a imagem antiga. A forma confiável de forçar uma atualização é mudar a URL do ícone (geralmente uma query string de versão como /favicon.ico?v=2) e fazer um hard-refresh.
Por que os favicons são tão persistentes
Favicons recebem tratamento especial. Os navegadores os mantêm em um armazenamento separado do cache HTTP normal, os guardam com um tempo de vida longo e não necessariamente os descartam em um reload comum. Alguns mantêm um banco de dados de favicons no nível do perfil que sobrevive entre sessões. Uma CDN na frente do seu site adiciona um segundo cache por cima.
O resultado é que editar o arquivo do ícone no lugar costuma ser invisível: o navegador já tem um ícone para aquela URL e não vê razão para perguntar de novo. Ele é indexado pela URL, então a solução é mudar a URL, não apenas os bytes por trás dela.
Force um favicon novo
- 1
Mude a URL
Acrescente uma query string de versão (/favicon.ico?v=2) para que o navegador o trate como um novo recurso e o busque. Aumente o número a cada mudança.
- 2
Faça hard-refresh ou use uma janela privada
Cmd+Shift+R / Ctrl+F5, ou uma janela privada nova, ignora a cópia armazenada do navegador.
- 3
Limpe qualquer CDN
Se uma CDN estiver na frente do site, invalide o caminho do favicon para que os nós de borda parem de servir o arquivo antigo antes que o navegador o veja.
Perguntas frequentes sobre cache de favicon
Por que meu favicon não atualiza?
O navegador está servindo uma cópia em cache do seu armazenamento separado de favicons, ou uma CDN está entregando o arquivo antigo. Mude a URL do ícone com uma query string de versão e faça hard-refresh em uma janela privada.
Como limpo o cache de favicon?
Não há um botão confiável de limpeza por ícone, então mude a URL em vez disso (/favicon.ico?v=2), o que contorna o cache por completo. Se isso falhar, uma janela privada ou um perfil de navegador diferente não têm nenhum ícone armazenado.
O cache de favicon difere entre navegadores?
Sim. Cada navegador, e muitas vezes cada perfil, mantém seu próprio armazenamento de favicons com seu próprio tempo de vida, e é por isso que um ícone pode parecer atualizado em um navegador e desatualizado em outro ao mesmo tempo.