OMGF | GDPR Compliant, Faster Google Fonts. Easy.


How could using fonts via Google’s service possibly run afoul of GDPR? The fact of the matter is that, when a font is requested by the user’s browser, their IP is logged by Google and used for analytics.
— Lifehacker

Leverage Browser Cache, reduce DNS lookups/requests, reduce Cumulative Layout Shift and make your Google Fonts 100% GDPR compliant with OMGF!

OMGF is written with performance and user-friendliness in mind. It uses the Google Fonts API to automatically cache the fonts your theme and plugins use to minimize DNS requests and speed up your WordPress website.

How Does It Work?

After installing the plugin, OMGF will automatically start looking for Google Fonts whenever a page is requested on your website.

All Google Fonts are listed in the Manage Optimized Fonts section of OMGF’s settings screen. There, you can choose to:

  • Preload fonts to reduce Cumulative Layout Shift above the fold,
  • Unload fonts that’re not used by you, your theme and/or plugins,
  • Set a Fallback Font Stack (OMGF Pro required), to further reduce Cumulative Layout Shift, or
  • Replace (OMGF Pro required) font-families with system fonts to speed up loading times!

Other Features include

  • Variable Fonts support,
  • Remove unused subsets to reduce the size of the CSS stylesheet,
  • Remove Resource Hints (preload, preconnect, dns-prefetch) pointing to or,
  • Ensure text remains visible during webfont load by forcing the font-display attribute to your Google Fonts,
  • Ensure text remains visible during webfont load by forcing the font-display attribute to all your other fonts! (OMGF Pro required),

Additional Features in OMGF Pro

  • Multisite support,
  • “Dig deeper” to find Google Fonts and optimize further. OMGF Pro supports:
    • @font-face and @import statements inside inline <style> blocks,
    • @font-face and @import statements inside local stylesheets loaded by your theme and/or plugins,
    • Web Font Loader (webfont.js),
    • Early Access Google Fonts.
    • Material Icons support.
  • Modify your fonts’ src: url() attribute fully integrate with your configuration,
    • Use this to serve fonts and the stylesheets from your CDN, or
    • To serve fonts from an alternative path (e.g. when you’re using Security through Obscurity plugins like WP Hide, etc.), or
    • Set a relative path to easily migrate from development/staging areas to production/live, or
    • Anything you like!

Purchase OMGF Pro | Documentation | Tested Plugins & Themes


  • OMGF's Optimize Fonts screen. These settings affect the downloaded files and generated stylesheet(s).
  • The task manager offers a quick overview of the currently detected stylesheets and their status (e.g. loaded, stale or missing) along with quick links to simple management tasks, e.g. Empty Cache and Configure/Remove.
  • After you've completed configuring OMGF, the Manage Optimized Fonts section will allow you to tweak all of your Google Fonts stylesheets, by e.g. unloading unused fonts and/or preloading fonts above the fold.
  • OMGF Pro users can further tweak its level of detection under Detection Settings.
  • Advanced Settings. Change these to make OMGF work with your configuration (if needed). The default settings will suffice for most configurations.


  1. Upload the plugin files to the /wp-content/plugins/host-webfonts-local directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress
  3. Use the Settings -> Optimize Google Fonts screen to configure the plugin

For a more comprehensive guide on configuring OMGF, check out the user manual


For the FAQ, click here.


