Favicon ToolsVerificarCriar
Solução de problemas
Básico

Favicon não aparece ou não atualiza? 9 causas e soluções

· 7 min read

As nove causas que quebram favicons, e a solução exata para cada uma. Nove em cada dez vezes é cache, então comece por aí e desça pela tabela.

<link rel="icon" href="/favicon.ico?v=2" sizes="any">

Mudar a URL é o que faz o navegador buscar um arquivo novo. Editar o ICO no lugar não é suficiente.

Causas e soluções

CausaPor que quebraSolução
1. Cache do navegador ou do CDNNavegadores fazem cache de favicons mais agressivamente que quase qualquer outro recurso, e um CDN na frente adiciona uma segunda camada.Force um refresh (Cmd+Shift+R / Ctrl+F5) e acrescente uma query string de versão para que a própria URL mude.
2. Caminho de arquivo erradoUm caminho relativo é resolvido a partir da página atual, não da raiz.Use uma barra inicial, /favicon.ico, e confirme que o arquivo de fato carrega naquela URL em uma nova aba.
3. Tags link faltando ou mal formadasNenhum link de ícone, um erro de digitação em rel="icon", ou tags fora do <head> impedem o navegador de encontrar o arquivo.Valide o markup no seu layout compartilhado.
4. Formato ou tamanho erradoUm favicon pequeno demais, o MIME type errado ou um .ico corrompido podem falhar em renderizar silenciosamente.Reexporte em um tamanho e formato suportados, e sirva-o com o content type correto. Compare ICO x PNG e confira os tamanhos de favicon necessários.
5. Apple touch icon não atualizaO iOS ignora o favicon.ico e usa o apple-touch-icon. Se ele estiver faltando ou desatualizado, a tela inicial mostra a coisa errada.Corrija o link do apple-touch-icon, depois remova e readicione a página à tela inicial.
6. Problemas com o ícone do manifestNo Android e em PWAs instalados, o ícone vem do manifest.json. Um caminho ruim ou tamanho errado ali quebra os ícones da tela inicial e da splash.Corrija os caminhos e tamanhos de ícone no manifest.json, depois reinstale o app.
7. A saída do build remove suas tagsAlguns frameworks reescrevem o head do documento, então tags link escritas à mão não sobrevivem ao build.Siga o guia da sua stack: Next.js, React, WordPress ou Shopify.
8. Um tema ou CMS injeta seu próprio íconeUm tema pode definir seu próprio ícone de site, que sobrepõe o que você adicionou no markup.Defina o ícone pela configuração de ícone de site da própria plataforma, e não no template.
9. Um cache de build serve um arquivo desatualizadoO cache do build ou da plataforma continua entregando o ícone antigo mesmo depois de você fazer o redeploy.Limpe o cache do build/plataforma, faça o redeploy e verifique de novo.

Onde procurar em seguida

Formato ou tamanho suspeitos? Compare ICO x PNG no glossário e confira os tamanhos de favicon necessários. Problema no iOS? Leia o verbete sobre apple-touch-icon. Problema no manifest? Leia o que é manifest.json.

As causas 7 a 9 são as específicas de plataforma: alguns frameworks e CMSs sobrescrevem ou fazem cache do favicon de formas que o HTML puro não faz. A saída do build pode remover suas tags, um tema pode injetar seu próprio ícone, ou um cache de build pode servir um arquivo desatualizado. Os guias de Next.js, React, WordPress e Shopify cobrem, cada um, sua própria versão disso.

Como limpar um favicon em cache

  1. 1

    Acrescente uma query string de versão

    Mude o href do link para /favicon.ico?v=2 para que o navegador busque um arquivo novo.

  2. 2

    Force um refresh na página

    Use Cmd+Shift+R (macOS) ou Ctrl+F5 (Windows) para contornar o cache.

  3. 3

    Limpe qualquer cache de CDN

    Se houver um CDN na frente do seu site, invalide o caminho do favicon para que os nós de borda sirvam o arquivo novo.

Limpou o cache e continua igual?

