Tempo de leitura: 3 minutos

A otimização de fontes com font-display: swap é essencial para melhorar a experiência do usuário, permitindo que o texto seja exibido imediatamente com uma fonte alternativa enquanto a fonte personalizada é carregada, evitando telas em branco e melhorando significativamente os tempos de carregamento.

Implementar esta técnica pode reduzir o Cumulative Layout Shift (CLS) e melhorar a First Contentful Paint (FCP), métricas importantes para o Core Web Vitals do Google, impactando diretamente o SEO e a satisfação do usuário ao navegar pelo seu site.

Por que otimizar o carregamento de fontes é crucial para seu site

Quando um usuário acessa seu site, cada milissegundo conta. Fontes personalizadas podem adicionar caráter e identidade visual à sua página, mas também podem se tornar um gargalo de desempenho se não forem carregadas corretamente.

O problema ocorre quando o navegador bloqueia a renderização do texto enquanto aguarda o download completo da fonte personalizada. Isso resulta no temido “Flash of Invisible Text” (FOIT), onde os usuários veem áreas em branco onde deveria haver texto.

A propriedade font-display: swap resolve este problema permitindo que o navegador use imediatamente uma fonte alternativa (geralmente uma fonte do sistema) enquanto a fonte personalizada está sendo carregada. Quando a fonte personalizada finalmente carrega, ela “substitui” a fonte alternativa sem interromper a experiência do usuário.

Como verificar se suas fontes estão utilizando font-display: swap

Inspeção manual do código CSS

A maneira mais direta de verificar se suas fontes estão utilizando font-display: swap é inspecionar seu código CSS. Procure por declarações @font-face e verifique se incluem a propriedade font-display: swap, como no exemplo:

@font-face {
font-family: ‘MinhaFonte’;
src: url(‘/caminho/para/minhafonte.woff2’) format(‘woff2’);
font-weight: normal;
font-style: normal;
font-display: swap;
}

Usando ferramentas de auditoria de desempenho

Várias ferramentas podem ajudar a identificar problemas com o carregamento de fontes:

  • Lighthouse: Esta ferramenta integrada ao Chrome DevTools inclui uma auditoria específica para “Ensure text remains visible during webfont load”.
  • PageSpeed Insights: Fornece recomendações sobre otimização de fontes.
  • WebPageTest: Permite visualizar como as fontes são carregadas ao longo do tempo.

Como implementar font-display: swap em diferentes cenários

CSS local (@font-face)

Se você está hospedando suas próprias fontes, adicione font-display: swap à sua declaração @font-face:

@font-face {
font-family: ‘MinhaFonte’;
src: url(‘/fonts/minhafonte.woff2’) format(‘woff2’);
font-weight: normal;
font-style: normal;
font-display: swap;
}

Google Fonts

Para fontes do Google Fonts, você pode adicionar o parâmetro &display=swap à URL:

Adobe Fonts (Typekit)

O Adobe Fonts aplica automaticamente estratégias de carregamento de fontes, mas você pode adicionar CSS personalizado para garantir o comportamento de swap:

html.wf-loading {
font-display: swap;
}

“A otimização de fontes é frequentemente negligenciada, mas pode ter um impacto significativo no desempenho percebido. Implementar font-display: swap é uma das otimizações mais simples e eficazes que você pode fazer.” – Addy Osmani, Engenheiro de Performance do Google

Benefícios mensuráveis da implementação de font-display: swap

A implementação desta técnica traz benefícios concretos:

  • Melhoria nas métricas Core Web Vitals: Redução do CLS e melhoria do FCP.
  • Melhor experiência do usuário: Conteúdo visível imediatamente, sem esperas.
  • Redução da taxa de rejeição: Usuários têm menos probabilidade de abandonar seu site enquanto esperam pelo carregamento.
  • Potencial melhoria no SEO: O Google considera a velocidade e experiência do usuário em seus rankings.

Estratégias avançadas para otimização de fontes

Precarregamento de fontes críticas

Para fontes essenciais, considere usar a tag link com rel=”preload”:

Isso informa ao navegador para começar a baixar a fonte o mais cedo possível, mesmo antes de encontrar a referência no CSS.

