Skip to main content

Confirm

Are you sure?

Performance · Checked on every page

Font loading optimizationWhat it checks and how to fix it

What it checks

Detects web fonts loaded from third-party font services (Google Fonts, Adobe Typekit, Font Awesome, fonts.net), font files linked directly and @font-face rules in the page. Passes when the page uses no custom fonts, or when every @font-face declares font-display swap, optional or fallback and third-party font stylesheets come with a font preload; warns otherwise.

Why it matters

Without font-display, browsers hide text for up to three seconds while a web font downloads, so visitors stare at blank space where the content should be. Fonts from a third-party host also need an extra DNS lookup and connection before they even start downloading, which delays text and can shift the layout when the font finally swaps in.

How to fix it

Declare font-display on every @font-face so text renders immediately in a fallback font, and preload the one or two fonts used above the fold.

@font-face {
  font-family: "Inter";
  src: url("/fonts/inter.woff2") format("woff2");
  font-display: swap;
}
<link rel="preload" href="/fonts/inter.woff2" as="font" type="font/woff2" crossorigin>

With Google Fonts, add &display=swap to the stylesheet URL and open the connection early:

<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter&display=swap">

Self-hosting the font files removes the third-party connection altogether.

Monitor this automatically

Full Stack Audit runs this check and 126 others on your site on a schedule, and emails you when one that passed starts failing.

More Performance checks