Favicon do Next.js não atualiza? Veja a correção
O arquivo mudou e a aba não. No Next.js isso é um de três caches: o armazenamento de favicon do navegador, um build .next desatualizado, ou um CDN servindo os bytes antigos. Descarte-os nessa ordem.
Confirme primeiro que o arquivo de fato mudou
Antes de mexer nos caches, abra /favicon.ico diretamente. Se a imagem antiga carregar ali, o novo arquivo nunca foi servido (um problema de build ou de localização) e nenhum hard-refresh ajuda. Corrija isso primeiro.
Se a URL direta mostra o ícone novo mas a aba ainda mostra o antigo, é um cache de verdade. Os navegadores fazem cache de favicons de forma mais agressiva do que quase qualquer outro asset e os mantêm separados da página.
Limpe os caches em ordem
- 1
Faça um hard-refresh em uma janela anônima
Cmd+Shift+R ou Ctrl+F5, ou uma nova janela anônima. Isso limpa o próprio armazenamento de favicon do navegador, que é o culpado mais comum.
- 2
Apague o .next e recompile
Um build desatualizado pode continuar emitindo o ícone antigo. Remova o diretório .next e recompile para que o Next releia os arquivos do seu diretório app.
- 3
Limpe o cache do CDN ou da plataforma
Na Vercel ou em qualquer CDN, a edge pode servir o /favicon.ico antigo depois de um redeploy. Invalide esse caminho, depois reabra a URL direta.
Favicon do Next.js não atualiza: perguntas frequentes
Por que meu favicon do Next.js não atualiza?
Ou o novo arquivo nunca foi servido (confira /favicon.ico diretamente) ou um cache está segurando o antigo. Os navegadores fazem cache de favicons de forma agressiva, e um build .next desatualizado ou um CDN pode continuar emitindo o arquivo anterior depois de um deploy.
Como forço a atualização do favicon no Next.js?
No Pages Router, anexe uma query string de versão ao href do link. No App Router você não pode, já que a tag é gerada: mude o arquivo e faça redeploy, apague o .next para limpar um build desatualizado e limpe o CDN.
Atualiza localmente mas não na Vercel.
O cache da edge está servindo o /favicon.ico antigo. Confirme que o deploy realmente contém o novo arquivo, depois limpe ou faça redeploy para que a edge o busque de novo, e confira a URL direta em uma janela anônima.