🎉 Use coupon MYXERO to enjoy 20% recurring discount on any plan. View Pricing
LocalFonts
LocalFonts

LocalFonts

0/5 (0 ratings) — active installs Updated Apr 15, 2026
Settings page showing system status and the write-permissions check.

Settings page showing system status and the write-permissions check.

LocalFonts automatically detects, downloads, and serves Google Fonts from your own server instead of loading them from Google’s external CDN. No manual configuration needed — just activate and your site’s fonts are instantly self-hosted.

Why Self-Host Google Fonts?

Loading web fonts from Google’s servers (fonts.googleapis.com and fonts.gstatic.com) sends your visitors’ IP addresses to Google with every page load. This raises serious privacy concerns and has legal implications under data protection regulations worldwide.

  • GDPR & DSGVO Compliance — European courts have ruled that loading Google Fonts from Google’s servers without consent violates GDPR (General Data Protection Regulation) / DSGVO (Datenschutz-Grundverordnung). A German court fined a website operator for transmitting visitor IP addresses to Google via externally loaded fonts. Self-hosting fonts eliminates this risk entirely.
  • Privacy Protection — When fonts are served locally, zero connections are made to Google’s servers. No visitor IP addresses are transmitted, no tracking occurs, and no third-party requests are made. Your visitors’ data stays on your server.
  • Faster Page Load Times — Eliminate extra DNS lookups, TCP connections, and TLS handshakes to fonts.googleapis.com and fonts.gstatic.com. Local fonts load from the same server as your site, reducing latency and improving Core Web Vitals metrics including Largest Contentful Paint (LCP), First Contentful Paint (FCP), and Cumulative Layout Shift (CLS).
  • Better PageSpeed & Performance Scores — Google PageSpeed Insights, GTmetrix, and Lighthouse often flag external font loading as a performance bottleneck. Self-hosting fonts eliminates “Reduce the impact of third-party code” and “Preconnect to required origins” warnings.
  • Reliability & Uptime — No dependency on Google’s CDN availability. Your fonts work even if Google’s servers are slow, blocked, or unreachable in certain regions or corporate networks.
  • Simplified Cookie Consent — By eliminating third-party connections to Google, you reduce the scope of your cookie consent and privacy policy requirements, as there are fewer external services to disclose.

What Google Font References Does It Catch?

This plugin intercepts Google Fonts loaded through every common method used by WordPress themes, plugins, and page builders:

  • Enqueued stylesheets — Fonts registered and enqueued via wp_enqueue_style() using the Google Fonts CSS API v1 (/css?family=) and CSS API v2 (/css2?family=)
  • Hardcoded <link> tags — Font references hardcoded directly in theme templates, header.php, footer.php, or plugin output
  • CSS @import url(...) rules — Import statements in inline <style> blocks and external stylesheets
  • CSS @import "..." rules — Import statements without the url() wrapper (valid CSS syntax)
  • Google Material Icons — References to the /icon endpoint at fonts.googleapis.com for Material Design icon fonts and Material Symbols
  • Protocol-relative URLs — URLs starting with //fonts.googleapis.com (without https:)
  • HTML-encoded URLs — URLs containing &amp; and other HTML entities commonly output by themes and page builders

It also removes dns-prefetch and preconnect resource hints for fonts.googleapis.com and fonts.gstatic.com, ensuring your site makes absolutely zero connections to Google’s font servers.

How It Works

  1. Detect — On the first page load after activation, the plugin automatically identifies all Google Font URLs across your entire site.
  2. Download — Font files are downloaded in the background via WP-Cron so visitors experience no delay. The plugin requests WOFF2 format — the smallest and fastest web font format supported by all modern browsers.
  3. Rewrite — All Google Font references in your page HTML are rewritten to point to the locally hosted copies on your server.
  4. Serve — Subsequent page loads serve the cached local font files instantly from your own server with no external requests.

Font files are stored in wp-content/uploads/lgfl-fonts/ with each unique font URL getting its own subdirectory.

Compatibility

LocalFonts works with virtually any WordPress setup:

  • Any WordPress theme — flavor starter themes, starter themes, commercial themes, custom themes, classic themes, and block themes (Full Site Editing)
  • Page builders — Elementor, Beaver Builder, Divi, WPBakery, Brizy, Oxygen, Bricks, Breakdance, Kadence, GeneratePress, Avada, and more
  • WooCommerce — Catches fonts loaded by WooCommerce and its extensions
  • Block Editor (Gutenberg) — Works with the native WordPress block editor and block-based themes
  • Multilingual plugins — Compatible with WPML, Polylang, TranslatePress, and other translation solutions
  • Caching plugins — Works alongside WP Super Cache, W3 Total Cache, LiteSpeed Cache, WP Rocket, and other caching solutions
  • Any plugin that loads Google Fonts — If it loads fonts from fonts.googleapis.com, LocalFonts will catch and self-host them

Features

  • Zero configuration — Works automatically on activation with no settings to configure
  • Enable/disable toggle — Easily turn local font hosting on and off from Settings
  • Manual download button — Pre-download all detected Google Fonts with one click
  • System status dashboard — Check write permissions, filesystem method, and font storage directory status at a glance
  • Async background downloads — Fonts are downloaded via WP-Cron in the background so the first visitor is never delayed
  • Clean uninstall — All downloaded font files and plugin settings are removed when you uninstall the plugin, following WordPress best practices

External services

This plugin connects to the Google Fonts API (fonts.googleapis.com) and the Google Fonts CDN (fonts.gstatic.com) to download font files for local hosting. These connections happen only when a Google Font URL is first detected on your site and is not yet cached locally.

What is sent: the Google Font family name and variant parameters as they appear in the requesting CSS URL (e.g., family=Roboto:wght@400;700). No site data, user data, or personal information is transmitted.

When it is sent: once per unique Google Font URL, during an asynchronous WP-Cron job triggered the first time the font is seen. All subsequent page loads serve font files from your own server with zero external requests.

Service provider: Google LLC
Terms of Service: https://developers.google.com/fonts/faq#what_does_using_the_google_fonts_api_mean_for_the_privacy_of_my_users
Privacy Policy: https://policies.google.com/privacy