Fachbeitrag
Google Fonts lokal hosten: warum die Schrift fehlt
15. April 2026 · Web und Datenschutz

Wer Google Fonts von Googles Servern lädt, gibt bei jedem Seitenaufruf die IP-Adresse seiner Besucher an Google weiter. Ohne Einwilligung ist das ein Fall für die DSGVO: Das Landgericht München hat einem Kläger dafür 2022 Schadenersatz zugesprochen. Seither führt der sichere Weg über die eigenen Server. Wer Google Fonts lokal hosten will, hat damit wenig Arbeit.
Wir haben es für diese Website getan, und die Schriften luden trotzdem nicht. Der Grund war ein Zeichen im Stylesheet.
Der Fehler, den man nicht sieht
Die Schriftdateien lagen lokal.
Das Stylesheet verwies auf sie.
Der Browser lud sie nicht, und in den von uns geprüften Browsern blieb die Konsole dabei stumm.
Die Seite lief in der Systemschrift, und das fällt nur auf, wenn man weiß, wie sie eigentlich aussehen sollte.
Der Verweis lautete url(http://www.beispiel.de/wp-content/fonts/archivo.woff2).
Die Seite selbst läuft über https.
Browser behandeln eine unverschlüsselte Ressource auf einer verschlüsselten Seite als Mixed Content und laden sie schlicht nicht.
Bilder stufen die Browser inzwischen selbsttätig auf https hoch, Schriften und Skripte blockieren sie stillschweigend.
Die Lösung braucht keine Konfiguration
Man kann jetzt anfangen, die Adresse in der Datenbank zu suchen, oder eine Regel schreiben, die http durch https ersetzt.
Beides funktioniert und beides bricht wieder, sobald die Domain sich ändert.
Der bessere Weg ist, das Protokoll gar nicht erst zu nennen: url(fonts/archivo.woff2).
Ein relativer Pfad erbt Protokoll und Domain von der Datei, in der er steht.
Er funktioniert auf der Testinstallation, auf der Produktivseite und nach einem Domainwechsel, ohne dass jemand etwas nachzieht.
Was beim Selbsthosten sonst noch schiefgeht

Die Zeichenbereiche vergessen.
Google liefert für jede Schrift mehrere Dateien, je eine für Latein, erweitertes Latein, Kyrillisch.
Wer nur die Datei für Latein herunterlädt, merkt es an deutschem Text zunächst nicht, denn die Umlaute liegen im Grundbereich. Erst ein Ortsname wie Łódź oder Plzeň fällt in die Systemschrift zurück, bei kyrillischem Text die ganze Zeile.
Die unicode-range-Angaben gehören mit übernommen.
Zu viele Schnitte laden.
Eine variable Schriftdatei deckt alle Stärken von 100 bis 900 ab und ist laut MDN höchstens etwa so groß wie die vier festen Schnitte, die man sonst für den Fließtext lädt.
Für diese Website sind es vier Dateien, zusammen etwa 216 KB, und damit sind zwei Schriftfamilien in allen Stärken abgedeckt.
Der Baukasten lädt weiter nach.
Wer die Schriften unter WordPress selbst hosten will, ist mit dem Ablegen der Dateien noch nicht fertig: Der Baukasten holt sie sich weiter bei Google.
Elementor etwa hat dafür einen eigenen Schalter. Er sitzt im Editor unter „Universal settings → Disable Google Fonts“; der Hilfebereich beschreibt den Weg dorthin. Ob nach dem lokalen Ablegen der Dateien noch etwas von Google nachgeladen wird, zeigt erst die Prüfung des Quelltextes.
Wie man es prüft, statt es zu glauben

Den Anfang macht ein Befehl auf der Kommandozeile:
curl -s https://www.beispiel.de/ | grep -iE 'fonts\.(googleapis|gstatic)\.com'Im Quelltext steht in aller Regel nur die googleapis-Adresse, die gstatic-Dateien holt erst das von dort ausgelieferte Stylesheet.
Kommt nichts zurück, ist der offensichtliche Einstieg weg. Dann geht man die verlinkten Stylesheets einzeln durch; in einem davon steckte auch in diesem Fall der Fehler.
Was am Ende wirklich über die Leitung geht, zeigt der Netzwerk-Tab der Entwicklerwerkzeuge beim Neuladen der Seite.
Ein Blick in die Einstellungen ersetzt das nicht: Die Einstellung sagt, was gewollt ist, der Quelltext sagt, was passiert.
Was daraus folgt
Datenschutz auf einer Website ist selten eine Frage der Absicht und meistens eine Frage der Prüfung.
Die unbequeme Folgerung: Bei Schriften merkt man den Fehler, weil die Seite anders aussieht.
Bei einem Analysewerkzeug oder einer eingebetteten Karte fehlt dieses sichtbare Signal; ob dort ein Third-Party-Request läuft, zeigt nur der Netzwerk-Tab der Entwicklerwerkzeuge.
Quellen
Quellen zuletzt geprüft am 25. August 2026.
- Landgericht München I: Endurteil v. 20.01.2022 – 3 O 17493/20, Rechtsprechungsdatenbank des Freistaats Bayern. Daraus das Urteil im Vorspann, im Wortlaut des Tenors: die Beklagte wird verurteilt, es zu unterlassen, „bei einem Aufruf einer von der Beklagten betriebenen Internetseite durch den Kläger dessen IP-Adresse durch Bereitstellung einer Schriftart des Anbieters Google (Google Fonts) dem Anbieter dieser Schriftart offenzulegen“, und „an den Kläger 100,00 € zuzüglich Zinsen“ zu zahlen. gesetze-bayern.de, 3 O 17493/20
Belege aus den MDN Web Docs
- Mixed content, Stand 15. August 2026. Daraus der Kern des Beitrags. Schriften stehen dort ausdrücklich unter den blockierbaren Inhalten: „All cases in CSS where a <url> value is used (@font-face, cursor, background-image, and so forth)“. Browser „block insecure requests for all other resource types“, während unsichere Bilder nach dieser Fassung selbsttätig auf https hochgestuft werden. developer.mozilla.org, Mixed content
- unicode-range, Stand 20. April 2026. Daraus der Abschnitt zu den Zeichenbereichen: „If the page doesn’t use any character in this range, the font is not downloaded; if it uses at least one, the whole font is downloaded.“ Der latin-Bereich reicht dort bis U+00FF und enthält damit die deutschen Umlaute; Zeichen wie ł, ź oder ň liegen im erweiterten Bereich. developer.mozilla.org, unicode-range
- Variable fonts guide, Stand 27. Februar 2026. Daraus die eine Datei für alle Stärken und der Größenvergleich „smaller or about the same size as the 4 you might load for body copy“; die Achse wght reicht dort von 1 bis 1000, in der älteren Schreibweise 100 bis 900. developer.mozilla.org, Variable fonts
Anbieterangabe und eigene Messungen
- Elementor: Disable Google Fonts, Hilfebereich, Weg „Build with the Editor → Universal settings → Disable Google Fonts“. Daraus der eigene Schalter des Baukastens. Anbieterangabe; von der Seite war nur die Überschrift samt Navigationsweg lesbar, der Fließtext kam beim Abruf nicht mit. elementor.com, Disable Google Fonts
- Eigene Messung an dieser Website am 25. August 2026: vier ausgelieferte woff2-Dateien mit zusammen rund 216 KB, ermittelt als Summe der Dateigrößen auf dem Server, die zwei Schriftfamilien in allen Stärken abdecken.
- Eigene Beobachtung an dieser Website am 25. August 2026, geprüft in Firefox und Chrome in der zu diesem Zeitpunkt jeweils aktuellen Fassung: die wegen Mixed Content blockierte woff2-Datei erschien in der Konsole weder als Fehler noch als Warnung. Daraus die stumme Konsole im ersten Abschnitt.
- Thema
- Schriften lokal hosten
- Betrifft
- WordPress, Elementor, jede Seite mit Webfonts
- Rechtsgrundlage
- Art. 6 DSGVO, LG München I, Urteil vom 20.01.2022, 3 O 17493/20
- Autor
- phi ec
info@phiec.de
Wir sehen nach, was Ihre Seite nachlädt.
Eine Prüfung zeigt jeden fremden Server, den die Seite anspricht. Was davon weg kann, sagen wir dazu.