---
title: "Google Fonts and GDPR: 3 in 8 Polish sites load them"
description: "Three in eight Polish homepages load fonts from Google's servers, and few visibly wait for consent. On WordPress, a blocking load goes with a slower LCP."
canonical_url: "https://www.outofplace.space/blog/google-fonts-polish-web"
language: "en"
last_updated: "2026-10-22"
alternates:
  pl: "https://www.outofplace.space/pl/blog/google-fonts-rodo-polskie-strony.md"
---

# Google Fonts and GDPR: 3 in 8 Polish sites load them

> Three in eight Polish homepages load fonts from Google's servers, and few visibly wait for consent. On WordPress, a blocking load goes with a slower LCP.

Published 2026-10-22 · Category: Performance · Tags: Google Fonts, GDPR, Core Web Vitals, Poland

38% of the popular Polish homepages we read, about three in eight, load fonts from Google's servers rather than their own, and 30% do it with a stylesheet that holds up rendering. Of the 7,785 we read, we could see only 21 wait for the visitor's consent first, a floor rather than an exact count. On WordPress sites it shows in loading: those with a blocking Google Fonts stylesheet have a median phone LCP 178ms slower than those without Google Fonts. On other sites we found no difference.

We read the homepages of every .pl site in [the Tranco list of popular sites](https://tranco-list.eu/list/Y8YYG/full) that answered with HTML, the same sample as our studies of [third-party scripts](https://www.outofplace.space/blog/third-party-scripts-polish-web), [CDN market share in Poland](https://www.outofplace.space/blog/cdn-polish-web) and [who draws the cookie consent banner](https://www.outofplace.space/blog/cookie-consent-polish-web), and looked each site up in the [Chrome UX Report](https://developer.chrome.com/docs/crux), Google's record of how fast sites load for real Chrome users.

- 38% of .pl homepages load Google Fonts from Google's servers; 80% of them with a render-blocking stylesheet.
- We could see only 21 homepages hold Google Fonts back until the visitor consents; our rules miss some ways of doing it, so that is a floor. In 2022 a Munich court ruled that loading them from Google without consent broke the GDPR.
- WordPress sites use Google Fonts most: 53%, against 33% of other sites. Among the 100 most popular sites, only 24%.
- On WordPress, a blocking Google Fonts stylesheet goes with a 178ms slower median LCP on phones; on other sites, with no difference.

## What is Google Fonts and how do sites load it?

[Google Fonts](https://fonts.google.com/) is Google's free library of web fonts. The usual way to use it is a line Google gives you to paste into the page: a `<link>` to a stylesheet on `fonts.googleapis.com`, which in turn points the browser at the font files on `fonts.gstatic.com`. Every visit then opens connections to two Google domains, and the visitor's browser sends Google its IP address along with the request.

We sorted every homepage by the way it asks Google for fonts, first match wins:

- **Render-blocking**: a stylesheet link or an `@import`. The browser waits for the CSS before it draws anything.
- **Not blocking**: the stylesheet loaded with the `media="print"` trick or a preload, `@font-face` rules pointing straight at the font files, a preloaded font file, or a script such as Web Font Loader.
- **After consent**: the same, held back by a consent platform until the visitor agrees.
- **Only a preconnect**: a hint to connect to Google's font hosts, and no font request we could see.

## How many Polish sites load Google Fonts?

2,352 homepages (30%) load Google Fonts with a render-blocking stylesheet and another 579 (7.4%) without blocking. Counting the homepages that only connect to Google, 41% of them have the browser contact Google's font servers.

The most popular sites use Google Fonts less: 24% of the 100 most popular .pl sites and 32% of the next 900, against 39% of the rest. The top 100 and the next 900 aren't clearly apart from each other; both are apart from the rest.

**The most popular Polish sites load Google Fonts less often than the rest** (How .pl homepages ask Google's servers for fonts, by rank in the sample · n per row in the table)

| Item | Loads, blocking rendering | Loads, not blocking | Only after consent | Only connects (preconnect) | No request to Google | n |
| --- | --- | --- | --- | --- | --- | --- |
| All homepages | 30% | 7.4% | 0.3% | 3.8% | 58% | 7,785 |
| Top 100 | 14% | 10% | 0% | 4% | 72% | 100 |
| Ranks 101–1,000 | 23% | 8.6% | 0.9% | 2.7% | 65% | 900 |
| Below 1,000 | 31% | 7.3% | 0.2% | 3.9% | 57% | 6,785 |

Source: Outofplace census, 24 Sept 2026; Tranco list Y8YYG. Chart: https://www.outofplace.space/data/blog/google-fonts-polish-web/charts/en/chart-the-most-popular-polish-sites-load-google-fonts-less-often-than.png Data: https://www.outofplace.space/data/blog/google-fonts-polish-web/2026-09-24/bands.csv

Public administration is no exception. Of the 84 gov.pl homepages in the sample, 31 load Google Fonts (37%), most of them with a blocking stylesheet. Online shops load them a little more often than other sites.

**Public administration sites load Google Fonts about as often as everyone else** (Share of .pl homepages loading fonts from Google's servers, by kind of site · 95% intervals)

| Item | Value | 95% interval | n |
| --- | --- | --- | --- |
| Online shops | 42% | 40%–44% | 2,172 |
| Public administration (gov.pl) | 37% | 27%–48% | 84 |
| Other sites | 36% | 35%–37% | 5,529 |

Source: Outofplace census, 24 Sept 2026. Chart: https://www.outofplace.space/data/blog/google-fonts-polish-web/charts/en/chart-public-administration-sites-load-google-fonts-about-as-often-as.png Data: https://www.outofplace.space/data/blog/google-fonts-polish-web/2026-09-24/groups.csv

### Half of WordPress sites load Google Fonts

The shares spread wider by software than by kind of site. 54% of WordPress sites that aren't shops load Google Fonts, and about half of WooCommerce, PrestaShop and Shoper shops, against 24% on Shopify and 26% on IdoSell. We didn't record which theme each site runs, so the data can't say why.

**Half of WordPress sites load Google Fonts; a quarter of Shopify and IdoSell shops do** (Share of .pl homepages loading fonts from Google's servers, by software · WordPress counts sites that aren't shops · 95% intervals)

| Item | Value | 95% interval | n |
| --- | --- | --- | --- |
| WordPress (not a shop) | 54% | 52%–57% | 1,389 |
| WooCommerce | 51% | 46%–56% | 384 |
| PrestaShop | 49% | 45%–53% | 557 |
| Shoper | 48% | 42%–55% | 227 |
| Other shops | 38% | 34%–42% | 474 |
| Magento | 32% | 26%–38% | 202 |
| Other sites | 30% | 29%–32% | 4,208 |
| IdoSell | 26% | 20%–32% | 217 |
| Shopify | 24% | 17%–32% | 127 |

Source: Outofplace census, 24 Sept 2026; platform from our ecommerce classifier. Chart: https://www.outofplace.space/data/blog/google-fonts-polish-web/charts/en/chart-half-of-wordpress-sites-load-google-fonts-a-quarter-of-shopify-a.png Data: https://www.outofplace.space/data/blog/google-fonts-polish-web/2026-09-24/groups.csv

Shoper stands out in another way: 47% of Shoper shops carry a preconnect to Google's font hosts without any Google Fonts request we could see; we didn't check whether Shoper's templates add it. A preconnect only opens a connection, but that is still a request to Google with the visitor's IP address.

## Which Google Fonts do Polish sites use?

Roboto and Open Sans, each on about a fifth of the homepages loading Google Fonts, followed by Poppins, Montserrat and Lato, close to each other. 122 families appear on at least five homepages each. Of the homepages with a Google Fonts CSS URL, the median asks for one family, but 22% ask for three or more.

**Roboto and Open Sans are on a fifth of the sites loading Google Fonts each** (Share of .pl homepages loading Google Fonts that ask for each family, the 15 most common · 95% intervals)

| Item | Value | 95% interval | n |
| --- | --- | --- | --- |
| Roboto | 22% | 20%–23% | 2,931 |
| Open Sans | 21% | 20%–22% | 2,931 |
| Poppins | 13% | 12%–14% | 2,931 |
| Montserrat | 12% | 10%–13% | 2,931 |
| Lato | 11% | 9.9%–12% | 2,931 |
| Inter | 7.7% | 6.8%–8.7% | 2,931 |
| Roboto Slab | 5% | 4.3%–5.9% | 2,931 |
| Oswald | 3.9% | 3.2%–4.6% | 2,931 |
| Roboto Condensed | 3.8% | 3.2%–4.5% | 2,931 |
| Raleway | 3.6% | 3%–4.4% | 2,931 |
| Playfair Display | 3.3% | 2.7%–4% | 2,931 |
| Rubik | 3.1% | 2.5%–3.8% | 2,931 |
| Source Sans Pro | 2.5% | 2%–3.1% | 2,931 |
| Material Icons | 2.4% | 1.9%–3% | 2,931 |
| Ubuntu | 2.2% | 1.7%–2.8% | 2,931 |

Source: Outofplace census, 24 Sept 2026. Chart: https://www.outofplace.space/data/blog/google-fonts-polish-web/charts/en/chart-roboto-and-open-sans-are-on-a-fifth-of-the-sites-loading-google.png Data: https://www.outofplace.space/data/blog/google-fonts-polish-web/2026-09-24/families.csv

Many requests are old. 56% of homepages with a Google Fonts URL still use the first version of the API (`/css?family=`) rather than `css2`, and 36% make two or more separate requests, often one per family, where one would do. 41% have at least one URL without the `display` parameter, which leaves the text invisible while the font loads: [web.dev's guide to font best practices](https://web.dev/articles/font-best-practices) says that without `font-display`, Chromium and Firefox block text for up to three seconds.

## Do Google Fonts slow down a website?

To see whether it shows, we compared the median 75th-percentile LCP (Largest Contentful Paint, the moment the main content appears) on phones of sites that load Google Fonts in each way against sites that load none.

On WordPress, the gap is clear: 1.99s with a blocking stylesheet against 1.81s without Google Fonts, a difference of 178ms (95% interval 73ms to 292ms). First Contentful Paint is 121ms slower too. 74% of those sites pass LCP on phones, against 79% of WordPress sites without Google Fonts.

On other sites there is no gap: 1.68s against 1.68s. And loading Google Fonts without blocking goes with no slower LCP on either.

**On WordPress, a blocking Google Fonts stylesheet goes with a slower LCP; elsewhere it doesn't** (Median p75 LCP on phones (the whole site, as CrUX measures it), in seconds, by how the homepage loads Google Fonts · dot: median, line: 95% interval · shading: Google's thresholds · CrUX, 28 days to 22 Sept 2026)

| Item | Value | Range | n |
| --- | --- | --- | --- |
| WordPress: No Google Fonts | 1.81s | 1.73s–1.9s | 636 |
| WordPress: Google Fonts, blocking | 1.99s | 1.92s–2.07s | 568 |
| WordPress: Google Fonts, not blocking | 1.71s | 1.61s–1.83s | 135 |
| Other sites: No Google Fonts | 1.68s | 1.66s–1.71s | 2,906 |
| Other sites: Google Fonts, blocking | 1.68s | 1.63s–1.72s | 1,219 |
| Other sites: Google Fonts, not blocking | 1.7s | 1.62s–1.77s | 362 |

Source: Chrome UX Report (Google); Outofplace census, 24 Sept 2026. Chart: https://www.outofplace.space/data/blog/google-fonts-polish-web/charts/en/chart-on-wordpress-a-blocking-google-fonts-stylesheet-goes-with-a-slow.png Data: https://www.outofplace.space/data/blog/google-fonts-polish-web/2026-09-24/vitals.csv

Among sites with a blocking stylesheet, those asking for three or more families have a slower median LCP than those asking for one: 1.85s against 1.71s, with 1.8s for two families in between. The intervals of neighbouring groups overlap, and the groups mix WordPress and other sites.

**Blocking stylesheets with three or more families go with a slower LCP than those with one** (Median p75 LCP on phones, in seconds, of sites loading Google Fonts with a render-blocking stylesheet, by families requested · dot: median, line: 95% interval · CrUX, 28 days to 22 Sept 2026)

| Item | Value | Range | n |
| --- | --- | --- | --- |
| One family | 1.71s | 1.66s–1.77s | 898 |
| Two families | 1.8s | 1.73s–1.87s | 501 |
| Three or more | 1.85s | 1.8s–1.94s | 388 |

Source: Chrome UX Report (Google); Outofplace census, 24 Sept 2026. Chart: https://www.outofplace.space/data/blog/google-fonts-polish-web/charts/en/chart-blocking-stylesheets-with-three-or-more-families-go-with-a-slowe.png Data: https://www.outofplace.space/data/blog/google-fonts-polish-web/2026-09-24/vitals.csv

A WordPress site that loads Google Fonts may also run a heavier theme or page builder, and the fonts may mark that rather than cost the time themselves; we didn't measure themes. In shops we found no detectable gap, though the interval there is wide.

## Is Google Fonts GDPR compliant?

On 20 January 2022 the [Munich Regional Court (LG München I, 3 O 17493/20)](https://www.gesetze-bayern.de/Content/Document/Y-300-Z-BECKRS-B-2022-N-612) ruled against a site that passed a visitor's dynamic IP address to Google by embedding Google Fonts. The court held that the IP address is personal data for the site's operator and that there was no legitimate interest under Article 6(1)(f) GDPR, because the fonts can be used without the browser connecting to a Google server at all. It ordered the operator to stop, under a fine of up to €250,000, and to pay the visitor €100 in damages.

That is one German first-instance judgment, not an EU court ruling, and we found no position on Google Fonts from Poland's data protection authority (UODO). It is still the clearest court ruling on the question we could find.

[Google's Fonts FAQ](https://fonts.google.com/faq) (read on 22 October 2026) says the Google Fonts API "does not set or log cookies", that requests include the IP address, the requested URL and HTTP headers such as the user agent and referer, and that Google does not use the data "to create profiles of end users or for targeted advertising". It also says you can host the fonts yourself.

On the Polish web, consent rarely visibly comes into it. We could see 21 homepages hold Google Fonts back until the visitor agrees (one of the eight we checked by hand turned out not to); 2,931 load them with no consent gate our rules detect. Our rules miss some ways of gating a load (below), so the first number is a floor. Asking for consent is one way to deal with this; hosting the fonts yourself avoids the question entirely.

## Self-hosted fonts vs Google Fonts: which is faster?

The old argument for Google's servers was a shared cache: a visitor who had Roboto from one site wouldn't download it again on the next. In Chrome, that ended in 2020. [Chrome has partitioned its HTTP cache since Chrome 86](https://developer.chrome.com/blog/http-cache-partitioning), keyed by the site the visitor is on, and Google's own announcement names fonts among the resources that may now be downloaded more often.

What's left for Google's servers is good compression, subsetting and a fast CDN; what's left against them is two extra connections before the text can appear. web.dev's guide to font best practices calls the comparison "less clear cut" than it used to be, and recommends that sites using a third-party font service at least preconnect to it. Of the homepages linking Google Fonts, 47% preconnect to `fonts.gstatic.com`, and 142 of those leave out `crossorigin`, which web.dev says the font connection needs, so the browser opens a second one anyway.

Many sites already host fonts themselves: 26% of homepages serve a font file from their own domain, and 346 carry the trace of a self-hosting plugin or tool, such as Elementor's local fonts or webfonts-helper paths.

## How to self-host Google Fonts

**1. List what you load.**
Open the homepage in Chrome with DevTools, filter the Network panel to Font and CSS, and note every request to `fonts.googleapis.com` and `fonts.gstatic.com`. Check the theme, page builder and plugins too: they often add their own.

**2. Download only what you use.**
Get the WOFF2 files of the families, weights and styles the site really shows, with the latin-ext subset for Polish characters. Every weight is a separate file; most sites need two to four.

**3. Serve them from your domain.**
Put the files on your own server and write `@font-face` rules pointing at them, with `font-display: swap` so the text shows in a fallback font while the file loads. Preload the one or two files the first screen needs.

**4. Remove every link to Google.**
Delete the `<link>`, `@import` and preconnect lines for Google's font hosts. On WordPress, a self-hosting plugin or the theme's "load fonts locally" option does this; check the page source afterwards, because a plugin may still add its own.

**5. Measure again after four weeks.**
Look up the site in [PageSpeed Insights](https://pagespeed.web.dev/). The field data at the top covers a rolling 28 days, so the change shows in full after four weeks.

If you keep Google's servers, at least add `display=swap` to every URL, merge the families into one `css2` request, and preconnect to `fonts.gstatic.com` with `crossorigin`.

## How we measured

The homepages come from our census of 24 September 2026 by `OutofplaceResearchBot` (see [what our crawler fetches and how to block it](https://www.outofplace.space/bot)), which reads robots.txt first and fetches only the homepage: 8,023 of the 9,208 .pl domains in the Tranco list answered with HTML, and 7,785 distinct sites remained after merging domains that redirect to the same address.

We read each homepage's HTML without running it, after removing comments and `<noscript>` blocks: link tags, inline `<style>` blocks and inline scripts that refer to `fonts.googleapis.com` or `fonts.gstatic.com`. A homepage counts as "after consent" in two cases: a Google Fonts link whose address waits in a data attribute alongside a consent platform's attribute, or an inline script that loads Google Fonts and names a consent platform's API. A consent attribute on a script tag, or on a link with an ordinary href, isn't read, so such a load counts as not waiting. Shops come from the classifier of [our study of Core Web Vitals in Polish shops](https://www.outofplace.space/blog/core-web-vitals-polish-ecommerce), WordPress from a generator tag or wp-content and wp-includes paths in the HTML.

The speed data is Google's: the Chrome UX Report's 75th-percentile LCP and FCP on phones for every site with enough Chrome traffic, 28 days to 22 September 2026, fetched for the third-party scripts study. Medians and their 95% intervals come from 10,000 bootstrap resamples; groups under 30 sites aren't reported.

We drew 8 homepages from each mode, plus 8 classified as not loading Google Fonts whose HTML still names a Google font host, in a fixed random order, and read the HTML behind every one. 36 of the 40 were right, all 8 render-blocking ones among them. The misses: a form app's template stored in a JSON config, Web Font Loader's own code inlined with no families, a script that skips Lighthouse rather than waiting for consent, and a stylesheet a script copies out of a `<noscript>` block. An earlier sample shaped the rules for lazy and consent-gated links and isn't counted.

We saw the homepage only, as its HTML arrived, and ran none of it. Fonts requested from a site's own CSS files or added by scripts and widgets are invisible, so the shares here are floors. A homepage with only a preconnect may load Google Fonts from CSS we didn't read, or may carry a leftover hint. Homepages longer than 1 MiB were cut there (331 of them). The field data covers every page of a site, not just the homepage. And every speed difference here is a correlation: sites that load Google Fonts also differ in theme, hosting and build.

## Further reading

- [LG München I, judgment of 20 January 2022, 3 O 17493/20](https://www.gesetze-bayern.de/Content/Document/Y-300-Z-BECKRS-B-2022-N-612): The Munich Regional Court's ruling on Google Fonts and the GDPR, in German.

- [Google Fonts FAQ](https://fonts.google.com/faq): Google on what the Fonts API logs, cookies, and hosting the fonts yourself.

- [Best practices for fonts](https://web.dev/articles/font-best-practices): web.dev on font-display, preconnect with crossorigin, and self-hosting versus a font service.

- [Gaining security and privacy by partitioning the cache](https://developer.chrome.com/blog/http-cache-partitioning): Why a font cached on one site is downloaded again on the next, since Chrome 86.

- [Third-party scripts on the Polish web: who loads what](https://www.outofplace.space/blog/third-party-scripts-polish-web): Our study of the same sample: which third-party scripts Polish homepages load.
