Custom Fonts – Host Your Fonts Locally

Custom Fonts – Host Your Fonts Locally

Custom Fonts is a powerful WordPress plugin that allows you to upload your own custom fonts or choose from a vast collection of Google Fonts, all host …
Rating:
4.3
star-rating-1star-rating-2star-rating-3star-rating-4star-rating-5
Active Installations:
300000+
Last Updated:
Jun 13, 2025
WordPress Version:
5.0 or higher
Tested up to:
6.8.3

Faster Website Loading

Improve website performance by hosting fonts locally and reducing page load times.

Custom Typography Options

Upload your own fonts or choose from a wide range of Google Fonts to match your brand identity.

Multiple Font Variants

Upload and manage different font weights, styles, and character sets to personalize your typography.

Enhanced Privacy Compliance

Self-host your fonts to eliminate privacy concerns and ensure GDPR compliance.

  • 2.1.15
  • Updated plugin with few extra information for clarity.

  • 2.1.14

  • Fix: Prevented early translation loading error by initializing text domain strings on init hook.
  • Fix: Ensure SVG icons inside Add button propagate click events properly by adjusting pointer-events styling

= 2.1.13
– Custom fonts plugin tested with WordPress 6.8 version.

= 2.1.12
– Improved Usage Tracking option with a new toggle switch design while keeping all existing features.

= 2.1.11
– Added logic to generate and enqueue a local CSS file for downloaded Google Fonts, ensuring they load in both the editor and frontend to support inline font styles.

= 2.1.10
– Resolved issue where plugin was not properly deploying on wp.org

= 2.1.9
– Updated short description and tags inside readme file.

= 2.1.8
– Custom fonts plugin tested with WordPress 6.7 version.

