Free tool — no signup to see your score

Is your custom font shifting your layout around?

Custom web fonts are one of the leading causes of layout shift and Flash of Unstyled Text on mobile Shopify themes. We check how your homepage loads its fonts.

Every font link, sized up for layout risk

We collect your homepage’s Google Fonts links and .woff/.woff2 font files and check how each one is loaded.

Missing display=swap

Without font-display: swap on a Google Fonts link, text using that font stays invisible until the font finishes loading — the classic Flash of Invisible Text.

Unpreloaded font files

.woff and .woff2 files without <link rel="preload" as="font"> are discovered late, after the browser parses your CSS. Preloading lets it fetch them earlier.

Duplicate font requests

The same font family requested more than once via separate link tags means wasted round trips for a font you’re already loading.

No fonts at all is fine

If we don’t find any custom fonts, that’s reported as a pass — system and theme-default fonts have zero font-loading performance cost.

Fonts are a top cause of layout shift

Custom and third-party web fonts are one of the leading contributors to poor Core Web Vitals scores on Shopify themes — particularly Cumulative Layout Shift, when a fallback font is swapped for the real one and text reflows, and Largest Contentful Paint, when the browser waits on a font before it can paint text at all. Both feed directly into Google’s page-experience signals and, through them, rankings.

The fixes here are small, surgical changes — an attribute on a link tag, combining two requests into one — not a redesign. That makes font loading one of the highest-leverage, lowest-risk items on a Shopify performance checklist.

What fixing font loading does

Less layout shift and FOUT

Proper font-display and preloading keep text visible and stable instead of jumping around as fonts arrive.

Better Core Web Vitals scores

Font loading is a direct lever on CLS and LCP — two of the metrics Google uses as ranking signals.

Small, low-risk fixes

Add an attribute, combine two link tags — these are surgical changes, not a theme rebuild.

No design change required

Your fonts stay exactly the same. Only how — and when — the browser loads them changes.

Three steps, about ten seconds

Paste your store URL

Any public storefront works — yourstore.com or the myshopify.com address. No login, no install, no admin access.

We read your font tags

Our scanner reads your public homepage’s font <link> tags the same way a browser does, and runs every check server-side.

Get your score & full report

Your score and top issue appear instantly. Unlock the full issue-by-issue report — with a specific fix for each finding — with your email.

Common questions

What does font-display: swap actually do?

It tells the browser to show fallback/system-font text immediately and swap in the custom font once it loads, instead of leaving text invisible during the wait.

Why preload a font instead of just linking it?

Normally the browser only discovers font files after parsing your CSS, which delays the request. Preload tells the browser to fetch it immediately in parallel, instead of waiting to discover it later.

It found no fonts at all — is my store missing something?

No, that’s reported as fine — it likely means the theme uses system/default fonts, which have zero font-loading performance cost.

Does this measure actual Core Web Vitals scores like CLS?

No, this checks font-loading configuration — a known contributor to CLS/FOUT — not live Core Web Vitals field data. Pair it with Google’s PageSpeed Insights for real CLS/LCP numbers.

Want the fixes made rather than just diagnosed? Font-loading cleanup is part of our store optimization service.