What does Google say about SEO? /
Quick SEO Quiz

Test your SEO knowledge in 3 questions

Less than 30 seconds. Find out how much you really know about Google search.

🕒 ~30s 🎯 3 questions 📚 SEO Google

Official statement

Third-party fonts can slow down websites. It is suggested to cache them locally or use the CSS 'font-display' property for asynchronous loading. Another solution is to reduce the weight of font files and use font subsets.
9:28
🎥 Source video

Extracted from a Google Search Central video

⏱ 49:04 💬 EN 📅 26/03/2020 ✂ 10 statements
Watch on YouTube (9:28) →
Other statements from this video 9
  1. 1:36 Bloquer JS et CSS dans robots.txt : erreur SEO ou stratégie légitime ?
  2. 2:39 Le JavaScript bloqué rend-il vraiment votre contenu invisible à Google ?
  3. 4:10 Le scroll infini pose-t-il vraiment un problème d'indexation Google ?
  4. 10:32 Comment tester efficacement le lazy loading des images pour le SEO ?
  5. 12:48 Comment optimiser la vitesse d'un site JavaScript pour le référencement sans tout casser ?
  6. 16:26 Le sitemap XML suffit-il vraiment à compenser un maillage interne défaillant ?
  7. 23:58 Googlebot réécrira-t-il vos titres et métadescriptions générés en JavaScript ?
  8. 35:59 Le lazy loading tue-t-il l'indexation de vos images ?
  9. 44:06 Comment gérer efficacement les erreurs 404 dans une application monopage ?
📅
Official statement from (6 years ago)
TL;DR

Google confirms that third-party fonts slow down loading times and recommends three approaches: local caching, CSS font-display property for asynchronous loading, or reducing file sizes. The stakes for SEO? Core Web Vitals, particularly LCP and CLS, are directly affected by these external resources. Specifically, a simple call to Google Fonts can add several hundred milliseconds to rendering time, which translates to a degradation in performance score.

What you need to understand

What makes third-party fonts a performance issue?

Third-party fonts require additional HTTP requests to external servers (Google Fonts, Adobe Fonts, etc.). Each request adds latency: DNS connection, SSL negotiation, downloading. On mobile or slow connections, these milliseconds add up quickly.

The browser must wait for the font to download to render the text correctly. The result: either a FOIT (Flash of Invisible Text) where the text remains invisible during loading or a FOUT (Flash of Unstyled Text) where the text displays with a default font and then abruptly changes. Both degrade the experience and can impact CLS.

What measurable impacts do third-party fonts have on Core Web Vitals?

Largest Contentful Paint (LCP) is directly affected. If your main title uses a third-party font, the browser can delay displaying it by 300 to 800ms on average. On a site where the target LCP is 2.5 seconds, that's 30% of the budget lost on a single resource.

Cumulative Layout Shift (CLS) skyrockets when the fallback font and the final font have different metrics (line height, character width). Text size changes abruptly, shifting all below elements. I've seen sites go from 0.05 to 0.25 CLS solely due to a poorly configured font.

How does Martin Splitt frame the solution?

He proposes three technical levers, not a single directive. Local caching: self-host font files instead of loading them from a third-party CDN. Font-display property: control the display behavior during loading (swap, fallback, optional). File optimization: reduce weight via subsets containing only the characters used.

No hierarchy among these solutions. It's up to the practitioner to choose based on context: brand constraints, technical stack, traffic level. Flexibility is intentional — Google does not want to impose a single method that wouldn't work everywhere.

  • Third-party fonts add external HTTP requests that slow down LCP and can generate CLS
  • Self-hosting eliminates network latency but requires manual management of updates
  • The font-display property (swap, optional, fallback) controls display behavior during download
  • Font subsets (latin, latin-ext only) reduce weight by 60-80% in most cases
  • The WOFF2 format offers superior compression compared to historical WOFF or TTF formats

SEO Expert opinion