August 10, 2022
Das Plugin versucht wirklich sein bestes und funktioniert soweit auch gut. Sofern die korrekten Abfragemechanismen für die Schriftarten im WordPress-Theme genutzt wurden, kann das Plugin diese ersetzen. Ich habe es auf mehreren Seiten nun getestet und die meisten Google-Abfragen wurden ersetzt. Das ganze ohne eine Zeile Code zu ändern! Leider kann das Plugin nicht alles sauber auslesen und ersetzen. An einigen Stellen wird weiterhin Google angesteuert. Was dort das Problem ist, konnte ich noch nicht ermitteln. Man sollte daher nach der Installation einmal die Unterseiten prüfen, ob alles nun vom eigenen Webserver geladen wird oder noch irgendwo Google auftaucht. Aktuell würde ich das Plugin aber jedem Empfehlen, der eine WordPress-Seite betreibt und DSGVO-Probleme sich ersparen möchte. Einfach feuer frei und gut ist!
August 1, 2022
Works perfectly fine, helps me to make my blog more GDPR-friendly by guiding me to block all traffic to Google for downloading Fonts. The support is great, especially with the fast response time.
July 22, 2022
Great plugin. Just start it and everything is done. No more Google Fonts could be found on my site. All stuff is eliminated. Thanks to the Developer. He made a great job. And thanks for an extraordinary support which can´t be faster or smarter.
Read all 156 reviews

Contributors & Developers

“OMGF | GDPR Compliant, Faster Google Fonts. Easy.” is open source software. The following people have contributed to this plugin.


“OMGF | GDPR Compliant, Faster Google Fonts. Easy.” has been translated into 10 locales. Thank you to the translators for their contributions.

Translate “OMGF | GDPR Compliant, Faster Google Fonts. Easy.” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


5.3.6 | August 10th, 2022

  • Added: compatibility for Download Manager and other plugin who insert stylesheet into the head using multiple lines.
  • Added: omgf_generate_stylesheet_after filter.
  • Added: omgf_optimize_fonts_object filter.

5.3.5 | August 2nd, 2022

  • Fixed: use a more reliable regular expression to detect Google Fonts.
  • Fixed: Divi/Elementor compatibility is now disabled by default.
  • Added: DB migration script which invalidates the current stylesheets, if they don’t confirm to the new standards yet.
  • Fixed: always allow debug log file to be deleted from the admin screen.
  • Fixed: filestat() failed-warning when enabling Debug Mode for the first time.


  • Fixed: Debug Mode wouldn’t stop logging at 1MB.
  • Fixed: “No log file available for download” message would show when Debug Mode was disabled under Advanced Settings.

5.3.3 | July 22nd, 2022

  • Added: Debug Mode with an option to download the log file. Stops logging when file exceeds 1MB for those who forgot to disable it.
  • Fixed: Prevent array to string conversion with new Used Subset(s) option by writing defaults to the database: Latin, Latin Extended.
  • Added: debug logging points in OMGF_Optimize class.
  • Fixed: decode HTML entities in the URL before fetching the stylesheet from the Google Fonts API.
  • Fixed: stricter matching for font-family detection, to prevent similar font names (e.g. Roboto and Roboto Condensed) from getting mixed up in the stylesheet.
  • Fixed: minor performance optimization in OMGF_Optimize class.


  • Fixed: updated static version to force a browser cache refresh of admin JS files.


  • Fixed: Update notices should never be cached.

5.3.0 | July 20th, 2022

  • Added: Removed Google Webfonts Helper API and implemented a custom Web Font Loader. This adds/fixes:
    • Added: full support for Variable Fonts
    • Fixed: Proper (WOFF2) compression, so files generated by OMGF are no longer bigger than files downloaded from the Google Fonts API.
    • Fixed: The (broken capital A) compression bug is fixed!
  • Fixed: Changed logo in Help section to logo
  • Fixed: Remove unused subsets from Optimized Fonts object to reduce db size
  • Fixed: OMGF_Optimize class will bail earlier, if files and stylesheets already exist, to reduce execution time in the frontend.
  • Fixed: Invalid Google Fonts API requests (e.g. without a family parameter) are removed from the HTML.
  • Fixed: A stricter regulax expression is used for matching stylesheet link elements, to prevent backtracking.
  • Added: Used Subset(s) option, which allows users to specify which subset(s) they’d like to use when generating stylesheets and down-/preloading (variable) font files.

5.2.2 | June 28th, 2022

  • Fixed: updated links from to after the migration.

