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 Helper 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

  • Remove Resource Hints (preload, preconnect, dns-prefetch) pointing to or,
  • En’sure text remains visible during webfont load by forcing the font-display attribute to your Google Fonts,
  • En’sure text remains visible during webfont load by forcing the font-display attribute to all your other fonts! (OMGF Pro required),
  • Reduce the file size of your fonts and stylesheets, by using the Force ’subset and Include File Types feature (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.


Jugn 20, 2022
Although I am developer myself, I have no clue, how this plugin works. But Daan was extremely patient while we managed how to make the plugin work on our unusual hosting setup. Thank you very, very much. I have hardly ever experienced such a great service!
Jugn 17, 2022
Daan, was so helpful today. He actually rewrote some of the plug-in code within an hour or so from me raising an issue. So fast and now it makes my website fly! Thanks to you!
Jugn 8, 2022
Had a set up issue regarding using DIVI them and LS Cache, but support was very prompt and got me on the right track. Highly recommended ++
Mai 13, 2022
OMGF is used by me privately since release. At that time I tried to integrate the Google Fonts myself. Later I even wrote my own plugin, which offered the features of OMGF. Since OMGF I have no more plugin for Google Fonts in use, because simply everything works. In addition, Daan responds super fast and tries to find a solution directly in case of errors. Usually, the error is not OMGF, but other plugins that do not work in the WordPress standard and cause errors. Thanks for the plugin and once again please excuse my bad day, from the first revision of my review.
Read all 148 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.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 mi’sunderstood 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 unu’sual 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 Administr’ators/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 Administr’ators/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 explan’atory 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 re’sults.

[ Changelog shortened … ]


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

[ Changelog shortened… ]


First release! No changes so far!