Load Google Fonts Locally in Kadence Free featured image

How to Load Google Fonts Locally in Kadence Free

Every time someone visits your site, their browser reaches out to Google’s servers to grab your fonts. That’s 1-2 extra DNS lookups before anything even starts rendering. And if your visitors are in Europe, those requests send their IP addresses to Google – which can land you a GDPR fine. Loading Google Fonts locally in Kadence fixes both problems with a single toggle.

I ran into this myself when a reader in Germany pointed out that my site was pinging fonts.googleapis.com on every page load. Switching to local fonts took me about 30 seconds. Here’s how to do it, plus a quick way to confirm it’s actually working.

Why Should I Load Fonts Locally?

There are 3 practical reasons to stop loading fonts from Google’s CDN.

Speed. When your browser needs a Google Font, it first does a DNS lookup for fonts.googleapis.com, then another for fonts.gstatic.com. That’s 2 external connections before a single font file downloads. Hosting locally cuts those lookups entirely. Your fonts load from the same server as the rest of your site. If you’re also working on page speed, check out my guide on fixing LCP issues in Kadence.

GDPR compliance. This is the big one for anyone with European visitors. When fonts load from Google’s servers, visitor IP addresses get sent to Google. A German court in Munich ruled in January 2022 that loading Google Fonts externally violates GDPR. The fine was only EUR 100, but the legal precedent opened the door for much larger penalties.

Reliability. Your fonts don’t depend on Google being up. CDN hiccups happen. With local fonts, your typography works no matter what.

If you have any European traffic at all, this isn’t just a performance tweak. It’s a compliance fix.

How Do I Enable Local Fonts in Kadence?

The setting is in the Customizer under Performance – not Typography, which is where I first expected it.

  1. Go to Appearance > Customize > General > Performance.
  2. Scroll down and toggle “Load Google Fonts Locally” to on.
  3. Optionally, toggle “Preload Local Fonts” (more on this in a moment).
  4. Click Publish.

That’s the whole process. Kadence downloads the font files from Google and saves them to your server. From now on, every visitor gets fonts served from your domain instead of Google’s.

And this works in the free version of Kadence. You don’t need Pro.

One thing that confused me at first – the Typography panel under “Colors & Fonts” is where you pick which Google Font to use (Urbanist, Inter, Playfair Display, whatever). The Performance panel is where you toggle local loading. They’re 2 separate places in the Customizer, and the local fonts toggle is easy to miss if you only look in Typography.

Kadence Customizer Performance panel with Load Google Fonts Locally toggle enabled

Where Does Kadence Store the Font Files?

When you flip that toggle, Kadence downloads the font files and stores them in:

wp-content/fonts/{font-name}/

So if you’re using Urbanist, Kadence creates wp-content/fonts/urbanist/ and drops the font files in there. Each Google Font you use gets its own subfolder.

This is worth knowing because sometimes the download fails silently. If your server has strict file permissions on the wp-content folder, Kadence can’t create the fonts directory. The toggle looks like it’s on, but your site quietly falls back to system fonts instead of the Google Fonts you selected.

Here’s how to check. Log into your hosting via cPanel File Manager, FTP, or your host’s file browser. Navigate to wp-content/ and look for a fonts folder. Inside, you should see one folder per Google Font you use, each containing the actual font files. If the fonts folder is empty or doesn’t exist, the download didn’t work.

The fix is usually a permissions issue. Your wp-content/ directory needs to be writable by the web server. Most managed hosts set this correctly by default. But if you’re on a VPS or have a security plugin that locks down file permissions, this is the first thing to check.

File manager showing wp-content fonts folder with locally hosted Google Font files

Should I Enable “Preload Local Fonts”?

Kadence offers a second toggle right below the local fonts option: Preload Local Fonts. This adds <link rel="preload"> tags to your page’s <head>, which tells the browser to start downloading the font files immediately – before it even parses your CSS.

Sounds great. But there’s a catch.

If your site uses 1-2 font weights, preloading is a clear win. The browser grabs those files early, and you’ll see less layout shift as text renders.

But if you’re loading 4-5 different font weights and styles – regular, italic, bold, bold italic, light – preloading all of them clogs the browser’s initial download queue. Too many preloaded fonts can push back more important assets like your hero image or main CSS file.

My recommendation: Turn preloading on if you use 2 or fewer font files. Check how many you have by looking inside wp-content/fonts/{your-font-name}/. If you count more than 3 font files, skip the preload toggle and let the browser discover fonts naturally through CSS.

How Do I Verify Fonts Are Loading Locally?

Flipping the toggle is easy. Knowing it worked is the important part. Here are 2 ways to check.

Method 1: View Page Source

  1. Visit any page on your site (while logged out or in an incognito window).
  2. Right-click anywhere and select “View Page Source”.
  3. Press Ctrl+F and search for fonts.googleapis.com.

If you get zero results, Google Fonts are no longer loading externally. You’re good.

If you still see references to fonts.googleapis.com, something else on your site is loading Google Fonts separately from Kadence. A slider plugin, a form plugin, or a page builder like Elementor can each pull in their own Google Fonts. The Kadence toggle only controls fonts loaded by Kadence itself.

Method 2: Chrome DevTools Network Tab

This gives you more detail.

  1. Open your site in Chrome. Press F12 to open DevTools.
  2. Click the Network tab and reload the page.
  3. In the filter bar, type “font” to show only font requests.
  4. Check the Domain column. Every font file should come from your own domain, not fonts.gstatic.com.
Chrome DevTools Network tab showing font requests served from local domain

If you spot font requests going to Google, the Initiator column tells you which file triggered the request.

What If Another Plugin Is Still Loading Google Fonts?

This is the gotcha that trips up most people. You enable Kadence’s local fonts toggle, run a GDPR scanner, and it still flags Google Fonts on your site.

The Kadence toggle only affects fonts loaded by the Kadence theme. If you’re using plugins that load their own Google Fonts – Elementor, Slider Revolution, WPForms, or even some analytics plugins – those requests still go to Google.

For each plugin, check its settings for a “disable Google Fonts” option. Elementor has this under Elementor > Settings > Advanced > Google Fonts Load. If a plugin doesn’t offer that option, a plugin like OMGF (Optimize My Google Fonts) can intercept and localize those requests. But start with Kadence’s toggle first – it handles the biggest source of font requests on most Kadence sites.

For a deeper look at the GDPR side of this, I covered the legal details and full audit process in How to Fix Google Fonts GDPR Warnings in Kadence.

Does This Affect Font Quality or My Custom Font Choices?

The font files are identical – same .woff2 files, same typeface rendering. Your visitors won’t see any visual difference. The only change is the server address they come from.

And if you picked a specific Google Font in Kadence’s typography settings – say, Inter for body text and Playfair Display for headings – the local toggle applies to those automatically. Kadence’s font loader handles the downloading, storing, and serving. You don’t need to manually upload anything or convert formats.

One edge case: if you added Google Fonts through custom code in your child theme or a separate fonts plugin, Kadence’s toggle won’t catch those. You’d need to handle them separately.

Don’t Forget to Clear Your Cache

After enabling local fonts, clear every caching layer on your site:

  1. Page cache plugin – WP Rocket, LiteSpeed Cache, W3 Total Cache, or whatever you use. Purge all pages.
  2. Server cache – If your host has server-level caching (SiteGround’s SG Optimizer, Cloudways Varnish), clear that too.
  3. CDN cache – Cloudflare or another CDN? Purge there as well.

Old cached pages still contain the external Google Fonts links. Until you purge them, visitors will still see requests to Google’s servers. And test in an incognito window – your browser’s local cache can trick you into thinking the old fonts are still loading.

Quick Troubleshooting

Problem Cause Fix
Fonts look different after enabling Download failed silently Check wp-content/fonts/ for font subfolders
GDPR scanner still flags Google Fonts Another plugin loads fonts separately Check each plugin’s font settings or use OMGF
wp-content/fonts/ folder doesn’t exist wp-content directory isn’t writable Check folder permissions so the web server can write to it
Page source still shows fonts.googleapis.com Cached pages serving old HTML Clear all cache layers and check in incognito
Layout shift after enabling preload Too many font files preloaded Disable preload if you have 4+ font weights

Frequently Asked Questions

Do Kadence local fonts update when Google updates a font?

No. Once Kadence downloads the font files, they stay on your server as-is. Google occasionally tweaks font hinting or adds new characters, but those updates won’t reach your local copy automatically. I’ve never had this be an issue in practice – the visual difference is negligible.

Will loading fonts locally slow down my site?

The opposite. You’re cutting 2 external DNS lookups per page load. Your fonts come from the same server as your HTML and CSS, so there’s no extra connection overhead. I saw a 100-200ms improvement on first load when I switched.

Does the Kadence local fonts toggle work with custom fonts I uploaded?

No. The toggle only applies to Google Fonts selected in Kadence’s Typography settings. If you uploaded custom font files through a plugin or your child theme, those are already local – the toggle doesn’t affect them.

Can I use Kadence local fonts with a CDN like Cloudflare?

Yes. Your CDN will cache and serve the local font files just like any other static asset on your site. In fact, this is one of the best setups – your fonts get served from the CDN edge closest to your visitor, which is often faster than Google’s own CDN.

Do I need Kadence Pro to load fonts locally?

No. The “Load Google Fonts Locally” toggle is available in the free version of Kadence. I’ve confirmed this on fresh installs with no Pro license active.

Wrapping Up

Loading Google Fonts locally in Kadence is a 30-second change that fixes 2 real problems – slower page loads from extra DNS lookups and GDPR exposure from sending visitor IPs to Google. The toggle is in Appearance > Customize > General > Performance, it works in the free version, and there’s no visual downside.

But don’t just flip the toggle and move on. Check the wp-content/fonts/ folder to confirm the files actually downloaded. Search your page source for fonts.googleapis.com to make sure nothing slipped through. And clear your cache so old pages stop serving external font links.

One toggle, two problems solved – as long as you verify it worked.

Similar Posts