{"id":157151,"date":"2022-05-16T08:48:32","date_gmt":"2022-05-16T08:48:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/local-google-fonts\/"},"modified":"2025-05-01T18:50:43","modified_gmt":"2025-05-01T18:50:43","slug":"local-google-fonts","status":"publish","type":"plugin","link":"https:\/\/azb.wordpress.org\/plugins\/local-google-fonts\/","author":15233756,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.24.0","stable_tag":"0.24.0","tested":"6.8.5","requires":"4.6","requires_php":"7.4","requires_plugins":null,"header_name":"Local Google Fonts","header_author":"EverPress","header_description":"Host your used Google fonts on your server and make your site GDPR compliant.","assets_banners_color":"ed8087","last_updated":"2025-05-01 18:50:43","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/evp.to\/donate","header_plugin_uri":"","header_author_uri":"https:\/\/everpress.co","rating":4.6,"author_block_rating":0,"active_installs":100000,"downloads":791308,"num_ratings":83,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1":{"tag":"0.1","author":"everpress","date":"2022-12-02 09:56:57"},"0.10":{"tag":"0.10","author":"everpress","date":"2022-07-22 09:36:38"},"0.11":{"tag":"0.11","author":"everpress","date":"2022-07-22 09:39:12"},"0.12":{"tag":"0.12","author":"everpress","date":"2022-09-05 12:39:23"},"0.13":{"tag":"0.13","author":"everpress","date":"2022-09-05 12:40:17"},"0.14":{"tag":"0.14","author":"everpress","date":"2022-09-07 12:54:04"},"0.15":{"tag":"0.15","author":"everpress","date":"2022-09-21 09:19:55"},"0.16":{"tag":"0.16","author":"everpress","date":"2022-09-26 12:05:25"},"0.17":{"tag":"0.17","author":"everpress","date":"2022-10-05 08:25:43"},"0.18":{"tag":"0.18","author":"everpress","date":"2022-10-21 12:20:28"},"0.19":{"tag":"0.19","author":"everpress","date":"2022-12-02 09:44:26"},"0.2":{"tag":"0.2","author":"everpress","date":"2022-12-02 09:56:09"},"0.20.0":{"tag":"0.20.0","author":"everpress","date":"2022-12-02 10:01:05"},"0.21.0":{"tag":"0.21.0","author":"everpress","date":"2023-05-03 18:16:20"},"0.22.0":{"tag":"0.22.0","author":"everpress","date":"2023-09-11 12:05:57"},"0.23.0":{"tag":"0.23.0","author":"everpress","date":"2024-12-04 11:35:14"},"0.24.0":{"tag":"0.24.0","author":"everpress","date":"2025-05-01 18:50:43"},"0.3":{"tag":"0.3","author":"everpress","date":"2022-05-23 08:20:53"},"0.4":{"tag":"0.4","author":"everpress","date":"2022-05-27 14:18:13"},"0.5":{"tag":"0.5","author":"everpress","date":"2022-05-28 15:12:17"},"0.6":{"tag":"0.6","author":"everpress","date":"2022-05-29 10:44:56"},"0.7":{"tag":"0.7","author":"everpress","date":"2022-06-15 13:11:47"},"0.8":{"tag":"0.8","author":"everpress","date":"2022-06-29 13:31:03"},"0.9":{"tag":"0.9","author":"everpress","date":"2022-06-29 13:53:16"}},"upgrade_notice":[],"ratings":{"1":8,"2":0,"3":0,"4":2,"5":73},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3285815,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3285815,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3285815,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3285815,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1","0.10","0.11","0.12","0.13","0.14","0.15","0.16","0.17","0.18","0.19","0.2","0.20.0","0.21.0","0.22.0","0.23.0","0.24.0","0.3","0.4","0.5","0.6","0.7","0.8","0.9"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1079,2221,131785,150,158153],"plugin_category":[],"plugin_contributors":[132235,165179],"plugin_business_model":[],"class_list":["post-157151","plugin","type-plugin","status-publish","hentry","plugin_tags-font","plugin_tags-fonts","plugin_tags-gdpr","plugin_tags-google","plugin_tags-googlefonts","plugin_contributors-everpress","plugin_contributors-xaverb","plugin_committers-everpress","plugin_committers-xaverb"],"banners":{"banner":"https:\/\/ps.w.org\/local-google-fonts\/assets\/banner-772x250.png?rev=3285815","banner_2x":"https:\/\/ps.w.org\/local-google-fonts\/assets\/banner-1544x500.png?rev=3285815","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/local-google-fonts\/assets\/icon-128x128.png?rev=3285815","icon_2x":"https:\/\/ps.w.org\/local-google-fonts\/assets\/icon-256x256.png?rev=3285815","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Host your used Google fonts on your server and make your site more GDPR compliant \ud83d\udcaf.<\/p>\n\n<p>About 50 mio<a href=\"https:\/\/trends.builtwith.com\/websitelist\/Google-Font-API\">&#042;<\/a> sites use Google Fonts and in January 2022 a German court has ruled that using Google Fonts is a violation of Europe\u2019s GDPR (General Data Protection Regulation).<\/p>\n\n<p>more on <a href=\"https:\/\/wptavern.com\/german-court-fines-website-owner-for-violating-the-gdpr-by-using-google-hosted-fonts\">wptavern.com<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the entire <code>local-google-fonts<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to Settings =&gt; Google Fonts and decide which fonts should get loaded locally<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='will%20this%20load%20google%20fonts%20automatically%3F'><h3>Will this load Google Fonts automatically?<\/h3><\/dt>\n<dd><p>Yes, if you check the option to load fonts automatically. Otherwise each font set must be manually triggered.<\/p><\/dd>\n<dt id='is%20it%20legal%20to%20self-host%20google%20fonts%3F'><h3>Is it Legal to Self-Host Google Fonts?<\/h3><\/dt>\n<dd><p>Yes. The open source fonts from Google Fonts are published under a licenses that allow you to use them on any website, no matter if it\u2019s commercial or personal.<\/p><\/dd>\n<dt id='how%20to%20check%20if%20my%20site%20is%20loading%20google%20fonts%3F'><h3>How to check if my site is loading Google Fonts?<\/h3><\/dt>\n<dd><p>It's easy to check if your site is loading fonts from a third party source (check <a href=\"https:\/\/wordpress.org\/plugins\/local-google-fonts\/#screenshots\">2nd screenshot<\/a> above):<\/p>\n\n<ol>\n<li>Open the dev tools (Cmd + Opt + I on Mac or F12, or Ctrl + Shift + I on Windows)<\/li>\n<li>Go to the <strong>Network<\/strong> tab and select the <strong>Fonts<\/strong> type<\/li>\n<li>Reload your page to see all fonts loaded on your site.<\/li>\n<li>Check the <strong>Domain<\/strong> column if it contains domains from a third party (Google is fonts.gstatic.com)<\/li>\n<\/ol>\n\n<p>If you host your fonts locally with <a href=\"https:\/\/wordpress.org\/plugins\/local-google-fonts\/\">Local Google Fonts<\/a> there should be no fonts loaded from the Google servers.<\/p><\/dd>\n<dt id='my%20fonts%20do%20not%20show%20up%20on%20the%20settings%20page%2C%20what%20can%20i%20do%3F'><h3>My fonts do not show up on the settings page, what can I do?<\/h3><\/dt>\n<dd><p>Fonts are discovered once they are used. Try to browse your front end first and get back to the settings page.<\/p><\/dd>\n<dt id='my%20fonts%20are%20not%20replaced%2C%20what%20can%20i%20do%3F'><h3>My fonts are not replaced, what can I do?<\/h3><\/dt>\n<dd><p>The plugin currently only checks fonts embedded via <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_enqueue_style\/\"><code>wp_enqueue_style<\/code><\/a> if you use Google fonts via <code>@import<\/code> you have to change that first.<\/p><\/dd>\n<dt id='the%20divi%20theme%20still%20loads%20a%20google%20font%3F'><h3>The Divi theme still loads a Google font?<\/h3><\/dt>\n<dd><p>The DIVI theme has a custom implementation of Google Fonts. To use LGF with DIVI disable <em>Improve Google Fonts Loading<\/em> on the Performance Settings page of DIVI.<\/p><\/dd>\n<dt id='why%20only%20the%20woff2%20font%20format%20is%20loaded%3F'><h3>Why only the woff2 font format is loaded?<\/h3><\/dt>\n<dd><p>Woff2 is the successor of the woff format and and offers a 30% average compression gain over the original format. It is also supported by over 96% of browsers (<a href=\"https:\/\/caniuse.com\/woff2\">source<\/a>).<\/p><\/dd>\n<dt id='how%20to%20host%20fonts%20loaded%20with%20slider%20revolution%3F'><h3>How to host Fonts loaded with Slider Revolution?<\/h3><\/dt>\n<dd><p>Slider Revolution uses it's own way to load Google Fonts and LGF cannot handle them. Slider Revolution has a built in feature for their sliders.<\/p>\n\n<ol>\n<li>Goto Slider Revolution<\/li>\n<li>Click on \"Global\" in the top navigation<\/li>\n<li>Find the \"Fonts\" section and Choose \"Cache Fonts Local\" on \"Enable Google Fonts download\"<\/li>\n<li>Save your settings.<\/li>\n<\/ol><\/dd>\n<dt id='why%20are%20some%20characters%20displayed%20in%20the%20fallback%20font%3F'><h3>Why are some characters displayed in the fallback font?<\/h3><\/dt>\n<dd><p>You may have loaded a subset which doesn't included required characters. Check additional subsets on the settings page and reload your font.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.24.0<\/h4>\n\n<ul>\n<li>added: option to use relative URLs<\/li>\n<\/ul>\n\n<h4>0.23.0<\/h4>\n\n<ul>\n<li>Update WordPress 'Tested up to' version to 6.7<\/li>\n<li>Don't show admin message when plugin is network-activated<\/li>\n<\/ul>\n\n<h4>0.22.0<\/h4>\n\n<ul>\n<li>fixed: missing <code>$user_agent<\/code> variable<\/li>\n<li>fixed: missing <code>$tmp_file<\/code> variable<\/li>\n<\/ul>\n\n<h4>0.21.0<\/h4>\n\n<ul>\n<li>fixed: issue downloading fonts with WordPress 6.2 caused by the <code>download_url<\/code> method<\/li>\n<\/ul>\n\n<h4>0.20.0<\/h4>\n\n<ul>\n<li>make sure files are loaded via https if requested<\/li>\n<li>new filter <code>lgf_folder_url<\/code>and <code>lgf_folder<\/code><\/li>\n<li>always append timestamp to prevent caching<\/li>\n<\/ul>\n\n<h4>0.19<\/h4>\n\n<ul>\n<li>please reload fonts manually if you encounter problems after the update<\/li>\n<li>completely rewriting the way fonts are loaded which to drop the need for a third party API and support more (deprecated) fonts.<\/li>\n<li>better support for multi site (thanks @ravanh)<\/li>\n<li>the original style sheet is used for better compatibility<\/li>\n<li>added Settings link on the plugins list page<\/li>\n<li>added button to manually fetch homepage for used fonts<\/li>\n<li>only woff2 fonts are now loaded for better subset support<\/li>\n<li>removed unused seed variable<\/li>\n<\/ul>\n\n<h4>0.18<\/h4>\n\n<ul>\n<li>do not use <code>remove_query_arg<\/code> to strip args as it can break some URLs<\/li>\n<\/ul>\n\n<h4>0.17<\/h4>\n\n<ul>\n<li>remove <code>ver<\/code> query argument from URLs as they are added by WordPress. <em>Please review settings as fonts may have to be reloaded<\/em><\/li>\n<li>introduced upgrade class for future updates<\/li>\n<li>added: welcome message after plugin activation<\/li>\n<li>added Codeable banner<\/li>\n<li>fixed: PHP warning on missing key<\/li>\n<\/ul>\n\n<h4>0.16<\/h4>\n\n<ul>\n<li>using absolute path to support Google Fonts in <a href=\"https:\/\/mailster.co\/?utm_campaign=wporg&amp;utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_term=Local+Google+Fonts\">Mailster<\/a>.<\/li>\n<\/ul>\n\n<h4>0.15<\/h4>\n\n<ul>\n<li>using custom mirror to prevent down times<\/li>\n<\/ul>\n\n<h4>0.14<\/h4>\n\n<ul>\n<li>added info if <a href=\"https:\/\/google-webfonts-helper.herokuapp.com\/\">https:\/\/google-webfonts-helper.herokuapp.com\/<\/a> is down<\/li>\n<\/ul>\n\n<h4>0.13<\/h4>\n\n<ul>\n<li>improved: better explanations on errors.<\/li>\n<li>improved: Higher propriety for wp_resource_hints to catch them all. Fixes #8<\/li>\n<li>implemented an alias method for no longer supported fonts.<\/li>\n<li>fixed: Syntax error on older PHP versions<\/li>\n<\/ul>\n\n<h4>0.12<\/h4>\n\n<ul>\n<li>Do not handle fonts sources with more than 30 families (why would you need that?)<\/li>\n<li>Add option to choose subsets for each font family<\/li>\n<li>Disable functionality in the customizer<\/li>\n<\/ul>\n\n<h4>0.11<\/h4>\n\n<ul>\n<li>fixed: problem on customizer in Neve theme<\/li>\n<li>fixed wrong domain on translations<\/li>\n<li>update F.A.Q. for DIVI theme<\/li>\n<\/ul>\n\n<h4>0.10<\/h4>\n\n<ul>\n<li>fixed: rending issue on some fonts (please reload fonts if you use one of these: \"exo-2\", \"inter\", \"jost\" or \"montserrat\")<\/li>\n<li>fixed: some styles are not recognized and therefore not loaded.<\/li>\n<li>improved: info about loaded font files on the admin screen<\/li>\n<li>added timestamp to loaded font files to prevent cached fonts get loaded.<\/li>\n<\/ul>\n\n<h4>0.9<\/h4>\n\n<ul>\n<li>new: options to load fonts automatically<\/li>\n<\/ul>\n\n<h4>0.8<\/h4>\n\n<ul>\n<li>updated required WP version to 4.6<\/li>\n<li>remove Text Domain header<\/li>\n<li>added missing translatable strings<\/li>\n<\/ul>\n\n<h4>0.7<\/h4>\n\n<ul>\n<li>better handling of multiple \"family\" arguments in the URL<\/li>\n<\/ul>\n\n<h4>0.6<\/h4>\n\n<ul>\n<li>loading all variants if none explicit are requested<\/li>\n<li>cache API requests<\/li>\n<li>respect font-display<\/li>\n<li>removes DNS prefetch and preconnect to Google server from page header<\/li>\n<\/ul>\n\n<h4>0.5<\/h4>\n\n<ul>\n<li>added option to flush everything<\/li>\n<\/ul>\n\n<h4>0.4<\/h4>\n\n<ul>\n<li>you may have to reload fonts so please check the settings page<\/li>\n<li>improved handling of fonts<\/li>\n<li>only loading required font files<\/li>\n<li>supports now different types of variant declarations<\/li>\n<li>add variants to list only if available in the source<\/li>\n<li>added some css to improve settings page<\/li>\n<li>you may have to reload fonts so please check the settings page<\/li>\n<\/ul>\n\n<h4>0.3<\/h4>\n\n<ul>\n<li>add explanation info on settings page<\/li>\n<\/ul>\n\n<h4>0.2<\/h4>\n\n<ul>\n<li>show info when no font is found<\/li>\n<li>better handling of translated strings<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>initial release<\/li>\n<\/ul>","raw_excerpt":"Host your used Google fonts on your server and make your site more GDPR compliant \ud83d\udcaf.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/157151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=157151"}],"author":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/everpress"}],"wp:attachment":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=157151"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=157151"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=157151"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=157151"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=157151"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=157151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}