Aktualisiert: Marz 2026 · Lesezeit: 10 Min.
WordPress und Google Fonts — das ist so eine Hassliebe. Praktisch jedes Theme ladt Google Fonts. Astra, GeneratePress, OceanWP, Divi, Elementor-Themes sowieso. Die Fonts sehen gut aus, laden schnell uber Googles CDN... und verstossen seit dem Munchner Urteil von 2022 gegen die DSGVO.
Ich hab in den letzten drei Jahren bestimmt 50 WordPress-Seiten umgestellt. Dabei hat sich gezeigt: Es gibt drei Wege, und welcher der richtige ist, hangt davon ab, wie tief Sie in die Technik einsteigen wollen.
Fur 90% aller Falle reicht das. OMGF (Optimize My Google Fonts) von Daan van den Bergh ist kostenlos, leichtgewichtig und macht genau das Richtige.
Fertig. Ernsthaft. Bei den meisten Seiten wars das.
OMGF speichert die Fonts unter /wp-content/uploads/omgf/ und fugt die @font-face-Regeln automatisch in den Head ein. Gleichzeitig entfernt es die externen Stylesheet-Requests. Was will man mehr?
Bei Seiten mit vielen Plugins, die jeweils eigene Google-Fonts-Anfragen starten. Contact Form 7 macht das manchmal, WooCommerce-Erweiterungen auch. In dem Fall mussen Sie in OMGF unter "Advanced" die Option "Process External Stylesheets" aktivieren. Dann erwischt es auch die versteckten Requests.
Wer lieber selbst Hand anlegt oder ein Child-Theme pflegt, kann die Sache auch ohne Plugin losen. Braucht ein bisschen mehr Code, gibt Ihnen aber volle Kontrolle.
Das ist der tricky Teil. Jedes Theme registriert seine Google-Fonts-Styles unter einem anderen Namen. Fugen Sie temporar diesen Code in Ihre functions.php ein:
add_action('wp_print_styles', function() {
global $wp_styles;
foreach ($wp_styles->registered as $handle => $style) {
if (strpos($style->src, 'fonts.googleapis') !== false) {
error_log("Google Font handle: " . $handle . " => " . $style->src);
}
}
});
Schauen Sie dann ins Error-Log (/wp-content/debug.log bei aktiviertem WP_DEBUG). Da stehen die Handle-Namen drin. Bei Astra ist es typischerweise astra-google-fonts, bei GeneratePress generate-fonts.
add_action('wp_enqueue_scripts', function() {
// Hier die gefundenen Handle-Namen einsetzen
wp_dequeue_style('astra-google-fonts');
wp_deregister_style('astra-google-fonts');
// Falls Elementor eigene Fonts ladt:
wp_dequeue_style('elementor-icons');
}, 100);
Die Prioritat 100 ist wichtig — damit wird der Code nach dem Theme ausgefuhrt und kann dessen Styles uberschreiben.
Laden Sie die Fonts vom Google Webfonts Helper herunter und legen Sie sie unter /wp-content/fonts/ ab. Dann:
add_action('wp_head', function() { ?>
<style>
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('<?php echo get_site_url(); ?>/wp-content/fonts/roboto-v30-latin-regular.woff2') format('woff2');
}
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('<?php echo get_site_url(); ?>/wp-content/fonts/roboto-v30-latin-700.woff2') format('woff2');
}
</style>
<?php });
Manche Themes haben mittlerweile eine eingebaute Option dafur. Kein Wunder — nach der Abmahnwelle haben die Theme-Entwickler reagiert.
Customizer > Global > Typography > "Load Google Fonts Locally" aktivieren. Zusatzlich "Preload Fonts" ankreuzen fur bessere Performance. Das war's.
Customizer > Typography > Bei jeder Font-Auswahl gibt es die Option "Google" oder "Local". Einfach auf Local umstellen.
Divi > Theme Options > General > "Improve Google Fonts Loading" aktivieren. Achtung: Das reicht allein nicht — Sie mussen zusatzlich unter Performance die Option "Don't use Google Fonts" aktivieren und die Fonts manuell lokal einbinden.
Ehrlich gesagt: Die Theme-Optionen funktionieren mal besser, mal schlechter. Bei Astra klappt es zuverlassig, bei Divi hab ich schon Falle gehabt, wo trotzdem noch externe Requests durchkamen. Im Zweifel: Immer nachtesten.
Elementor verdient einen eigenen Abschnitt, weil es besonders hartnackig ist. Der Page Builder hat seine eigene Font-Verwaltung und ignoriert teilweise, was das Theme macht.
// Elementor Google Fonts komplett deaktivieren
add_filter('elementor/frontend/print_google_fonts', '__return_false');
// Auch Elementor Icons (die laden ebenfalls von extern)
add_action('wp_enqueue_scripts', function() {
wp_dequeue_style('elementor-icons-fa-solid');
}, 100);
Dann in Elementor > Einstellungen > Erweitert: "Google Fonts laden" auf "Nein" setzen.
Egal welche Methode — danach immer prufen:
Besonders Punkt 5 und 6 werden gerne vergessen. Wenn Sie WP Rocket nutzen und den Cache nicht leeren, sehen Sie stundenlang die alte Version mit externen Fonts — und denken, die Umstellung hat nicht geklappt.