Does this recommendation reflect real-world observations?

Absolutely. PageSpeed audits consistently show that calls to fonts.googleapis.com or fonts.gstatic.com are among the render-blocking resources. On e-commerce sites with 3-4 different fonts (headlines, body, icons), the total can reach a pure delay of 1.2 seconds.

What Martin Splitt doesn't mention: the problem worsens with multiple cascading requests. Google Fonts first loads a CSS that points to WOFF2 files. Two requests instead of one. If preconnect isn’t in place, it gets worse. Experienced practitioners know this — but the official discourse remains soft.

What nuances should be considered with self-hosting?

Self-hosting resolves network latency, but introduces maintenance constraints. Font foundries regularly update their files (new glyphs, rendering optimizations, bug fixes). With Google Fonts, it's automatic. In self-hosting, it's up to you to monitor and redeploy.

Another point: the cross-site cache of Google Fonts hasn't existed since 2020 (cache partitioning change in browsers). The argument

Practical impact and recommendations

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 preconnect pour fonts.googleapis.com et fonts.gstatic.com si vous restez sur Google Fonts
  • Ajouter font-display: swap (compromis) ou optional (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
L'optimisation des polices tierces touche simultanément performance technique et identité visuelle. Les gains sur LCP et CLS sont mesurables (200-800ms sur le LCP, jusqu'à 0,2 point de CLS), mais nécessitent une approche méthodique : choix de la stratégie d'hébergement, configuration précise de font-display, création de subsets, et surtout validation terrain via RUM. Ces optimisations peuvent sembler techniques et chronophages — si vous manquez de ressources internes ou de certitudes sur la meilleure approche pour votre contexte spécifique, faire appel à une agence SEO spécialisée en performance Web peut vous éviter des erreurs coûteuses et accélérer les résultats visibles dans vos Core Web Vitals.

❓ Frequently Asked Questions

Font-display: swap ou optional, lequel choisir ?
Swap affiche immédiatement la police de secours puis échange — risque de CLS si les métriques diffèrent. Optional abandonne le chargement après 100ms et garde la police système — zéro CLS mais perte de l'identité visuelle. Swap pour les sites brandés, optional pour la performance pure.
Faut-il précharger toutes les polices avec preload ?
Non, uniquement la police critique du contenu au-dessus de la ligne de flottaison (usually titres principaux). Précharger 3-4 polices sature la bande passante et retarde les autres ressources essentielles. Limitez à 1-2 fichiers WOFF2 maximum.
Google Fonts est-il encore pertinent en 2025 ?
Oui pour la simplicité et les mises à jour automatiques. Non si vous visez un LCP sous 1,8 seconde — l'auto-hébergement avec preload et CDN performant gagne 200-400ms. Le cache inter-sites n'existe plus, l'argument du "déjà en cache" ne tient plus.
Comment créer un subset de police efficace ?
Utilisez glyphhanger (npm install -g glyphhanger) qui scanne votre site et génère un subset contenant uniquement les caractères utilisés. Passez de 250Ko à 40-60Ko facilement. Testez ensuite avec du contenu réel pour éviter les caractères manquants.
Les polices variables (variable fonts) améliorent-elles la performance ?
Oui si vous utilisez plusieurs graisses (regular, bold, black) de la même famille. Un fichier variable remplace 3-4 fichiers fixes. Mais si vous n'utilisez qu'une seule graisse, un fichier fixe WOFF2 reste plus léger qu'un variable.
🏷 Related Topics
PDF & Files Web Performance Local Search Search Console

🎥 From the same video 9

Other SEO insights extracted from this same Google Search Central video · duration 49 min · published on 26/03/2020

🎥 Watch the full video on YouTube →

Related statements

💬 Comments (0)

Be the first to comment.

2000 characters remaining
🔔

Get real-time analysis of the latest Google SEO declarations

Be the first to know every time a new official Google statement drops — with full expert analysis.

No spam. Unsubscribe in one click.