Declaration officielle
Autres déclarations de cette vidéo 9 ▾
- 1:36 Bloquer JS et CSS dans robots.txt : erreur SEO ou stratégie légitime ?
- 2:39 Le JavaScript bloqué rend-il vraiment votre contenu invisible à Google ?
- 4:10 Le scroll infini pose-t-il vraiment un problème d'indexation Google ?
- 10:32 Comment tester efficacement le lazy loading des images pour le SEO ?
- 12:48 Comment optimiser la vitesse d'un site JavaScript pour le référencement sans tout casser ?
- 16:26 Le sitemap XML suffit-il vraiment à compenser un maillage interne défaillant ?
- 23:58 Googlebot réécrira-t-il vos titres et métadescriptions générés en JavaScript ?
- 35:59 Le lazy loading tue-t-il l'indexation de vos images ?
- 44:06 Comment gérer efficacement les erreurs 404 dans une application monopage ?
Google confirme que les polices tierces ralentissent le chargement et recommande trois approches : mise en cache locale, propriété CSS font-display pour un chargement asynchrone, ou réduction du poids des fichiers. L'enjeu pour le SEO ? Les Core Web Vitals, notamment le LCP et le CLS, sont directement impactés par ces ressources externes. Concrètement, un simple appel à Google Fonts peut ajouter plusieurs centaines de millisecondes au temps de rendu, ce qui se traduit par une dégradation du score de performance.
Ce qu'il faut comprendre
Pourquoi les polices tierces posent-elles un problème de performance ?
Les polices tierces nécessitent des requêtes HTTP supplémentaires vers des serveurs externes (Google Fonts, Adobe Fonts, etc.). Chaque requête ajoute de la latence : connexion DNS, négociation SSL, téléchargement. Sur mobile ou connexion lente, ces millisecondes s'accumulent rapidement.
Le navigateur doit attendre le téléchargement de la police pour afficher correctement le texte. Résultat : soit un FOIT (Flash of Invisible Text) où le texte reste invisible pendant le chargement, soit un FOUT (Flash of Unstyled Text) où le texte s'affiche avec une police par défaut puis change brusquement. Les deux dégradent l'expérience et peuvent impacter le CLS.
Quels sont les impacts mesurables sur les Core Web Vitals ?
Le Largest Contentful Paint (LCP) est directement touché. Si votre titre principal utilise une police tierce, le navigateur peut retarder son affichage de 300 à 800ms en moyenne. Sur un site où le LCP cible est de 2,5 secondes, c'est 30% du budget perdu sur une seule ressource.
Le Cumulative Layout Shift (CLS) explose quand la police de secours et la police finale ont des métriques différentes (hauteur de ligne, largeur des caractères). Le texte change de taille brutalement, décalant tous les éléments en dessous. J'ai vu des sites passer de 0,05 à 0,25 de CLS uniquement à cause d'une police mal configurée.
Comment Martin Splitt formule-t-il la solution ?
Il propose trois leviers techniques, pas une directive unique. Mise en cache locale : auto-héberger les fichiers de police plutôt que les charger depuis un CDN tiers. Propriété font-display : contrôler le comportement d'affichage pendant le chargement (swap, fallback, optional). Optimisation des fichiers : réduire le poids via des sous-ensembles (subset) contenant uniquement les caractères utilisés.
Aucune hiérarchie entre ces solutions. C'est au praticien de choisir selon le contexte : contraintes de marque, stack technique, niveau de trafic. La flexibilité est volontaire — Google ne veut pas imposer une méthode unique qui ne fonctionnerait pas partout.
- Les polices tierces ajoutent des requêtes HTTP externes qui ralentissent le LCP et peuvent générer du CLS
- L'auto-hébergement élimine la latence réseau mais nécessite une gestion manuelle des mises à jour
- La propriété font-display (swap, optional, fallback) contrôle le comportement d'affichage pendant le téléchargement
- Les sous-ensembles de polices (latin, latin-ext uniquement) réduisent le poids de 60 à 80% dans la plupart des cas
- Le format WOFF2 offre une compression supérieure aux formats WOFF ou TTF historiques
Avis d'un expert SEO
Cette recommandation reflète-t-elle les observations terrain ?
Absolument. Les audits PageSpeed montrent systématiquement que les appels à fonts.googleapis.com ou fonts.gstatic.com figurent parmi les ressources bloquant le rendu. Sur des sites e-commerce avec 3-4 polices différentes (titres, corps, icônes), le cumul peut atteindre 1,2 seconde de délai pur.
Ce que Martin Splitt ne dit pas : le problème s'aggrave avec les requêtes multiples en cascade. Google Fonts charge d'abord un CSS qui pointe vers les fichiers WOFF2. Deux requêtes au lieu d'une. Si le préconnect n'est pas en place, c'est encore pire. Les praticiens aguerris le savent — mais le discours officiel reste soft.
Quelles nuances faut-il apporter à l'approche auto-hébergée ?
Auto-héberger résout la latence réseau, mais introduit des contraintes de maintenance. Les fonderies de polices mettent régulièrement à jour leurs fichiers (nouveaux glyphes, optimisations de rendu, corrections de bugs). Avec Google Fonts, c'est automatique. En auto-hébergement, c'est à vous de suivre et redéployer.
Autre point : le cache inter-sites de Google Fonts n'existe plus depuis 2020 (changement de partitionnement du cache navigateur). L'argument « les utilisateurs ont déjà la police en cache » ne tient plus. Autant auto-héberger et maîtriser le cache via vos propres en-têtes HTTP. [À vérifier] : certains affirment que le CDN de Google reste plus rapide que l'auto-hébergement moyen — mais ça dépend de votre infrastructure serveur.
La propriété font-display est-elle vraiment suffisante ?
Non. Elle atténue le symptôme, pas la cause. font-display: swap évite le FOIT (texte invisible) en affichant une police de secours immédiatement, mais ne réduit pas le temps de téléchargement. Le CLS reste présent si les métriques de police diffèrent.
Soyons honnêtes : font-display: optional est le seul choix qui garantit zéro CLS. Si la police ne charge pas en 100ms, le navigateur abandonne et garde la police système. Mais combien de marques acceptent de sacrifier leur charte graphique pour 0,05 de CLS ? Très peu. C'est un arbitrage business autant que technique.
font-display définie dans le fichier @font-face CSS a priorité sur celle passée en paramètre d'URL Google Fonts. Si vous chargez une police via Google Fonts avec &display=swap mais que le CSS local redéfinit font-display: block, c'est cette dernière qui s'applique. Vérifiez toujours la cascade.Impact pratique et recommandations
Quelle méthode choisir selon votre contexte ?
Auto-hébergement : privilégier si vous avez un CDN performant (Cloudflare, Fastly) et une équipe capable de maintenir les fichiers. Utilisez preload pour les polices critiques (affichage au-dessus de la ligne de flottaison). Attention : précharger trop de polices devient contre-productif — limitez-vous à 1-2 fichiers maximum.
Font-display avec Google Fonts : solution rapide si vous n'avez pas la main sur l'infrastructure. Ajoutez &display=swap dans l'URL Google Fonts ET définissez font-display: swap dans votre @font-face local. Combinez avec preconnect pour fonts.googleapis.com et fonts.gstatic.com — ça économise 200-300ms sur la première connexion.
Comment créer des sous-ensembles de polices efficacement ?
Utilisez des outils comme glyphhanger ou subfont pour générer des subsets contenant uniquement les caractères de votre site. Si vous ne servez que du français sans accents rares, un subset latin basique suffit. Sur certains projets, j'ai réduit une police de 280Ko à 45Ko en éliminant cyrillique, grec et symboles mathématiques.
Google Fonts permet de spécifier les subsets via le paramètre &subset=latin. Mais méfiez-vous : si un utilisateur saisit un emoji ou un caractère hors subset dans un champ de formulaire, le navigateur bascule sur la police système. Testez avec des contenus réels, pas juste du lorem ipsum.
Comment mesurer l'impact réel de vos optimisations ?
Utilisez WebPageTest avec Filmstrip View pour observer le FOIT/FOUT frame par frame. Comparez le LCP avant/après dans PageSpeed Insights ET dans les données terrain (Chrome User Experience Report via CrUX Dashboard). Les labos mentent souvent — c'est le terrain qui compte.
Surveillez le CLS en production via Google Analytics 4 ou un RUM (Real User Monitoring). Un CLS qui explose après déploiement d'une nouvelle police signale un problème de métriques de fallback. Ajustez les propriétés size-adjust, ascent-override, descent-override dans votre @font-face pour matcher la police de secours — technique avancée mais redoutablement efficace.
- Auditer les polices actuelles : nombre de fichiers, poids total, formats utilisés (privilégier WOFF2)
- Décider entre auto-hébergement (maîtrise totale) ou CDN tiers (simplicité de maintenance)
- Implémenter
preconnectpour fonts.googleapis.com et fonts.gstatic.com si vous restez sur Google Fonts - Ajouter
font-display: swap(compromis) ouoptional(performance pure) dans tous les @font-face - Générer des sous-ensembles de polices adaptés à vos langues réelles (outil glyphhanger recommandé)
- Mesurer l'impact sur LCP et CLS via WebPageTest et données CrUX terrain avant/après
❓ Questions frequentes
Font-display: swap ou optional, lequel choisir ?
Faut-il précharger toutes les polices avec preload ?
Google Fonts est-il encore pertinent en 2025 ?
Comment créer un subset de police efficace ?
Les polices variables (variable fonts) améliorent-elles la performance ?
🎥 De la même vidéo 9
Autres enseignements SEO extraits de cette même vidéo Google Search Central · durée 49 min · publiée le 26/03/2020
🎥 Voir la vidéo complète sur YouTube →
💬 Commentaires (0)
Soyez le premier à commenter.