Search Blog
John Dwyer
Digital Strategist
July 11, 2025
Learn how to self-host Google Fonts for better performance and user experience
When you use Google Fonts on your WordPress site, each visitor’s browser downloads font files from Google’s servers. While convenient, this approach has some drawbacks:
File size concerns: Standard Google Font files typically range from 100-200KB per font family. When you factor in multiple weights (light, regular, bold) and styles (normal, italic), you might be loading 300-500KB worth of fonts alone.
External dependencies: Your site relies on Google’s servers being available and fast. Any delays or issues on their end affect your site’s loading speed.
Privacy considerations: Loading fonts from Google means your visitors’ browsers make requests to Google, which may have privacy implications depending on your location and audience.
Self-hosting optimised fonts offers several advantages:
Visit gwfh.mranftl.com – a free tool that provides optimised font files and ready-to-use CSS. This tool was created by Mario Ranftl, an experienced software engineer who recognised the need for an easier way to self-host Google Fonts.
Select only what you need:
Option A: Using WordPress Uploads Directory
/wp-content/uploads/fonts/wp-content/uploads/fonts/Option B: Using Your Theme Directory
/wp-content/themes/your-theme-name/fonts folderMethod 1: WordPress Customiser (Recommended for beginners)
Example CSS for uploads directory:
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url('/wp-content/uploads/fonts/open-sans-v18-latin-regular.woff2') format('woff2'),
url('/wp-content/uploads/fonts/open-sans-v18-latin-regular.woff') format('woff');
}
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: url('/wp-content/uploads/fonts/open-sans-v18-latin-700.woff2') format('woff2'),
url('/wp-content/uploads/fonts/open-sans-v18-latin-700.woff') format('woff');
}
Method 2: Child Theme style.css (For developers)
Add the CSS to your child theme’s stylesheet using relative paths.
Check these locations:
Apply your new fonts:
body {
font-family: 'Open Sans', Arial, sans-serif;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Open Sans', Arial, sans-serif;
font-weight: 700;
}
Cache Management
WordPress sites often have multiple caching layers. After making changes:
Theme Compatibility
Some themes may have built-in Google Fonts that override your custom fonts. Check your theme’s documentation for font customisation options.
Plugin Conflicts
Page builders like Elementor or Beaver Builder may continue loading Google Fonts even after you’ve implemented self-hosted fonts. Check their settings for font options.
Fonts not displaying:
Old Google Fonts still loading:
Performance not improving:
Google Webfonts Helper was developed by Mario Ranftl, a software engineer with over 10 years of experience in web development. The tool addresses a real problem: while Google provides excellent fonts, they don’t offer an easy way to download optimised versions for self-hosting. Mario’s solution has gained significant traction in the web development community, with over 12,500 stars on GitHub.
After implementing self-hosted fonts, you can typically expect:
Remember that font optimisation is just one aspect of website performance, but it’s often one of the easiest improvements to implement with immediate results.

Crafting bespoke digital experiences to drive growth and delight your customers
Quick Links
Policies