Pré-carregar fontes da Web para melhorar a velocidade de carregamento

Garima Mimani
Garima Mimani

Este codelab mostra como pré-carregar fontes da Web usando rel="preload" para remover qualquer flash de texto sem estilo (FOUT, na sigla em inglês).

Medida

Avalie o desempenho do site antes de adicionar otimizações.

  1. Para visualizar o site, pressione Ver app. Em seguida, pressione Tela cheia modo tela cheia.
  2. Pressione "Control + Shift + J" (ou "Command + Option + J" no Mac) para abrir o DevTools.
  3. Clique na guia Lighthouse.
  4. Verifique se a caixa de seleção Desempenho está marcada na lista Categorias.
  5. Clique no botão Gerar relatório.

O relatório do Lighthouse gerado mostrará a sequência de busca de recursos em Latência máxima do caminho crítico.

Webfonts estão presentes na cadeia de solicitação crítica.

Na auditoria acima, as fontes da Web fazem parte da cadeia crítica de solicitações e são buscadas por último. A cadeia de solicitações crítica representa a ordem dos recursos que são priorizados e buscados pelo navegador. Nesse aplicativo, as fontes da Web (Pacfico e Pacifico-Bold) são definidas usando a regra @font-face e são o último recurso buscado pelo navegador na cadeia crítica de solicitações. Normalmente, as webfonts têm carregamento lento, o que significa que não são carregadas até que os recursos essenciais sejam baixados (CSS, JS).

Esta é a sequência dos recursos buscados no aplicativo:

As webfonts têm carregamento lento.

Pré-carregamento de fontes da Web

Para evitar a FOUT, pré-carregue as fontes da Web que são necessárias imediatamente. Adicione o elemento Link para este aplicativo no cabeçalho do documento:

<head>
 <!-- ... -->
 <link rel="preload" href="/assets/Pacifico-Bold.woff2" as="font" type="font/woff2" crossorigin>
</head>

Os atributos as="font" type="font/woff2" instruem o navegador a fazer o download desse recurso como uma fonte e ajudam na priorização da fila de recursos.

O atributo crossorigin indica se o recurso precisa ser buscado com uma solicitação de CORS, já que a fonte pode vir de um domínio diferente. Sem esse atributo, a fonte pré-carregada é ignorada pelo navegador.

Como Pacifico-Bold é usado no cabeçalho da página, adicionamos uma tag de pré-carregamento para recuperá-lo ainda mais antes. Não é importante pré-carregar a fonte Pacifico.woff2 porque ela define o estilo do texto abaixo da dobra.

Atualize o aplicativo e execute o Lighthouse novamente. Confira a seção Latência máxima do caminho crítico.

A fonte da Web Pacifico-Bold é pré-carregada e removida da cadeia de solicitações críticas

Observe como o Pacifico-Bold.woff2 é removido da cadeia de solicitações crítica. Ele é buscado anteriormente no aplicativo.

A fonte da Web Pacifico-Bold é pré-carregada

Com o pré-carregamento, o navegador sabe que precisa fazer o download desse arquivo mais cedo. É importante observar que, se não usado corretamente, o pré-carregamento pode prejudicar o desempenho ao fazer solicitações desnecessárias de recursos que não são usados.