5.2.1 | June 25th, 2022

  • Fixed: shorthand syntax (r,i,b,bi) is now parsed correctly.
  • Added: Basic Variable Fonts support (full support coming in 5.3.0!)
  • Fixed: “preload” attributes added by 3rd party plugins would somehow be misunderstood as preload resource hints.
  • Deprecated: Force Subsets (Pro) and Include File Types (Pro) are marked as deprecated in preparation for the upcoming release which includes full Variable Fonts support, rendering these options useless.

5.2.0 | June 14th, 2022

  • Added: toggle to disable Elementor/Divi compatibility fixes.
  • Fixed: when resource hints (e.g. preloads) were located in unusual places (e.g. Themify Builder places its preloads above the <title> element) this would cause other elements (e.g. stylesheets) to be removed as well.

5.1.4 | June 6th, 2022

  • Tested with WP 6.0
  • Fixed: Font-weights weren’t properly detected when stylesheets were loaded using Variable Fonts (CSS2) API.
  • Fixed: jQuery.fn.submit() shorthand is deprecated.
  • Fixed: Improved compatibility with servers using Nginx reverse proxy.
  • Fixed: Filter duplicate font-family requests in same Google Fonts request, e.g.|Roboto.
  • Added: Workaround for Elementor to identify unique Google Fonts stylesheets, because Elementor always uses the (annoyingly generic) ‘google-fonts-1’ handle as an identifier. :-/
  • Fixed: Generate a ‘unique’ identifier for each stylesheet without an identifier (‘id’ attribute)
  • Several minor performance improvements.


  • Added: workaround for Divi builder to identify unique Google Fonts stylesheets.
  • Added: extra links to documentation in Manage Optimized Fonts section.
  • Fixed: Changed links to new documentation hub.
  • Fixed: don’t use WP_Filesystem to get and put file contents.


  • Fixed: Minor performance improvement – content_url() is no longer used to generate download file URLs.
  • Rewrote Modify Source URL option’s description.


  • Fixed: using print_r() in an output buffer caused 500 errors.
    • Removed the remaining (one) entries of OMGF::debug, because of this and Test Mode now allows for much user-friendly testing, anyway.
    • the OMGF::debug() wrapper is still there for hardcore in code debugging.
  • Several code tweaks and fixes.


  • Added: Test Mode, which allows you to test optimizations before releasing them to the public.
    This option replaces Optimize for Logged-in Administrators/Editors.
  • Fixed: several minor tweaks.


  • Added: Removed Cache Directory in favor of an automatic approach to improve UX, because most people didn’t change the default value anyway.
    • I.e. all files generated by OMGF are stored in a subdirectory of the Uploads folder (default wp-content/uploads), called omgf.
    • For most of you nothing will change, but omgf_upload_dir and omgf_upload_url filters are available for DEVs who want to modify the default value, although I really can’t think of a reason why you’d want to do that.
  • Reworded description of Optimize for logged-in Administrators/Editors option.


  • Added: Compatibility with Mesmerize Pro theme; this theme loads Google Fonts asynchronously, which causes CLS.
  • Added: UNIX timestamp cached stylesheets to make sure browser cache of visitors is busted, upon cache refresh.
  • Fixed: Running Save & Optimize a 2nd time could trigger some firewall rules, due to the serialized array being passed along with the settings form’s POST action. This serialized array is now stored in the form using base64_encode() and decoded before being saved to the database.
  • Fixed: Since the Google Fonts API has removed the subsets paramater and returns all subsets by default, OMGF now does the same. Unlike the Google Fonts API, OMGF does still respect and apply the parameter if it set, because it is still used by many themes and plugins.
    • Re-worded Force Subsets (Pro) featured to clarify this behavior.
  • Fixed: Some resource hints that were added using unconventional methods (i.e. not using wp_resource_hints()) weren’t removed.
  • Fixed: If no regular Google Fonts stylesheets were present, the omgf_processed_html filter would never be triggered.
  • Fixed: Stylesheets on AMP pages would be rewritten to local stylesheets, while this is not supported by AMP.
  • Removed: AMP handling (Pro) option from Advanced Settings, because it’s no longer supported by AMP.


  • Fixed: don’t allow starting buffer twice.


  • Fixed: always run if omgf_optimize parameter is set.


  • Fixed: Use Site Address (URL) to run first optimization scan, instead of WordPress Address (URL), because the WordPress install URL can differ from the frontend URL.
  • Fixed: Make sure stylesheet URL is properly decoded and HTML entities, etc. are removed, before attempting to process it. (This would cause parameters, like subset or display, to get lost).
  • Added: omgf_optimize_query_subset filter to OMGF_Optimize class.


  • Fixed: Previous versions of OMGF would save stylesheet handles without the appended ‘-css’ string. This is now brought back to guarantee a smooth transition to v5.
  • Fixed: If ?nomgf=1 parameter was set, preloads would still be loaded.
  • Fixed: Added an extra check if file exists, before adding font files for preloading.
  • Enhanced: A small speed boost for Save & Optimize.

