Le WordPress d'aujourd'hui, décodé pour les développeurs

Thèmes

Antipatterns : douze polices Google Fonts chargées pour deux affichées

Un thème premium générique embarque des dizaines de variantes de polices dont deux seulement apparaissent à l'écran. Comment repérer ce gaspillage et le réduire.

Par Clément Hadrot • 9 septembre 2024 • 4 min de lecture • Aucun commentaire
Antipatterns : douze polices Google Fonts chargées pour deux affichées

<link rel="preconnect" href="https://fonts.googleapis.com"> suivi de six lignes <link> différentes vers fonts.googleapis.com : c’est ce que l’onglet réseau du navigateur affichait au chargement d’un site vitrine construit sur un thème premium générique. Douze graisses et styles de deux familles de polices, alors que la page n’en affiche visuellement que deux : une regular pour le corps de texte, une semi-bold pour les titres.

Ce genre de thème est conçu pour plaire à un maximum d’acheteurs sur une place de marché : il propose donc toutes les combinaisons possibles dans son panneau d’options, et charge chaque variante par précaution, y compris celles jamais activées côté client. Le résultat se paie en requêtes réseau et en temps de rendu, sans bénéfice visuel.

Ce qu’on observe dans le thème

Dans le fichier de configuration du thème, chaque case à cocher du panneau « Typographie » du Customizer correspondait à un appel indépendant à wp_enqueue_style, sans condition sur ce qui était réellement sélectionné dans les réglages. Les feuilles de style Google Fonts étaient donc chargées en bloc, à chaque page, indépendamment du choix effectif de l’utilisateur dans le panneau d’administration.

Autre symptôme classique : plusieurs balises <link rel="preconnect"> pointant vers le même domaine, ajoutées par différents modules du thème sans coordination entre eux. Chacune déclenche une tentative de connexion anticipée, ce qui n’apporte rien de plus après la première occurrence et consomme du temps de traitement au démarrage de la page.

Pourquoi c’est un problème

L'essentiel à retenir : Identifier les graisses réellement utilisées dans le rendu ; Retirer les liens de préconnexion inutiles ; Auto-héberger les deux familles restantes

Chaque famille de police Google Fonts chargée via une feuille de style externe déclenche une requête vers le domaine de Google, puis une seconde requête vers le fichier de police lui-même une fois la feuille de style interprétée. Multiplié par douze variantes, cela représente autant de connexions TLS, de résolutions DNS et de téléchargements qui retardent l’affichage du texte, en particulier sur une connexion mobile modeste.

Sur le site audité, le poids cumulé des fichiers de police téléchargés — dont la grande majorité jamais utilisée dans le rendu final — atteignait 640 Ko avant même l’apparition du premier caractère de texte. Le score de performance en pâtissait directement sur l’indicateur de temps jusqu’au premier affichage de contenu.

Quoi faire : ne garder que l’essentiel

  1. Ouvrir l’inspecteur du navigateur sur les pages types du site et relever les familles et graisses réellement rendues dans les styles calculés
  2. Retirer du functions.php les appels à wp_enqueue_style conditionnés à des options du Customizer jamais activées
  3. Supprimer les balises preconnect redondantes pour ne garder qu’une seule occurrence par domaine externe
  4. Télécharger les deux familles restantes et les servir localement via un dossier fonts du thème enfant

Pour l’auto-hébergement, une règle @font-face déclarée dans la feuille de style du thème enfant, avec un chemin relatif vers le fichier .woff2, suffit. Cela supprime la dépendance à un domaine tiers et permet d’appliquer font-display: swap précisément, sans dépendre du comportement par défaut de Google Fonts.

Vérifier la charte graphique après coup

  • Comparer les captures d’écran avant et après sur les pages les plus visitées
  • Vérifier les graisses utilisées dans les boutons et les citations, souvent oubliées lors du premier passage
  • Contrôler le rendu sur Safari, plus sensible aux polices variables mal déclarées

Un thème générique charge pour plaire à tout le monde. Un site en production ne devrait jamais payer le prix des options que personne n’a activées.

En résumé

Ce genre de gaspillage ne se voit pas à l’œil nu tant que la connexion est bonne, ce qui explique qu’il reste souvent en place des années. Un simple passage par l’onglet réseau du navigateur, comparé aux styles réellement calculés sur la page, suffit à repérer l’écart entre ce qui est chargé et ce qui est affiché. Sur ce projet, retirer dix des douze variantes chargées a réduit le poids des polices de plus de 80 % sans que la charte graphique du client n’en souffre le moins du monde.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi