Avancé 6 min 1 min de lecture Vitesse & temps de chargement

Optimiser le chargement des polices web

Préchargez vos polices, pilotez font-display et évitez le texte invisible pour accélérer l'affichage et stabiliser votre mise en page.

Par Nicolas Dupont Mis à jour le 23 juin 2026

Une police web complète, avec toutes ses variantes stylistiques et l’intégralité de ses glyphes, peut peser plusieurs mégaoctets et ralentir l’affichage de vos pages. Or les polices comptent parmi les ressources les plus piégeuses : le navigateur ne les télécharge qu’une fois l’arborescence de rendu construite, c’est-à-dire après le DOM et le CSSOM. Résultat, la requête part tard et le texte peut rester invisible pendant que le fichier arrive.

Ce comportement a un impact direct sur vos indicateurs de performance, donc sur votre SEO. Un téléchargement de police trop lent dégrade le First Contentful Paint (le moment où le premier contenu s’affiche), tandis qu’une bascule mal gérée entre police de secours et police définitive provoque des décalages visuels qui pénalisent le Cumulative Layout Shift. Optimiser le chargement des polices, c’est donc gagner sur la vitesse perçue et sur la stabilité visuelle, deux critères que Google valorise et que l’on travaille aussi en optimisant le CLS.

Les polices sont sournoises parce que le navigateur ne les découvre qu’une fois l’arborescence de rendu construite, donc tard, et le texte peut rester invisible pendant ce temps. C’est exactement le genre de détail qui pénalise le FCP sans qu’on comprenne pourquoi. Le duo preload plus font-display réglé correctement résout l’essentiel du problème, à condition de ne pas l’oublier sur les variantes.

— Nicolas Dupont

Pourquoi les polices arrivent trop tard

Le chargement des polices est dit paresseux : le navigateur ne sait quelles ressources de police récupérer qu’après avoir combiné les arborescences DOM et CSSOM pour produire l’arborescence de rendu. Les requêtes de police partent donc bien après les autres ressources critiques, un phénomène que le chemin critique de rendu aide à comprendre.

Il se crée alors une course entre la première peinture du contenu et l’arrivée du fichier de police. Si la police gagne, tout va bien. Si elle perd, le navigateur affiche la mise en page mais omet le texte : c’est le problème du texte invisible. Deux leviers permettent de reprendre la main : précharger la police pour la demander plus tôt, et indiquer au navigateur comment se comporter en attendant grâce à font-display.

Précharger la police avec preload

Quand vous connaissez à l’avance l’URL d’une police critique, la directive preload déclenche sa requête dès le début du chemin de rendu critique, sans attendre la création du CSSOM. La police est ainsi disponible bien plus tôt.

Deux précautions sont indispensables. D’abord, l’attribut crossorigin est obligatoire, même pour une police auto-hébergée, car les polices sont traitées comme des ressources CORS. Ensuite, n’abusez pas du preload : précharger trop de fichiers détourne la bande passante d’autres ressources critiques et peut télécharger des polices inutiles à la page courante.

Précharger une police web
<!-- L'attribut crossorigin est requis, même pour une police auto-hébergée. -->
<link rel="preload" as="font" type="font/woff2"
      href="/fonts/OpenSans-Regular.woff2" crossorigin>

Piloter l'affichage avec font-display

Le preload augmente les chances que la police soit prête, mais ne garantit rien. La propriété CSS font-display indique au navigateur quoi faire tant que la police n’est pas chargée. Elle découpe la durée de vie du téléchargement en trois périodes : une période de blocage (le texte concerné reste invisible), une période de remplacement (une police de secours s’affiche), puis une période de défaillance (la police est considérée comme échouée et la police de secours reste). Selon la valeur choisie, vous privilégiez la fidélité typographique ou la disponibilité immédiate du texte.

Valeur de font-display Comportement Quand l'utiliser

block

Bloque le rendu du texte un court instant, puis bascule sur la police définitive

Quand la cohérence typographique prime sur l’affichage immédiat

swap

Affiche tout de suite une police de secours, puis remplace par la police web

Cas le plus courant, pour montrer le texte sans attendre

fallback

Très court blocage, puis secours, et bascule seulement si la police arrive vite

