Skip to content
GPLWP Guides

How to host Google Fonts locally in WordPress

PerformanceWordPress Time About 20–45 minutes 7 steps Updated 2 Oct 2026

PERFORMANCE
The short answer

You can host Google Fonts locally by downloading the required WOFF2 files, defining them with CSS, and removing the original Google stylesheet. If you use Elementor, its built-in local-font setting is easier; a dedicated plugin is useful when several themes or builders load fonts.

The route
  1. 01List every font request
  2. 02Use your builder’s setting first
  3. 03Download the required font files
  4. 04Add local font-face rules
  5. 05Remove the external stylesheet
  6. 06Clear caches and verify loading
  7. 07Choose a font management plugin

What you need

  • WordPress admin access
  • A full site backup or staging site
  • The font families, weights and styles used by your theme or builder
  • FTP, hosting file-manager or child-theme access for the manual route

List every font request

Open the site in a private browser window and inspect the page source or Network panel for requests to fonts.googleapis.com or fonts.gstatic.com. Record each family, weight and style. Check the theme, page builder, forms, pop-ups and shop templates, because removing only the visible heading font can leave other Google requests active.

Use only the weights and character sets the site actually needs. Extra weights increase downloads and can make the manual setup harder to maintain.

Use your builder’s setting first

If you use Elementor, go to Elementor → Editor → Settings → Performance, find Load Google Fonts Locally, enable it, and save. Elementor downloads the fonts it detects, stores them under its uploads area, and rewrites its generated CSS to use the local files. The setting may need enabling again after an Elementor update.

Regenerate or clear Elementor files and data, then purge your WordPress, server, CDN and browser caches. Do not also run another font-downloading system unless you have checked for duplicates.

Download the required font files

For a manual setup, open the Google Fonts stylesheet for the exact families and weights you recorded. Download the font files referenced by its @font-face rules, preferably the WOFF2 files, and keep the matching weight, style and unicode range information. Google’s CSS API generates font-face declarations for the requested families and styles.

Upload the files to a stable location in your child theme or uploads directory. Do not place them in a parent theme that will be overwritten during an update.

Add local font-face rules

Add one @font-face rule for each required weight and style in the child theme stylesheet or a separately enqueued CSS file. Each rule needs the same family name used by your design, the correct font-weight and font-style, and a src URL pointing to the uploaded WOFF2 file.

Set font-display: swap unless you have a specific reason not to. WordPress recommends enqueueing the stylesheet through the normal stylesheet system rather than inserting a direct link in the header.

Remove the external stylesheet

Disable the theme, plugin or builder option that still loads Google Fonts from Google. If the original stylesheet remains, the site can continue making third-party requests and may load the same family twice. Replace any CSS @import that points to Google with your local stylesheet or local font-face rules.

On a block theme, check the editor’s global typography settings and theme.json; on a classic theme, check the customiser, theme options and enqueued styles. The exact removal method depends on which component added the request.

Clear caches and verify loading

Purge the page-cache plugin, server cache, CDN cache and builder-generated CSS. Visit the front end in a private window and confirm that the font files load from your own domain over HTTPS. The Network panel should show no requests to Google’s font domains.

If text falls back to a system font, check the file URL, MIME type, weight and style. After a migration, old HTTP or staging URLs can cause mixed-content or CORS errors; update the site URLs, regenerate generated CSS and clear every cache layer.

Choose a font management plugin

The manual route is fine for a small site with one theme and a few known font files. For a site using several builders, WooCommerce templates or regularly changing typography, a dedicated plugin reduces the work of detecting fonts, downloading them and updating generated CSS.

OMGF Pro is a suitable option when you want automatic Google Font detection and local hosting with privacy-focused performance settings. After activation, review the detected fonts, remove duplicates, clear caches and verify that no external font requests remain.

The fast route

Let OMGF Pro do it

Automatically detects and self-hosts Google Fonts while reducing font-related bloat; choose it for privacy-focused performance optimization.

Get OMGF Pro

Sources

  1. elementor.com /help/load-google-fonts-locally/?utm_source=openai
  2. developers.google.com /fonts/docs/getting_started?utm_source=openai
  3. developer.wordpress.org /themes/advanced-topics/child-themes/?utm_source=openai
  4. elementor.com /help/troubleshooting-fonts-not-appearing-on-frontend/?utm_s…
  5. developer.mozilla.org /en-US/docs/Learn_web_development/Extensions/Performance/Bes…

Questions

Can WordPress host Google Fonts locally without a plugin?
Yes, WordPress can host Google Fonts locally without a plugin. Download the required font files, upload them to a child theme or uploads directory, add matching CSS <code>@font-face</code> rules, enqueue the stylesheet and disable the original Google stylesheet. This works well for a small, stable site, but you must maintain the files when the theme or typography changes.
Does Elementor support local Google Fonts?
Yes, Elementor includes a setting to load Google Fonts locally. Go to <strong>Elementor → Editor → Settings → Performance</strong>, enable <strong>Load Google Fonts Locally</strong>, save, then regenerate or clear Elementor files and data. Purge other caches afterwards. Avoid pairing it with another font-hosting system unless you have checked that duplicate font files are not being created.
Why are Google Fonts still loading after I host them locally?
Google Fonts usually keep loading because a theme, page builder, plugin or CSS <code>@import</code> still references Google. Inspect the page source and Network panel, then disable the component that adds the external stylesheet. Clear builder, page, server, CDN and browser caches. A locally hosted font may also appear broken if its URL still points to an old staging domain or uses HTTP on an HTTPS site.
Which font files should I upload?
Upload only the font families, weights and styles that your site uses. WOFF2 is generally the preferred webfont format, but follow the <code>@font-face</code> declarations generated for your exact Google Fonts request, including any unicode ranges. Uploading every available weight or language subset creates unnecessary downloads and makes future maintenance more difficult.