Learn

Google Fonts or self-hosted? It depends on one thing.

The answer used to be simple. It isn't anymore.

March 19, 20264 min read

Self-host your fonts if your site already runs close to every user, and keep Google Fonts if one server still has to cover the world on its own.

The old answer was Google Fonts

Google Fonts used to have a real performance edge because browsers could reuse a saved copy so the browser doesn't re-download it across different sites. That shared cache advantage disappeared once browsers started partitioning caches by site for privacy.

The market has already started reacting. The 2025 Web Almanac says self-hosted fonts grew from 30% of desktop sites in 2024 to 34% in 2025, while Google Fonts fell from 57% to 54%. That matters because developers usually do not change font delivery unless the tradeoff has shifted.

The extra round trip nobody thinks about

Google Fonts adds one extra blocking step before text can render. The browser first fetches CSS from Google, then fetches the font files that CSS points to, so your first text paint waits on a separate server before your own page is done.

LatencyRadar's March 2026 benchmark found 14 ms typical in Singapore, 16 ms in Amsterdam, 66 ms in Montreal, 80 ms in San Francisco, and a 1,749 ms Amsterdam worst case. That matters more than the average because a single slow CSS fetch can keep text invisible while the rest of the page is ready.

This is where TTFB, meaning how long before the server starts responding, becomes useful. If your font CSS shows up as a separate slow TTFB step, you have added latency before a user can read anything.

Here is the Google Fonts CSS request from four cities in the LatencyRadar benchmark.

CityTypicalWorst case
Singapore14 ms24 ms
Amsterdam16 ms1,749 ms
Montreal66 ms95 ms
San Francisco80 ms103 ms

The average looks fine. The Amsterdam spike is the part users actually feel.

The one thing that changes the answer

The right answer depends on your server location. If your app sits on one Amsterdam server and your users are global, Google Fonts can still win because Google serves files from a CDN, which is a network of servers spread around the world.

If your site runs on an edge platform, meaning a server close to the user, not in one central location, the tradeoff flips. Self-hosted fonts then come from the same nearby edge as your HTML and CSS, so you remove the extra trip to Google and keep control of caching and loading.

Privacy shifts the tradeoff too. Google says its Fonts API receives the visitor's IP address, requested URL, user agent, and referer. For EU teams, that means every Google Fonts request is not just a performance choice. It is also a compliance review.

What this means for you

Self-host if you deploy on Vercel, Cloudflare Pages, Netlify, or any similar edge host. You cut the extra request, keep font behavior in your own build, and avoid sending font traffic to Google.

Keep Google Fonts if you still serve the whole site from one region and your users are spread across continents. In that setup, Google's worldwide network can still beat your single origin, but you should use `display=swap` so text appears in a fallback font instead of staying blank.

Do not over-optimize a prototype. Ship with Google Fonts if that is fastest for you, then test from a few cities once real traffic starts arriving. The 2025 Web Almanac shows only 56% of desktop pages and 48% of mobile pages pass Core Web Vitals, so small font delays still matter most on the slower mobile side.

Is Google Fonts adding a hidden delay before your text appears?

Test from Amsterdam, Singapore, Montreal, and San Francisco and see whether your font request shows up as its own slow step before content renders.

Test my site

No account required takes about 30 seconds