Bon compromis entre fidélité et rapidité

optional

N’utilise la police que si elle arrive en moins de 100 ms, sinon secours

Quand vous voulez éviter tout décalage visuel à la première visite

Déclarer font-display
@font-face {
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap; /* ou block, fallback, optional */
  src: url("/fonts/OpenSans-Regular.woff2") format("woff2");
}

Mettre les polices en cache durablement

Les polices sont des ressources statiques, rarement modifiées : elles se prêtent parfaitement à une mise en cache de longue durée. Servez-les avec un en-tête de cache adapté et un jeton de revalidation (ETag) afin de permettre leur réutilisation efficace entre vos pages. Une fois la police téléchargée lors de la première visite, les navigations suivantes l’utilisent immédiatement, ce qui supprime l’attente ; pour aller plus loin, voyez comment optimiser les polices web. Si votre site emploie un service worker, une stratégie de cache prioritaire pour les polices convient à la plupart des cas.

L'attribut crossorigin n'est pas optionnel

Les polices sont considérées comme des ressources CORS. Si vous oubliez l’attribut crossorigin sur votre balise de preload, le navigateur lance une seconde requête au lieu de réutiliser la première, et votre préchargement ne sert à rien. Ajoutez toujours crossorigin, y compris pour les polices hébergées sur votre propre domaine.

Besoin d'aide pour mettre en pratique ? Nos experts SEO vous accompagnent.
Parler à un expert

À faire

  • précharger uniquement les polices critiques
  • ajouter l’attribut crossorigin
  • choisir une valeur de font-display adaptée
  • définir un cache de longue durée

À éviter

  • précharger toutes vos polices
  • laisser le comportement de blocage par défaut sans réflexion
  • intégrer les fichiers de police en base64 dans le CSS
  • oublier les en-têtes de cache

Points clés à retenir

  • Préchargez les polices critiques avec preload et l'attribut crossorigin
  • Utilisez font-display pour éviter le texte invisible et les décalages
  • Réservez swap aux contenus à afficher vite, optional pour zéro décalage
  • Servez vos polices avec un cache de longue durée et un ETag
  • N'intégrez jamais les fichiers de police en base64 dans votre CSS

Quelques réflexes pour des polices qui ne freinent plus l’affichage.

Quiz : testez vos connaissances

  1. Pourquoi les requêtes de police partent-elles souvent tard dans le chargement ?

    • Parce que le serveur retarde volontairement leur envoi
    • Parce que les polices sont toujours téléchargées en dernier par principe
    • Parce que le navigateur ne sait quelles polices récupérer qu'après avoir combiné le DOM et le CSSOM

    Le chargement des polices est paresseux : le navigateur ne sait quelles ressources récupérer qu’après avoir combiné les arborescences DOM et CSSOM pour produire l’arborescence de rendu.

  2. Quel attribut ne doit pas manquer sur une balise de preload de police ?

    • crossorigin, car les polices sont considérées comme des ressources CORS
    • defer, pour différer la police après le rendu
    • loading, pour activer le chargement paresseux

    Les polices sont des ressources CORS. Sans l’attribut crossorigin sur la balise de preload, le navigateur lance une seconde requête inutile.

  3. Quelle propriété affiche immédiatement un texte de repli tant que la police n'est pas chargée ?

    • font-weight, qui ajuste l'épaisseur du texte
    • font-display, par exemple avec la valeur swap
    • font-family, qui change simplement de police

    La propriété font-display indique au navigateur quoi faire tant que la police n’est pas chargée. La valeur swap affiche immédiatement un texte de repli.

À propos de l'auteur

Nicolas Dupont

Nicolas Dupont

Expert SEO Sénior & Fondateur

Il a fait grimper des sites en haut de Google et accompagné plus de 120 entreprises avant de fonder Les Webineurs. Sur votre projet SEO, vous échangez directement avec Nicolas, pas un commercial ni un junior. Un expert dédié et du trafic organique qui dure.

Voir le profil

Besoin d'un accompagnement SEO ?

Vos polices ralentissent l'affichage et déstabilisent votre mise en page ? Faisons le point sur leur chargement.

Faire le point avec un expert SEO