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

Medir

Avalie o desempenho do site antes de adicionar qualquer otimização.

  1. Para visualizar o site, pressione Ver app. Em seguida, pressione Tela cheia 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 mostra a sequência de busca de recursos em Latência máxima do caminho crítico.

As fontes da Web estão presentes na cadeia de solicitação crítica.

Na auditoria acima, as fontes da Web fazem parte da cadeia de solicitações críticas e são buscadas por último. A cadeia de solicitações críticas representa a ordem dos recursos que são priorizados e buscados pelo navegador. Neste 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 de solicitações críticas. Normalmente, as webfonts são carregadas lentamente, o que significa que elas não são carregadas até que seja feito o download dos recursos críticos (CSS, JS).

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

As fontes da Web são carregadas lentamente.

Pré-carregamento de fontes da Web

Para evitar FOUT, pré-carregue fontes da Web necessárias imediatamente. Adicione o elemento Link do aplicativo ao 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" informam ao navegador para fazer o download desse recurso como uma fonte e ajudam a priorizar a fila de recursos.

O atributo crossorigin indica se o recurso deve 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 fazer a busca o quanto 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. Verifique a seção Latência máxima do caminho crítico.

A webfont da 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íticas. Ele é buscado anteriormente no aplicativo.

A webfont Pacifico-Bold é pré-carregada

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