Is Embedding Google Fonts a GDPR Problem?

· 5 min read

In January 2022 a regional court in Munich ordered a website operator to pay €100 to a visitor because the site loaded a font from Google’s servers, which passed the visitor’s IP address to Google without consent. The sum is trivial. What followed was not: a wave of automated warning letters in Germany and Austria, sent to thousands of site owners at a few hundred euros each.

This is not legal advice, and one regional court is not a supreme authority. But the reasoning is worth understanding, because it is simple and because the fix is simple.

What the ruling actually turned on

An IP address is personal data under the GDPR. When a page tells a browser to fetch a file from another company’s server, the browser sends that address to that company, and the site operator has caused it to happen. The court found there was no legal basis for that transfer, because the operator could trivially have avoided it by hosting the file themselves.

That last clause is what makes the argument work. The defence for most third-party requests is necessity — you cannot run a payment without a payment processor. A font is not like that. Copying the file onto your own server takes ten minutes, so "we had no alternative" is not available.

How far this reaches

It is a first-instance decision from one German court and does not bind anybody outside that case. But the reasoning applies to any embedded third-party resource that discloses a visitor’s address without consent, and data protection authorities elsewhere in the EEA have made broadly similar noises. Treating it as settled law would be wrong; treating it as a warning about a whole category of embeds is reasonable.

The fix

Download the font and serve it from your own domain. No request leaves your server, no address is disclosed, and there is nothing to ask consent for. Every font on this site has a WOFF2 button on its page for exactly this — the file is the complete font, ready to upload. The self-hosting guide has the CSS.

Two things to check while you are there. A stylesheet link to fonts.googleapis.com is the obvious one. The less obvious one is a theme or plugin loading fonts on your behalf — on WordPress sites that is where most of the warning letters landed, because the site owner had no idea it was happening.

The performance argument changed too

It used to be that a font CDN was faster, because a visitor who had already loaded that file on another site got it from cache. Browsers ended that in 2020 by partitioning their caches per site. The shared cache is gone; what remains of the CDN is an extra DNS lookup, an extra TLS handshake and an extra round trip before the download even starts.

So self-hosting is now the faster option and the private one at the same time. That is unusual enough to be worth noticing — the two considerations normally pull against each other.

What the licence says about it

Every font here is under the SIL Open Font License or similar, which explicitly permits redistribution and bundling. Copying the file onto your own server, including a commercial one, is exactly what the licence is for. The only condition is that the licence file travels with the font — it is inside every download. What the OFL allows covers the rest.

What counts as self-hosted

Self-hosted means the browser fetches the font from a domain you control, and makes no request to anybody else for it. That is a narrower test than it sounds, and sites fail it in three predictable ways.

  • A stylesheet that still contains an @import or a link to a third-party font service, left behind when the fonts were copied locally.
  • A theme, page builder or plugin that adds its own font call. Plenty do, invisibly, and an update can put one back.
  • An embedded widget — a map, a chat box, a video player, an analytics script — that loads its own fonts from elsewhere.

The check is the same for all three: open the browser’s developer tools, look at the network list, and filter it by the domain you are trying to avoid. Nothing should appear. It takes ten seconds and it is the only evidence that matters.

The font is the easy one

A font request sends an IP address, and that is what the German ruling turned on. The same page usually also embeds a video player, a tag manager, a chat widget and a social button, each of which sends rather more than an IP address and several of which set cookies. Fixing the font and leaving those in place solves the smallest part of the problem.

Take the opportunity to list every third party the page actually contacts, then decide about each one deliberately. Most sites find two or three they had forgotten and one they cannot justify.

Write it down

Whatever you decide, record it: which fonts you serve, from where, and when the third-party call was removed. A privacy policy that says "we do not load fonts from third parties" is a claim somebody may check, and the network list is the proof. The licence side is the easy half — every family here may be downloaded, hosted and served from your own domain, which is exactly what the Open Font License permits.

The mechanics of moving the files, including the two lines of CSS that usually go wrong, are in how to self-host a font. Every font page on this site has the complete web font ready to download, with a Latin-only cut beside it for pages that only ever set one alphabet.

Questions

Is using Google Fonts a GDPR violation?
A regional court in Munich decided in 2022 that embedding a font from Google’s servers, which passes the visitor’s IP address to Google, had no legal basis without consent, and awarded the visitor €100. It is a first-instance decision rather than settled law, but the reasoning is straightforward and it prompted a large wave of warning letters in Germany and Austria.
Does self-hosting fonts solve the GDPR problem?
Yes, for the fonts. If the file comes from your own server, no address is disclosed to a third party and there is nothing to obtain consent for. The same reasoning applies to other embedded resources — maps, video players, CDN-hosted icons — which are worth checking at the same time.
Am I allowed to download and self-host a Google Font?
Yes. Almost all of them are under the SIL Open Font License, which permits redistribution and bundling including on commercial sites. The only condition is that the licence file stays with the font when you pass it on.
Is self-hosting slower than using a font CDN?
No, not since 2020. Browsers partitioned their caches per site that year, which removed the shared-cache benefit that was the main argument for a CDN. What remains is an extra DNS lookup, TLS handshake and round trip to a second server, all of which self-hosting avoids.
How do I check whether my site still calls a font CDN?
Open the browser’s developer tools, reload the page with the network list open, and filter by the CDN’s domain. If anything appears, something is still requesting it — usually a leftover @import in a stylesheet, a plugin, or an embedded widget that loads its own fonts.

Fonts in this post

  • Inter

    Sans-serif · Rasmus Andersson · Variable

  • Roboto

    Sans-serif · Christian Robertson, ParaType, Font Bureau · Variable

  • Lora

    Serif · Cyreal · Variable

  • Outfit

    Sans-serif · Smartsheet Inc, Rodrigo Fuenzalida · Variable

Find the font for your next project.

All 337 families here are free for commercial use, and every download carries its license inside the zip.