Über viele Jahre galt das dynamische Einbinden von Schriftarten über fonts.googleapis.com und fonts.gstatic.com als Standard für WordPress-Themes. Ein einfaches <link>-Tag im Header genügte, um typografische Vielfalt zu gewährleisten. Aus Sicht des europäischen Datenschutzrechts sowie moderner Web-Performance birgt dieser Ansatz jedoch erhebliche Haftungsrisiken und Ladezeitverluste.
In diesem Leitfaden beleuchten wir die rechtlichen Grundlagen des viel beachteten Urteils des Landgerichts München I, erläutern den Personenbezug dynamischer IP-Adressen und zeigen praxiserprobte Wege zur lokalen WOFF2-Bereitstellung in WordPress und WooCommerce.
1. Das Urteil des LG München I (Az. 3 O 17493/20): Sachverhalt und Rechtsfolgen
Am 20. Januar 2022 entschied das Landgericht München I (Az. 3 O 17493/20) über die Klage eines Website-Besuchers gegen einen Seitenbetreiber. Das Urteil löste in Deutschland eine breite Abmahnwelle aus. Der Entscheidungstext steht im bayerischen Justizportal gesetze-bayern.de, die Zitate unten stammen von dort.
Der Sachverhalt
Die Beklagte betrieb eine Website, die Google Fonts von Google-Servern nachlud. Beim Seitenaufruf gelangte dadurch die dynamische IP-Adresse des Klägers an Google. Die Beklagte räumte im Verfahren ein, dass sie vor der Änderung ihrer Seite bei den Besuchen des Klägers dessen IP-Adresse an Google übermittelt hatte. Von User-Agent oder Referrer ist im Urteilstext keine Rede. Einen solchen Datensatz sollten Sie also nicht als Teil dieses Urteils zitieren.
Die rechtliche Würdigung des Gerichts
Das Gericht stufte diesen Vorgang als rechtswidrige Datenverarbeitung im Sinne der Verordnung (EU) 2016/679 (DSGVO) ein:
- IP-Adresse als personenbezogenes Datum: Gemäß Art. 4 Nr. 1 DSGVO und der Rechtsprechung des Europäischen Gerichtshofs (EuGH, Urteil vom 19. Oktober 2016, Rs. C-582/14 Patrick Breyer gegen Bundesrepublik Deutschland) stellt auch eine dynamische IP-Adresse ein personenbezogenes Datum dar, da rechtliche und technische Mittel zur Bestimmung der Person bestehen.
- Fehlende Einwilligung nach Art. 6 Abs. 1 lit. a DSGVO: Der Webseitenbesucher hatte vor dem Verbindungsaufbau keine informierte, freiwillige Einwilligung erteilt.
- Kein berechtigtes Interesse nach Art. 6 Abs. 1 lit. f DSGVO: Die Beklagte argumentierte, dass die Nutzung des Google-Dienstes aus Gründen der einheitlichen Schriftdarstellung erforderlich sei. Das Gericht wies diese Begründung entschieden zurück. Google Fonts können problemlos heruntergeladen und auf dem eigenen Server gehostet werden. Das Gericht weist außerdem darauf hin, dass in den USA kein angemessenes Datenschutzniveau besteht. Art. 44 DSGVO nennt das Urteil dabei nicht ausdrücklich.
- Schadensersatzanspruch nach Art. 82 Abs. 1 DSGVO: Das Gericht sprach dem Kläger 100 EUR zu, nebst Zinsen. Es begründete den Schaden mit dem Kontrollverlust über ein personenbezogenes Datum und dem vom Kläger empfundenen individuellen Unwohlsein. Zusätzlich verurteilte es die Beklagte zur Unterlassung und drohte für jeden Fall der Zuwiderhandlung ein Ordnungsgeld von bis zu 250.000 EUR an. Außerdem musste sie Auskunft darüber geben, ob und welche Daten des Klägers sie verarbeitet.
2. Was entscheidet das Urteil, und was entscheidet es nicht?
Das Urteil ist die Entscheidung eines Landgerichts in einem Einzelfall. Es ist keine Entscheidung eines Bundesgerichts und bindet andere Gerichte nicht. Seine Argumentation ist trotzdem leicht auf jede WordPress-Seite übertragbar, die Schriften direkt von Google lädt, denn sie beruht auf drei Punkten:
- Die dynamische IP-Adresse ist für den Seitenbetreiber ein personenbezogenes Datum. Nach dem Urteilstext genügt die abstrakte Bestimmbarkeit, auf eine konkrete Verknüpfungsmöglichkeit kommt es nicht an.
- Eine Einwilligung nach Art. 6 Abs. 1 lit. a DSGVO lag nicht vor.
- Ein berechtigtes Interesse nach Art. 6 Abs. 1 lit. f DSGVO verneinte das Gericht, weil sich Google Fonts auch ohne Verbindung zu einem Google-Server nutzen lassen.
Der dritte Punkt ist für die Praxis der wichtigste. Wer die Schriften selbst ausliefert, braucht für den Abruf keine Rechtsgrundlage gegenüber Google, weil keine Verbindung zu Google entsteht. Das Argument, die Schrift sei für die Darstellung nötig, trägt dann nicht mehr als Rechtfertigung für einen Drittanbieter-Abruf.
Zu § 25 TDDDG (vormals TTDSG): Die Vorschrift verlangt eine Einwilligung für Speicherung und Zugriff auf Informationen im Endgerät des Nutzers. Die Entscheidung stützt sich auf sie nicht. Ob ein reiner Schriftabruf darunter fällt, ist eine eigene Frage, die ich hier nicht beantworte. Für Österreich (Datenschutzbehörde) und die Schweiz (revDSG) habe ich keine Primärquelle zu Google Fonts gefunden und lasse beides deshalb weg. Eine Rechtsberatung ersetzt dieser Beitrag nicht. Die technische Umstellung auf Eigenhosting nimmt Ihnen aber die Angriffsfläche, die das Urteil beschreibt.
3. Warum Cookie-Banner das Problem nicht sauber lösen
Viele Webmaster versuchten, das Problem durch das Blockieren von Google Fonts innerhalb ihres Cookie-Banners (Consent Management Platform) zu lösen.
Dieser Behelfsweg bringt jedoch gravierende Nachteile mit sich:
- Layout-Verschiebungen (FOIT / FOUT): Verweigert der Nutzer die Einwilligung, wird die Seite mit Standardschriften (wie Times New Roman) gerendert, was zu unschönen Sprüngen im Cumulative Layout Shift (CLS) führt.
- Verzögertes Rendering: Schriftarten werden erst geladen, nachdem das Banner bestätigt wurde, was den Largest Contentful Paint (LCP) spürbar verschlechtert.
- Konvertierungsverluste: Datenschutzbewusste Kunden sollten nicht mit einer unvollständigen Typografie bestraft werden.
Typografische Dateien sind strukturelle Gestaltungselemente und keine Werbe-Tracker. Sie gehören direkt auf den eigenen Host.
4. Performance-Vorteile des lokalen Hostings (Core Web Vitals)
Das Argument, dass Googles CDN durch browserspezifisches Caching schneller sei, trifft seit der Einführung des Cache Partitioning in allen modernen Browsern nicht mehr zu. Aus Sicherheitsgründen (Schutz vor Fingerprinting) besitzt jede Domain einen isolierten Cache.
Lokales Hosting bietet handfeste Geschwindigkeitsvorteile:
| Kriterium | Externe Google Fonts | Lokales WOFF2-Hosting |
|---|---|---|
| Externe Verbindungen | 2 Drittanbieter-Domains (fonts.googleapis.com, fonts.gstatic.com) | 0 zusätzliche Domains (gleicher Host oder eigener CDN) |
| DNS- & TLS-Overhead | 2 x DNS-Abfrage + 2 x TLS-Handshake (100-250 ms Latenz) | 0 ms (Multiplexing über bestehende HTTP/2- oder HTTP/3-Verbindung) |
| Ausfallsicherheit | Störung bei Google beeinträchtigt Schriftdarstellung | 100% autark und unabhängig |
| DSGVO-Konformität | Hohes Abmahnrisiko nach Art. 6 & 44 DSGVO | Vollständig konform (kein Datenabfluss in Drittländer) |
5. Lösungsansätze im WordPress-Ökosystem
Für WordPress- und WooCommerce-Betreiber stehen im Wesentlichen zwei Wege zur Verfügung.
Weg A: Dedizierte Schriftarten-Plugins (z. B. OMGF / Host Webfonts Locally)
Das Plugin OMGF von Daan van den Bergh konzentriert sich gezielt auf das Abfangen von Google Fonts:
- Funktionsweise: Durchsucht eingebundene Stylesheets nach Google-URLs, lädt die WOFF2-Dateien in das Verzeichnis
wp-content/uploads/omgf/und bindet eine lokale CSS-Datei ein. - Vorteile: Schlank für Webmaster, die ausschließlich Schriften verwalten wollen.
- Grenzen: Erfordert bei Theme-Aktualisierungen manuelle Cache-Prüfungen.
Weg B: Integrierte E-Commerce-Compliance mit Shoplex
Im europäischen Online-Handel müssen Händler neben Schriften zahlreiche weitere Vorgaben erfüllen: die Omnibus-Richtlinie (30-Tage-Tiefstpreis), B2B-Kaufbeschränkungen, Widerrufsbelehrungen, Pfandsysteme und den European Accessibility Act (EAA).
Das Plugin Shoplex bündelt diese Anforderungen und stellt ein integriertes LocalFontsService-Modul bereit:
- Automatisches Zero-Leakage-Filtering: Fängt über den Hook
style_loader_srcexterne Stylesheets ab und entfernt überflüssige<link rel="preconnect" href="https://fonts.gstatic.com">-Tags. - WOFF2-Optimierung: Lädt komprimierte WOFF2-Dateien mit modernem Subset (Latin und Latin-Extended), sodass alle Sonderzeichen und Umlaute (
ä,ö,ü,ß) sauber abgebildet werden. - Lokale Dateien mit
font-display: swap: Speichert die Schriftdateien unterwp-content/uploads/shoplex-fonts/, schreibt die@font-face-Regeln auf diese Dateien um und setztfont-display: swap. Die wichtigsten Latin-WOFF2-Dateien lädt es per Preload vor, das senkt Layoutverschiebungen. Cache-Header für diese Dateien setzt Ihr Server oder CDN, nicht das Plugin.
Aktualisierung, : Das Modul für lokale Schriften ist mit Shoplex 1.6.4 auf WordPress.org erschienen (3. November 2026). Es deckt Google Fonts und Bunny Fonts ab und entfernt neben preconnect auch dns-prefetch-Hinweise.
6. Woran erkenne ich, welches Theme oder Plugin Google Fonts nachlädt?
Vor der Umstellung brauchen Sie eine vollständige Liste der Quellen. Ich gehe in dieser Reihenfolge vor:
- Quelltext durchsuchen: Seite im Browser öffnen,
Strg+Ubzw.Cmd+Option+Udrücken und nachfonts.googleapis.comundfonts.gstatic.comsuchen. Der Treffer zeigt das<link>-Tag samtid-Attribut. Bei WordPress-Styles endet dieidauf-css, der Teil davor ist das Handle fürwp_dequeue_style(). - Netzwerk-Reiter prüfen: Dort erscheinen auch Anfragen, die erst per JavaScript ausgelöst werden und im Quelltext fehlen. Die Spalte Initiator nennt die Datei, die die Anfrage ausgelöst hat.
- Mehrere Seitentypen testen: Startseite, Beitrag, Produktseite und Warenkorb laden oft unterschiedliche Stylesheets. Eine saubere Startseite beweist nichts über den Checkout.
- Quellen in Ihrem Setup abklopfen: Das Theme (Typografie-Einstellungen), der Page Builder, Zusatz-Plugins mit eigenen Widgets und Einbettungen von Drittanbietern können jeweils Google Fonts mitbringen.
Bei Elementor bietet das Hilfecenter eigene Artikel zu “Disable Google Fonts” und “Choose a loading method for Google fonts”. Der genaue Menüpunkt hängt von Version und Lizenz ab, prüfen Sie ihn deshalb in Ihrer Installation. Ich nenne hier keine weiteren Builder, deren Einstellungen ich nicht gegen die Dokumentation geprüft habe.
Seit WordPress 6.5 gibt es außerdem die Schriftenbibliothek im Editor. Laut dem WordPress-Core-Team lädt eine dort installierte Google-Schrift die Datei auf den WordPress-Server, standardmäßig nach wp-content/fonts. Der Auslieferungspfad liegt damit auf Ihrer eigenen Domain. Wer Blockthemes nutzt, kann diesen Weg ohne Zusatz-Plugin gehen.
7. Eigene Zero-Leakage-Umsetzung im Theme
Wer ein eigenes Theme entwickelt, kann die Bereitstellung direkt in PHP und CSS vornehmen.
Schritt 1: Externe Schriften deregistrieren
add_action( 'wp_enqueue_scripts', function(): void {
wp_dequeue_style( 'theme-google-fonts' );
wp_deregister_style( 'theme-google-fonts' );
}, 999 );Schritt 2: Preconnect-Hinweise bereinigen
add_filter( 'wp_resource_hints', function( array $urls, string $relation_type ): array {
if ( in_array( $relation_type, array( 'preconnect', 'dns-prefetch' ), true ) ) {
$urls = array_filter( $urls, static function( string $url ): bool {
return ! str_contains( $url, 'fonts.googleapis.com' )
&& ! str_contains( $url, 'fonts.gstatic.com' );
} );
}
return $urls;
}, 10, 2 );Schritt 3: Lokale @font-face-Definitionen im CSS
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/wp-content/themes/ihr-theme/assets/fonts/inter-v13-latin-regular.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0100-02AF;
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/wp-content/themes/ihr-theme/assets/fonts/inter-v13-latin-700.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0100-02AF;
}8. Wie binde ich lokale Schriften mit Preload ein?
Ein Preload lohnt sich für die ein bis zwei Schriftschnitte, die oberhalb des Falzes gerendert werden. Für Schriften verlangt MDN das Attribut crossorigin, auch wenn die Datei von derselben Domain kommt. Fehlt es, lädt der Browser die Datei doppelt, weil die Preload-Anfrage und die spätere Schriftanfrage nicht zusammenpassen.
<link rel="preload" href="/wp-content/themes/ihr-theme/assets/fonts/inter-v13-latin-regular.woff2" as="font" type="font/woff2" crossorigin>font-display: swap zeigt den Text sofort in einer Ersatzschrift und tauscht die Schrift, sobald die Datei geladen ist. web.dev beschreibt diese Zeitspanne als Swap-Periode. Der Preload verkürzt die Zeit bis zum Tausch, er garantiert sie nicht. Binden Sie nur WOFF2 ein, die älteren Formate brauchen Sie für aktuelle Browser nicht mehr.
9. Was tun, wenn nach der Umstellung weiter Anfragen an Google gehen?
| Beobachtung | Mögliche Ursache | Prüfung |
|---|---|---|
fonts.googleapis.com taucht weiter im Netzwerk-Reiter auf | Eine zweite Quelle (Plugin, Widget, Einbettung) lädt die Schrift | Spalte Initiator ansehen, im Quelltext nach dem Handle suchen |
| Der Quelltext ist sauber, die Anfrage bleibt | Seitencache oder CDN liefert altes HTML | Cache leeren, Seite im privaten Fenster neu laden |
| Konsole meldet, eine Datei sei vorgeladen, aber nicht genutzt | crossorigin fehlt, oder Pfad und Schnitt im Preload passen nicht zur @font-face-Regel | Preload-Tag mit dem src der Regel vergleichen |
| Seite zeigt eine Ersatzschrift | Die WOFF2-Datei antwortet mit 404, oder der font-family-Name stimmt nicht | Netzwerk-Reiter, Statuscode der Datei |
| Einzelne Zeichen erscheinen in der Ersatzschrift | unicode-range oder das Subset der Datei deckt sie nicht ab | Regel und heruntergeladene Datei prüfen |
Mein Vorschlag für die Fehlersuche: Immer erst den Initiator der Anfrage ermitteln, dann die Quelle abschalten. Ein Dequeue auf Verdacht trifft oft das falsche Handle.
Wer das Thema laufend im Griff haben will, findet die dauerhafte Pflege solcher Details in der WordPress-Wartung. Für eine Bestandsaufnahme aller externen Verbindungen einer Seite eignet sich zudem ein Sicherheitsaudit für WordPress.
10. Prüfroutine in den DevTools
Prüfen Sie nach der Umstellung die Netzwerkanfragen:
- Öffnen Sie ein neues privates Fenster im Browser (Inkognito).
- Starten Sie die Entwicklertools (F12) und wählen Sie den Reiter Netzwerk (Network).
- Filtern Sie nach:
fonts. - Laden Sie die Seite neu (Strg+F5 bzw. Cmd+Shift+R).
- Erfolgsprüfung:
- Keine Anfragen an
fonts.googleapis.comoderfonts.gstatic.com. - Alle
.woff2-Dateien stammen von Ihrer eigenen Domain. - Der Antwort-Header weist
content-type: font/woff2auf.
- Keine Anfragen an
Fazit
Das Urteil des LG München I hat unmissverständlich verdeutlicht, dass Entwicklerkomfort nicht zulasten der informationellen Selbstbestimmung der Nutzer gehen darf.
Die lokale Bereitstellung von Google Fonts in WordPress verbindet lückenlose Rechtssicherheit gemäß Art. 6 Abs. 1 DSGVO mit handfesten Geschwindigkeitsgewinnen für die Core Web Vitals. Ob mit einem Spezial-Plugin wie OMGF, dem Compliance-Paket Shoplex oder per eigenem Theme-Code: Das Eliminieren externer Schriftenaufrufe gehört heute zum unverzichtbaren Handwerkszeug jedes professionellen Webmasters.