5.0.0 – **The Better, Bigger, Faster, Stronger, Cooler, Awesomer Edition** | March 4th, 2022

  • Added: Parse entire HTML document for Google Fonts stylesheets (instead of just wp_head())
  • Added: Merged both Optimization Modes option into one automatically running option:
    – A first scan is done upon Save & Optimize,
    – A quick check is done on pageload, to see if other Google Fonts are found than the ones already found, and if so, they’re downloaded and replaced on-the-fly.
  • Enhanced: The Download API is replaced for an easier, leaner and faster alternative and no longer uses the WordPress API.
    – If the first request fails, a mirror is used to retry the request, before throwing an error.
    – Fixes rest_no_route errors in some configurations.
  • Enhanced: The Task Manager now offers a quick overview of downloaded stylesheets and their status, along with simple management tasks, e.g. cache flush, configure stylesheet and/or remove.
    – When cache is marked as stale, it’s now possible to refresh the cache and maintain your stylesheet configuration.
  • Added: Resource hints enqueued in wp_resource_hints() are now properly removed.
  • Fixed: Smart Slider 3 compatibility.
  • Several bugfixes, UX improvements and code optimizations.

[ Changelog shortened … ]

4.0.0 | September 30th, 2020

  • OMGF now runs fully automatic to replace/remove Google Fonts from your pages using OMGF’s new Download API. No initial configuration required!
    • This means that if you use different fonts on different pages, all of them will be cached and served locally.
  • HUGE performance increase in OMGF’s automatic replacing/removing methods.
  • Major overhaul of Settings Page:
    • Removed Extensions Tab
    • Some settings were moved to a new tab: Basic Settings.
    • Improved Welcome and Documentation tab.
    • Clarified option descriptions.
  • Removed ‘Generate Stylesheet’ tab, which’ll be released in a separate add-on plugin soon.
  • Removed ‘Use Web Font Loader?’ option, because it causes Cumulative Layout Shift and will not work with OMGF’s new Auto Replace feature.
  • Removed ‘Remove Version Parameter’ option, because it has become obsolete. The new detection method uses the initial script’s version, if set.
  • Font Preloading is temporarily removed and will be re-introduced (in a different form, along with new features) in a later release.

[ Changelog shortened … ]


* Moved Welcome-panel to the side.
* wp_remote_get() is now used instead of cURL.
* Complete code overhaul to increase performance and UX.
* Notices and errors are now more explanatory and dismissable.
* Fixed several bugs.
* OMGF now uses wp_options table, instead of own tables.
* Old tables are removed and data is migrated.
* Auto detect now works better than ever.
* Search now works bug free.
* WordPress’ default admin fonts no longer show up as results.

[ Changelog shortened … ]


Added Typekit’s Web Font Loader to allow loading fonts asynchronously.

[ Changelog shortened… ]


First release! No changes so far!