Subconjuntos de fontes

Considere usar subconjuntos de fontes que incluam apenas os caracteres necessários para seu site, reduzindo significativamente o tamanho do arquivo:

@font-face {
font-family: ‘MinhaFonte’;
src: url(‘/fonts/minhafonte-subset.woff2’) format(‘woff2’);
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC;
font-display: swap;
}

Fontes variáveis

As fontes variáveis permitem múltiplos pesos e estilos em um único arquivo, reduzindo o número de arquivos a serem baixados:

@font-face {
font-family: ‘MinhaFonteVariavel’;
src: url(‘/fonts/variavel.woff2’) format(‘woff2-variations’);
font-weight: 100 900;
font-display: swap;
}

“A estratégia font-display: swap é como um plano de contingência para sua tipografia. Ela garante que seus usuários possam consumir seu conteúdo imediatamente, mesmo quando as condições de rede não são ideais.” – Zach Leatherman, especialista em fontes web e criador do Fontspeed

Testando a eficácia da sua implementação

Após implementar font-display: swap, é importante verificar se está funcionando corretamente:

  1. Teste em diferentes condições de rede: Use as ferramentas de throttling do Chrome DevTools para simular conexões lentas.
  2. Verifique o comportamento visual: Observe se o texto aparece imediatamente, mesmo que com uma fonte diferente.
  3. Compare métricas antes e depois: Use o Lighthouse para medir o impacto nas métricas de desempenho.
  4. Teste em dispositivos reais: O comportamento pode variar entre dispositivos e navegadores.

Considerações finais sobre otimização de fontes

A implementação de font-display: swap é apenas uma parte de uma estratégia abrangente de otimização de fontes. Considere também:

  • Limitar o número de variações de fontes usadas
  • Usar formatos modernos como WOFF2 que oferecem melhor compressão
  • Balancear estética e desempenho em suas escolhas tipográficas
  • Monitorar continuamente o impacto das fontes no desempenho geral

Implementar font-display: swap é um passo relativamente simples que pode trazer benefícios significativos para a experiência do usuário e o desempenho do seu site. Esta otimização demonstra atenção aos detalhes e compromisso com a qualidade técnica do seu projeto.

Você já verificou o impacto das suas fontes nas métricas de Core Web Vitals? Quais outras otimizações de desempenho você está considerando implementar no seu site?

Avatar de Rafael P.

Perguntas Frequentes

O que é a propriedade font-display no CSS?

A propriedade font-display é uma regra CSS que controla como e quando as fontes são exibidas durante o carregamento de uma página da web. Ela permite definir o comportamento do texto enquanto as fontes personalizadas estão sendo carregadas.

Como a opção ‘swap’ funciona dentro da propriedade font-display?

Quando você usa ‘font-display: swap’, o navegador exibe uma fonte de fallback (geralmente, uma fonte padrão do sistema) imediatamente, enquanto a fonte personalizada é carregada. Assim que a fonte personalizada está disponível, ela substitui a fonte de fallback.

Quais são os benefícios de usar font-display: swap?

Os principais benefícios incluem a eliminação do problema de texto invisível (FOUC – Flash of Unstyled Content) e a melhoria nas métricas de performance, já que o conteúdo é exibido mais rapidamente, resultando em uma melhor experiência do usuário.

Esse método de carregamento de fontes afeta a SEO do meu site?

Sim, usar ‘font-display: swap’ pode ter um impacto positivo na SEO, pois melhora a experiência do usuário ao reduzir o tempo em que o conteúdo é invisível, o que pode levar a taxas de rejeição mais baixas e maior engajamento.

Há desvantagens em usar font-display: swap?

Embora ‘font-display: swap’ traga muitos benefícios, uma desvantagem é que o texto pode parecer diferente temporariamente até que a fonte personalizada seja carregada. Isso pode causar uma mudança visual que, em alguns casos, pode ser indesejável.

O caminho até aqui

Início » Checklist » Otimizações de Performance Avançada » O carregamento de fontes está otimizado (font-display: swap)?

Somente membros podem interagir com o conteúdo.