O que você vêO que geralmente significaPróximo passo
404: favicon não encontradoO navegador pediu /favicon.ico e o servidor não tinha nada ali. Comum logo após um build de framework que nunca copiou o arquivo para a saída.Abra /favicon.ico diretamente. Se der 404, o arquivo não está no deploy. Isso é um problema de build ou de caminho, não de cache, então mexer no cache nunca vai ajudar.
O ícone antigo ainda carrega na URL diretaAbrir /favicon.ico mostra a imagem ANTIGA, ou seja, o próprio arquivo está desatualizado. Nenhum refresh forçado vai movê-lo.Uma etapa de build ou um CDN está entregando um arquivo antigo. Limpe o cache da plataforma/CDN, faça o redeploy e depois reabra a URL direta antes de checar a aba.
Arquivo certo na URL, ícone errado na abaA URL direta está correta, mas a aba continua errada. Uma segunda tag link (de um tema, de um plugin ou o padrão do framework) está passando à frente da sua.Veja o código-fonte e conte as tags rel="icon". O navegador pega a última que entende, então remova a perdedora em vez de adicionar uma terceira.
OK em um navegador, faltando em outroCada navegador, e cada perfil do Chrome, mantém seu próprio armazenamento de favicon, e alguns seguram uma entrada desatualizada por dias.Confirme em uma janela anônima nova ou em um perfil limpo antes de decidir que o site é o culpado.

Percorra essa tabela de cima para baixo. Cada linha elimina uma camada, então você para de adivinhar sobre o cache e começa a ler o que o servidor realmente retorna.

Tamanhos que os casos com falha exigem

Example favicon at 16 by 16 pixels
16px
Example favicon at 32 by 32 pixels
32px
Example favicon at 48 by 48 pixels
48px
Example favicon at 96 by 96 pixels
96px
Example favicon at 180 by 180 pixels
180px
Renderizado nas dimensões reais em pixels. O Google quer pelo menos 48×48 antes de mostrar um ícone na busca, e o iOS quer um apple-touch-icon de 180×180. Um ícone que só existe em 16px falha nos dois.

Confirme a solução com um scan

Adivinhar é lento. Rode um scan automatizado que busca seu site no ar, lista cada tag de favicon que encontra e sinaliza as que estão faltando ou quebradas, para você saber que a solução realmente pegou.

Quer testar manualmente em navegadores e dispositivos também? Veja como testar e verificar seu favicon.

Perguntas frequentes

Por que meu favicon não aparece?

As causas mais comuns são cache agressivo do navegador, um caminho de arquivo errado ou relativo, e tags <link> faltando ou mal formadas no <head>. Force um refresh, confirme que /favicon.ico resolve diretamente e cheque suas tags.

Como forço meu favicon a atualizar?

Acrescente uma query string de versão à URL do ícone, por exemplo /favicon.ico?v=2. Isso faz o navegador tratá-lo como um arquivo novo. Depois force um refresh ou limpe o cache do site.

Por que meu favicon aparece no desktop mas não no iPhone?

O iOS usa o apple-touch-icon, não o favicon.ico. Se aquele link de PNG 180×180 estiver faltando, o iOS recorre a um screenshot. Adicione um link apple-touch-icon e readicione a página à tela inicial.

Quanto tempo leva para um favicon atualizar na busca do Google?

O Google atualiza favicons quando recrawleia seu site, o que pode levar de dias a semanas. Garanta que o ícone tenha pelo menos 48×48, seja referenciado com uma tag rel=icon válida e esteja acessível ao Googlebot.

Por que aparece favicon não encontrado, ou retorna 404?

O navegador pediu o ícone pelo caminho e o servidor não tinha nada ali. Abra /favicon.ico diretamente em uma nova aba: se der 404, o arquivo nunca foi para o deploy naquela URL, geralmente um build de framework que não o copiou para a saída, ou um caminho errado na tag link. Corrija onde o arquivo cai, não o cache.

Meu favicon está faltando: onde o arquivo deveria realmente estar?

Para o clássico ícone de aba, um arquivo real na raiz do site para que /favicon.ico resolva. Frameworks mudam como ele chega lá: o Next.js lê app/favicon.ico, o Vite e a maioria dos SPAs copiam public/ para a raiz, e o WordPress ou o Shopify o servem por uma configuração de ícone de site em vez de um arquivo. Se a tag aponta para um lugar onde o build nunca gravou um arquivo, o ícone está 'faltando' mesmo que sua fonte pareça correta.

Tentei limpar o cache e continua igual. E agora?

Pare de limpar caches e leia o que o servidor retorna. Abra /favicon.ico diretamente: um 404 significa um problema de build ou de caminho, uma imagem antiga significa um arquivo de build ou CDN desatualizado, e o arquivo correto com o ícone errado na aba significa que uma segunda tag link está vencendo. Cada resultado aponta para uma solução diferente. Veja a tabela de escalonamento acima.

Generate your icon set

Keep reading