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.

Agende sua consultoria wordpress comigo.


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)?