= 2.1.7
– Fix: Custom font variation getting place even after selecting the other weight and style. (Props – https://github.com/alexist-ong)

2.1.6

  • Improvement: Few string from admin dashboard app doesn’t have text domain support. (Props – https://github.com/pedro-mendonca)

2.1.5

  • Improved codebase for improved security.

2.1.4

  • Improvement: Compatibility with WordPress 6.5.

2.1.3

  • Fix: Resolved issue with local fonts not rendering properly on the frontend.

2.1.2

  • Fix: Resolve PHP Warning ‘Cannot modify header information’ during post content editing in Gutenberg.
  • Fix: Thrive product created layout’s changes not saved due to Custom fonts plugin conflicts.

2.1.1

  • Improvement: Compatibility with WordPress 6.4.

2.1.0

  • New: Introducing new ‘Fonts Preload’ option, to preload custom fonts.
  • New: Introducing an option to update existing font name.
  • Improvement: Autosave functionality for adding, updating fonts.
  • Improvement: Code refactored and optimization.
  • Fix: Custom local fonts not working in FSE site editors.

2.0.2

  • Improvement: Added multiple font file selection for single font weight.
  • Fix: Frontend fonts messed up after 2.0 update.
  • Fix: Pre added multiple font files for single weight were missed after 2.0.
  • Fix: Fonts are not listed under Beaver Builder editor typography settings.
  • Fix: Text domains load correctly for JavaScript translations. (Props – https://github.com/pedro-mendonca)
  • Fix: Used proper sprintf in hard concatenated string for translation. (Props – https://github.com/pedro-mendonca)
  • Fix: Added translation for hardcoded ‘Italic’ suffix. (Props – https://github.com/pedro-mendonca)

2.0.1

  • Fix: Edit Custom font screen blanks on expanding font from admin list view.
  • Fix: PHP error undefined index ‘font_weight’ on the frontend.

2.0.0

  • New: Redesigned the entire admin area with a better user experience.
  • New: Google fonts support in Custom Fonts plugin now.
  • Improvement: Custom font supports in FSE editor.

1.3.7

  • Fix: Custom font’s CSS not applying in responsive previews of WordPress block editor.

1.3.6

  • Improvement: Compatibility with Spectra editor.

1.3.5

  • Fix: Inherit font option not working as expected for some customizer options.

1.3.4

  • Fix: Custom fonts are not loading on Astra customizer and Elementor typography settings after Elementor Pro v3.6.0.

1.3.3

  • Fix: Headers already sent warning in customizer.

1.3.2

  • Fix: JS conflict with Jetpack plugin on admin.

1.3.1

  • Fix: Font not rendered properly when multiple font format files are added for a single font.

1.3.0

  • New: Add multiple font weight to the Custom Fonts.

1.2.6

  • Improvement: PHP 8.0 compatibility.

1.2.5

  • Fix: Font display not added properly.

1.2.4

  • Improvement: Hardened the security of plugin

1.2.3

  • Fix: Fixed compatibility with other plugins with respect to the admin notice.

1.2.2

  • New: Users can now share non-personal usage data to help us test and develop better products. ( https://store.brainstormforce.com/usage-tracking/?utm_source=wp_dashboard&utm_medium=general_settings&utm_campaign=usage_tracking )

1.2.1

  • Improvement: Hardened the security of plugin
  • Improvement: Compatibility with latest WordPress PHP_CodeSniffer rules

1.2.0

  • Improvement: Displaying Menu after Astra options Menu.

1.1.0

  • New: Option to select font-display property.

1.0.8

  • New: Now you can also upload otf fonts.
  • Fix: ttf fonts not being uploaded in WordPress media library.

1.0.7

  • Fix: Custom Fonts loading the Block Editor breaking styling of the editor.

1.0.6

  • Improvement: Enqueue the custom fonts in the Blocck Editor to correctly prefiew the custom fonts.

1.0.5

  • Fix: JavaScript error in the Firefox browser not allowing to upload any fonts.

1.0.4

  • New: Added compatibility with Beaver Builder Theme, Beaver Builder Plugin and Elementor.

1.0.3

  • Fix: When two custom fonts are loaded on a site, only one of the fonts will be actually enqueued.

1.0.2

  • White Label support added from the Astra Pro plugin.

1.0.1

  • Improved the design of the Admin UI.
  • Changed the plugin name to be Custom Fonts instead of BSF Custom Fonts.

1.0.0

  • Initial release.

It seems simple enough, but doesn't seem to do as advertised.

By pdwalker on February 8, 2025

The fonts were easy to upload and define, but I was unable to see the new fonts afterwards. After trying different themes, different options and different settings for an hour, I was unable to make it work.

If the plugin really does work, then some explicit instructions from the developer on how to actually make it work would be really helpful.

As it ism I cannot use it.

Gave up on this one now using another one.

By Nick (nickjamesillustrator) on August 28, 2024

Had the same problem as others on the forum: selected Google fonts aren't visible in the elementor dropdown box. I disabled all other plugins except Elementor. No joy. The administrators say it works for them. So good luck with that.

I also tried downloading the fonts I wanted and uploading them again to Custom Fonts but this caused other problems.

Have now dumped Custom Fonts and use another plugin.

Italics mess up the entire font and must be uploaded as a a separate font

By annssi on July 31, 2024

Italics are not working. As soon as they are added as a font variant all variants are shown as italics. Thus you need to set-up the italics as a separate font which makes it really cumbersome to use.

This problem has been around for over a year and it seems nothing has been done to fix it. Not impressed. :-(

Best font management plugin

By skylabb on June 27, 2024

There are probably a dozen of fonts plugins out there with many if not most of them still use Customizer interface. Moving forward with the future of Wordpress, you want the plugin to be compatible with Full Site Editing framework, and this plugin works well with the new framework.

error: custom-fonts/classes/class-bsf-custom-fonts-render.php on line 194

By revayatejahad on May 13, 2024

in lines 194 of following path, there was a problem ...

In the provided code snippet, the issue was occurring in the remove_custom_font_google_url method. This method is responsible for removing custom fonts from the Google fonts URL array.

The problem was with the line:

php code:

if ( $value['font_fallback'] ) {

Here, the code was trying to access the font_fallback index of $value directly without ensuring that $value['font_fallback'] exists and is not null. This could lead to issues if $value['font_fallback'] is not set.

To fix this, I made the following changes:

  1. I added a check to see if $value['font_fallback'] exists and is not null using isset():

php code:

if ( isset( $value['font_fallback'] ) && $value['font_fallback'] ) {

  1. If $value['font_fallback'] exists and is not null, then $value['font_fallback'] is appended to $font_key. Otherwise, $font_key remains the same.

By adding this check, we ensure that the code doesn't try to access an undefined index, which could lead to the "Trying to access array offset on value of type bool" warning. Instead, it first checks if the index exists before attempting to access it.

SO much better than other plugins, so easy to use

By emily2024 on April 30, 2024

The last plugin I tried before this had a paywall to upload more than one weight variation of one font. Unbelievable. Considering most good fonts have 8+ variations, I thought other plugins were probably running the same scheme BUT this plugin literally allows you to upload not just as many variations as you want but several different families as well. In the FREE version!! This plugin is a godsend

Italics Don't Work in Elementor Editor

By joedwork1 on April 20, 2024

Thanks for making the plugin, integrated seamlessly for bold/regular fonts. If I make font styles/add the Woff2 italic assets as italics within the same font family as regular and bold fonts in the control panel, Elementor gravitates to the italic font and makes everything italic regardless if default/regular is selected in the style dropdown of Elementor editor. For now I have to make separate fonts for italic and regular versions and ignore the italic/regular selector in Elementor Page builder. Or probably forever because I see a bad review regarding this from 9 months time ago

The good news is that if Italic is selected for the base font already set throughout the site in Elementor Editor, Elementor attempts to augment the Italic, just not with the assets provided since those have to be a separate font within this plugins control panel in reality.

Just works

By lucasbustamante on February 29, 2024

Works well

Stopped Workin Day 4

By atlla on February 2, 2024

It was a slow decline until finally it completely stopped working and changed all the font on the website to Times New Roman.

Left a comment asking for support, no reply.
I'm going to have to deactivate and find a different solution.

Used with Thrive Themes - broke thrid time

By mkdires on January 31, 2024

Huge Problems with thrive Themes. It is already the third time that it breaks my site and all fonts are wrong.

Try other plugins too!

Embed Privacy

Embed Privacy prevents the loading of embedded external content and allows your site visitors to opt-in.

Try Demo More Details

Plugin Load Filter

Dynamically activate the selected plugins for each page. Response will be faster by filtering plugins.

Try Demo More Details

Optimization Detective

Provides an API for leveraging real user metrics to detect optimizations to apply on the frontend to improve page performance.

Try Demo More Details
Screenshots
Author Site Author Site

Try Custom Fonts – Host Your Fonts Locally With InstaWP

Contact Sales

Reach out to us to explore how InstaWP can benefit your business.