Favicons por plataforma
Os arquivos de ícone são os mesmos em todo lugar. Onde eles ficam, não. Escolha seu stack e siga um guia escrito para as convenções dele: 14 no total, com os caminhos de arquivo e a configuração reais.
Framework
O Next.js resolve os ícones a partir de arquivos, não das tags link que você escreve à mão. Coloque o nome de arquivo certo no diretório certo e o framework emite a marcação para você.
Ver o guiaO React nunca toca no head do documento. Seus links de ícones vão no esqueleto HTML, e qual arquivo é esse depende de o projeto ter sido criado com Create React App ou com Vite.
Ver o guiaUm componente single-file do Vue não consegue renderizar uma tag link no head. Os ícones são declarados no index.html, que fica na raiz do projeto no Vite e dentro de public/ no Vue CLI.
Ver o guiaO Angular copia arquivos estáticos apenas se a configuração de build mandar. Um arquivo que não é correspondido pela entrada assets no angular.json nunca chega ao dist/, não importa onde você o coloque no projeto.
Ver o guiaO SvelteKit copia tudo em static/ para a raiz do build, e o esqueleto do documento é src/app.html, e não um componente. As tags de ícone pertencem ali para estarem no HTML servido antes de qualquer JavaScript rodar.
Ver o guiaO Nuxt injeta um link para /favicon.ico em toda página por padrão, então um projeto novo registra um 404 para ele até você colocar um arquivo em public/. Os ícones restantes são declarados no bloco app.head do nuxt.config.
Ver o guiaO Vite é incomum ao tratar o index.html como código-fonte, e não como um asset estático: ele fica na raiz do projeto e é reescrito em tempo de build. Tudo em public/ é copiado para a raiz de saída sem alteração.
Ver o guiaSite estático
O Astro processa e gera fingerprint nos assets importados de src/, e copia public/ para a saída do build exatamente como o encontrou. Os ícones precisam de nomes de arquivo estáveis, então ficam em public/ e são vinculados a partir de um layout.
Ver o guiaO Gatsby é a única stack aqui que gera o conjunto de ícones para você. O gatsby-plugin-manifest pega uma única imagem de origem nomeada no gatsby-config.js e produz os tamanhos, o web app manifest e as tags link em tempo de build.
Ver o guiaO Hugo copia static/ para a raiz do site publicado, mas a marcação do head pertence a qualquer tema que você instalou. O truque é sobrepor o partial do tema a partir do seu próprio projeto, em vez de editar arquivos em themes/.
Ver o guiaCMS
O WordPress não quer uma pasta de arquivos de ícone. Você envia uma imagem quadrada como o Ícone do Site, e o núcleo a recorta nos tamanhos que serve e imprime as tags link em todas as páginas.
Ver o guiaEcommerce
No Shopify, o favicon é uma configuração de tema apoiada pelo CDN de imagens, não um arquivo que você coloca num servidor. O tema decide quais tags são renderizadas, e a maioria dos temas renderiza exatamente uma.
Ver o guiaNo-code
O Squarespace chama o favicon de ícone do navegador, e é uma imagem quadrada enviada nas configurações do site. Não há sistema de arquivos nem template para editar, então esse único upload é a maior parte do que você tem.
Ver o guiaO Wix vincula o favicon personalizado a um plano pago com um domínio conectado. Um site ainda em um subdomínio wix.com mostra o ícone do próprio Wix, não importa o que você envie. Não há sistema de arquivos nem head para editar.
Ver o guia