Como colocar um favicon
Salve o seu ícone no site e aponte para ele com uma tag <link rel="icon"> no <head>:
<link rel="icon" href="/favicon.ico">
Essa é a resposta completa para um site básico. O href pode apontar para um arquivo .ico, .png ou .svg. O exemplo abaixo usa um SVG escrito direto no href como data URI, então não precisa de arquivo separado. Uma prévia dentro de outra página não consegue mudar a aba do seu navegador, então o script desenha o mesmo ícone numa aba simulada e em três tamanhos:
Em 16 pixels só cabe uma letra em negrito ou uma forma simples, e os detalhes finos somem. Desenhe o ícone pensando primeiro no menor tamanho. Troque fill='%232563eb' por outra cor (%23 é o # codificado para URL) e todas as cópias são atualizadas.
Quais arquivos publicar
Navegadores, celulares e launchers de apps procuram ícones diferentes. Um conjunto pequeno cobre todos:
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/manifest.webmanifest">
| Arquivo | Tamanho | Usado para |
|---|---|---|
favicon.ico | 32×32 | Abas do navegador, e ferramentas que só procuram /favicon.ico |
icon.svg | Qualquer (vetor) | Abas nítidas em qualquer densidade de tela, no Chrome, Edge e Firefox |
apple-touch-icon.png | 180×180 | O ícone quando alguém adiciona o seu site à tela inicial de um iPhone ou iPad |
| Ícones do manifest | PNG de 192×192 e 512×512 | Tela inicial do Android e web apps instalados |
A maioria dos navegadores também pede /favicon.ico na raiz do site por conta própria quando uma página não tem link de ícone, então colocar um favicon.ico ali é um padrão útil. O atributo sizes diz ao navegador o tamanho de cada arquivo, para que ele escolha o mais adequado. Use rel="icon"; o antigo rel="shortcut icon" só funciona porque os navegadores ignoram a palavra a mais.
Um favicon com emoji
Para um protótipo ou uma página pessoal, um emoji vira um favicon rápido. Coloque-o dentro de um elemento <text> de SVG:
%F0%9F%8D%AA é o emoji de cookie, codificado para URL. O emoji é desenhado pela fonte de emojis do sistema operacional, então fica diferente no Windows, no macOS e no Android, e para um produto de verdade um ícone desenhado é a escolha melhor.
Um ícone que acompanha o modo escuro
Um favicon SVG pode levar o seu próprio CSS, inclusive uma media query prefers-color-scheme, então um ícone escuro pode ficar claro quando o navegador usa um tema escuro:
<!-- icon.svg -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<style>
circle { fill: #111827; }
@media (prefers-color-scheme: dark) { circle { fill: #f9fafb; } }
</style>
<circle cx="16" cy="16" r="14"/>
</svg>
Trocando o favicon com JavaScript
Sites usam um favicon que muda para mostrar um ponto de notificação ou uma cor de status. Desenhe o novo ícone num <canvas> e defina o href do link com a imagem do canvas:
Numa página real no Chrome ou no Firefox, o ícone da aba muda a cada vez que o href é definido, no mesmo momento em que a imagem da prévia muda aqui.
Erros comuns
- Um caminho errado.
href="favicon.ico"é relativo à página atual, então quebra em/blog/post. Use um caminho a partir da raiz:href="/favicon.ico". - Esperar que uma atualização apareça na hora. Os navegadores guardam favicons em cache com força. Recarregue limpando o cache, ou mude a URL (
/favicon.ico?v=2) quando trocar o ícone. - Um logo cheio de detalhes reduzido a 16 pixels. Simplifique: uma letra ou uma forma com contraste forte.
- Só um SVG. Mantenha também um ICO ou PNG para navegadores sem suporte a favicon SVG, e adicione o
apple-touch-iconpara o iOS. - Colocar o link no
<body>. Mantenha-o no<head>, junto com a tag title e os outros metadados.
Perguntas frequentes
Como colocar um favicon no HTML?
Coloque o arquivo do ícone no seu site e adicione <link rel="icon" href="/favicon.ico"> (ou o caminho de um PNG ou SVG) dentro do <head>. Os navegadores passam a mostrá-lo na aba, nos favoritos e no histórico.
Qual deve ser o tamanho de um favicon?
Publique um favicon.ico de 32×32 (ou PNG) para as abas, um SVG que escala para qualquer tamanho e um PNG apple-touch-icon de 180×180 para a tela inicial do iPhone. Web apps com manifest também listam PNGs de 192×192 e 512×512.
Por que meu favicon não aparece?
As causas comuns são um caminho errado no href, o <link> fora do <head> ou o navegador ainda mostrando um ícone antigo em cache. Abra a URL do ícone direto para conferir o caminho, depois recarregue limpando o cache ou adicione uma versão como ?v=2 à URL.
Posso usar SVG ou PNG como favicon?
Sim. Use <link rel="icon" href="/icon.svg" type="image/svg+xml"> ou <link rel="icon" href="/icon.png" type="image/png">. SVG funciona no Chrome, no Edge e no Firefox; mantenha também um ICO ou PNG para os navegadores sem suporte.
Preciso de rel="shortcut icon"?
Não. rel="icon" é o valor padrão. A palavra shortcut é uma sobra do antigo Internet Explorer e não faz nada nos navegadores atuais.
Posso usar um emoji como favicon?
Sim, envolvendo-o num SVG: uma data URI SVG com um elemento <text> contendo o emoji. É prático para protótipos, mas o emoji fica diferente em cada sistema operacional.