Typography is one of the most impactful design decisions for your WordPress site. The default system fonts (Arial, Times New Roman, Georgia) are readable but generic. Google Fonts gives you access to 1,400+ professional typefaces — all free — that can give your site a distinct, polished identity.
Adding Google Fonts to WordPress is something every beginner can do. This guide covers four methods, from the simplest (theme settings) to the most flexible (manual enqueuing), plus the performance-conscious approach of self-hosting fonts.
Google Fonts is a free library of open-source typefaces maintained by Google. You've seen them everywhere — Inter, Roboto, Open Sans, Lato, Montserrat, Playfair Display are some of the most popular.
They're free to use on any website, available in multiple weights and styles, and designed for readability at screen sizes.
By default, websites load fonts from fonts.googleapis.com — Google's servers. This is convenient but adds an external HTTP request that can slightly slow your page. We'll cover how to self-host them for better performance later.
Most modern WordPress themes include Google Fonts selection directly in the theme's settings. This is the simplest method — no plugins, no code.
For Themes with Font Customisation (Astra, Kadence, GeneratePress, etc.):
Astra:
Kadence:
GeneratePress:
If your theme doesn't include font selection in the Customiser, a plugin handles it.
Google Fonts for WordPress (Free — by DanielBoxer)
OMGF (Optimize My Google Fonts — Recommended for Performance)
OMGF serves Google Fonts from your own server instead of Google's servers — combining font loading with performance optimisation.
OMGF is particularly useful if:
This is the developer-preferred method. It gives you complete control and follows WordPress best practices for enqueuing resources.
Step 1: Find Your Font URL on Google Fonts
<link> tagCopy the URL from the third link — e.g.:
https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap
Step 2: Enqueue the Font in functions.php
Open your child theme's functions.php and add:
function my_theme_enqueue_google_fonts() {
wp_enqueue_style(
'google-fonts',
'https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap',
array(),
null
);
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_google_fonts' );
Step 3: Apply the Font with CSS
The font is now loaded — but not yet applied to any elements. Add CSS to your child theme's style.css:
/* Apply Lato to the entire site */
body {
font-family: 'Lato', sans-serif;
}
/* Apply a different font to headings */
h1, h2, h3, h4, h5, h6 {
font-family: 'Playfair Display', serif;
}
If you're using a custom Google Font for headings only, enqueue that font separately or add it to the same Google Fonts URL:
https://fonts.googleapis.com/css2?family=Lato:wght@400;700&family=Playfair+Display:wght@600&display=swap
For a quick test or minor CSS additions without editing files:
@import and font application CSS:@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap');
body {
font-family: 'Lato', sans-serif;
}
wp_enqueue_style() method — CSS @import is render-blocking and slightly slower than the <link> tag approach.Loading fonts from Google's servers has two downsides:
fonts.googleapis.comSelf-hosting fonts solves both. Download the fonts and serve them from your own server.
Method A: OMGF Plugin (Automatic)
As described in Method 2, OMGF downloads and self-hosts Google Fonts automatically. Recommended for non-developers.
Method B: Manual Self-Hosting
/wp-content/themes/yourchild-theme/fonts/)@font-face declarations to your theme CSS@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/wp-content/themes/yourchild-theme/fonts/lato-v24-latin-regular.woff2') format('woff2');
}
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/wp-content/themes/yourchild-theme/fonts/lato-v24-latin-700.woff2') format('woff2');
}
body {
font-family: 'Lato', sans-serif;
}
font-display: swap is important — it tells the browser to display text in a fallback font while Lato loads, preventing invisible text during font load.With 1,400+ options, where to start? A few principles:
For body text: Choose a highly readable sans-serif font. Popular choices: Inter, Lato, Open Sans, Roboto, Source Sans 3.
For headings: Can be more expressive. Popular choices: Montserrat, Playfair Display, Raleway, Nunito, Oswald.
Stick to 2 fonts maximum: More than 2 font families usually creates visual noise rather than sophistication. One for body, one for headings.
Check readability at small sizes: Visit Google Fonts and preview your chosen font at 14–16px. Beautiful at display sizes but unreadable at body size is not useful.
Consider font weight variety: A font with only one weight is less flexible. Fonts like Inter and Lato offer 300, 400, 500, 600, 700 — giving you typographic hierarchy options.
| Method | Difficulty | Performance | Best For |
|---|---|---|---|
| Theme Customizer | Beginner | Good | Most users with compatible themes |
| Plugin (Basic) | Beginner | Good | Users without theme font options |
| OMGF Plugin | Beginner | Excellent | Performance & GDPR compliance |
| Manual (functions.php) | Developer | Good | Full control over font loading |
| Additional CSS | Beginner | Fair | Quick testing |
| Manual Self-Hosting | Developer | Excellent | Maximum performance |
| Body Font | Heading Font | Vibe |
|---|---|---|
| Inter | Playfair Display | Modern & Elegant |
| Open Sans | Montserrat | Clean & Professional |
| Lato | Raleway | Minimal & Sophisticated |
| Roboto | Oswald | Bold & Corporate |
| Source Sans 3 | Nunito | Friendly & Approachable |
Adding Google Fonts to WordPress is one of the most impactful low-effort improvements you can make to your site's visual identity. Start with your theme's Customiser if it supports font selection — it's the easiest path with the least risk.
For performance-conscious sites, the OMGF plugin self-hosts your fonts automatically — a one-time setup that improves both speed and privacy.
Pick two fonts, apply them consistently, and your site will feel more polished and professional immediately.
Need help configuring Google Fonts or improving your WordPress site's design? Our development team handles custom WordPress configurations every day.
Contact us today and we'll sort it out.