Wrong typeface, live
Astra Fonts Not Loading: Why Your Typeface Fell Back to Arial
The brand guide says Montserrat. The homepage says Arial, or something close enough to fool everyone but the designer. Astra fetches fonts one of two ways, from Google or from a folder on your own server, and each way has its own failure points.
October 14, 2026 · 8 min read
The short answer
Astra fonts usually fail to load for one of five reasons: the font is set on a builder widget that overrides Astra's Global > Typography, Load Google Fonts Locally cannot write or serve the astra-local-fonts folder, a consent or security tool blocks Google's servers, a cache holds an outdated font stylesheet, or a fixed 4.13 bug. Check the browser's Network tab first.
On this page
- A system font standing in for your brand
- Two roads for a Google Font in Astra
- Most likely culprits on an Astra site, and how to catch each
- Font bugs fixed in Astra's 4.13 releases
- Getting Astra's fonts back, in order
- Keeping fonts stable through the next redesign
- Fonts that load themselves, versus fonts you babysit
A system font standing in for your brand
Font failures look smaller than they are. The site works, the words are there, and only the shape is wrong. Visitors notice anyway, the way they notice a shop sign in a font the shop did not choose. On Astra the failure takes a handful of distinct forms, and the form tells you where to look.
- The whole site uses a system font. Astra's font stylesheet never loaded, or loaded and then failed to fetch the font files.
- Headings right, body wrong, or the reverse. The two are set separately in Astra's typography settings, or one is overridden by a builder.
- Bold text looks smeared. The weight you asked for was never loaded, so the browser fakes it from the regular weight.
- The right font arrives a moment late. Text appears in a fallback, then swaps. That is font-display swap doing its job, not a failure.
- Fine in the Customizer, wrong on the live site. The preview always loads Google's copy; the live site may be using your local one.
That last point is from Astra's own code: in the Customizer preview and in the admin, the theme requests fonts from Google even when local loading is on. A preview that looks right proves only that Google has the font.
Two roads for a Google Font in Astra
You choose fonts under Global > Typography in the Customizer. Base Typography holds the Body Font and Headings Font, each with a family and weight, and Presets offers ready-made pairings. Individual headings and elements can take their own families too. Astra gathers every Google font in use and requests them in one stylesheet called astra-google-fonts, with font-display set to swap by default.
Road one is remote. The stylesheet comes from fonts.googleapis.com and the font files from fonts.gstatic.com; since 4.12.6 Astra adds preconnect hints for both. Road two is local. Turning on Load Google Fonts Locally under Astra > Settings > Performance makes the free theme download the font files once and serve them from your own server, and Preload Local Fonts becomes available only after local loading is switched on. You do not need Astra Pro for either road; the free theme's code reads both settings.
Most likely culprits on an Astra site, and how to catch each
Open the page in a private window, press F12, go to the Network tab, filter by Font and reload. You will see one of three things: font files loading with status 200, requests failing with 404 or a blocked status, or no font requests at all. That single view sorts the causes below.
| What the Network tab shows | Where to fix it | |
|---|---|---|
| Builder font overriding Astra | Fonts load, just not the one you expected on that element | Elementor or Spectra typography for that widget, or the builder's global fonts |
| Local folder not writable | astra-local-fonts.css or font files return 404 | File permissions on wp-content, or the host's filesystem method |
| Google blocked | Requests to fonts.googleapis.com blocked or never sent | Consent banner, security headers or a privacy plugin; or switch to local loading |
| Stale cached stylesheet | Old font names or paths in the CSS response | Flush Astra's local fonts, then purge page cache and CDN |
| Weight never requested | Font loads, but only regular weight appears | Pick the weight in Global > Typography, not just in a widget |
| Fixed 4.13 bug | 404s on subfolder installs, CORS errors on multi-domain sites | Update Astra on staging |
Builders cause more of these than the theme does. Elementor and Spectra both let you set a family on a widget or block, and a widget setting beats the theme's global one. Elementor also loads its own Google Fonts for the fonts chosen inside it, through its own settings, which means a site can have Astra serving fonts locally while Elementor still calls Google. Our Astra with Elementor and Astra with Gutenberg guides explain how each divides the work.
Font bugs fixed in Astra's 4.13 releases
Local font loading had a busy year. If you run an older 4.13 release, compare your symptom with this list from the changelog shipped with Astra 4.14.0 before touching anything else.
- 4.13.4: a PHP fatal in the webfont and docs filesystem helpers on FTP-based hosts without WordPress credentials.
- 4.13.6: body font size rendering as 0px or 0% on PHP 8.0 and later when the stored desktop value was integer 0. Invisible text, not a missing font.
- 4.13.7: Load Google Fonts Locally failing with a CORS block on single installs serving several domains, such as WPML with a domain per language.
- 4.13.11: local webfonts returning 404 on Bedrock and other subfolder installs.
- 4.13.12: the Customizer typography dropdown collapsing and hiding Line Height and Letter Spacing when an imported template left the line-height unit unset.
Updating on a staging copy and retesting the Network tab is the quickest way to rule these in or out. If an update itself broke things, see Astra layout broken after update.
Getting Astra's fonts back, in order
- 1
Find who sets the font
Inspect the affected text and read the font-family in the Computed panel. If the rule comes from an Elementor or Spectra file, fix it in the builder, not in Astra.
- 2
Set families and weights in Global > Typography
Choose the Body Font and Headings Font with every weight you actually use. Fewer weights load faster; missing ones get faked.
- 3
Check the Network tab
Logged out, filter by Font, and note 404s, blocked requests or missing requests.
- 4
Flush the local fonts
With Load Google Fonts Locally on, use Astra's Flush Local Fonts Cache option in the Performance settings so the files rebuild, then load a page once to trigger the download.
- 5
Confirm the folder
Check that wp-content/astra-local-fonts exists and holds a folder per family. If it stays empty, ask your host about write permissions and the filesystem method.
- 6
Purge every cache
Clear the page cache plugin, host cache and CDN so no page still points at an old font stylesheet.
- 7
Preload only what is above the fold
Turn on Preload Local Fonts, then confirm the preloaded file is the one the hero text uses. Preloading every weight slows the page.
Keeping fonts stable through the next redesign
Font problems come back when typography is set in three places by three people. Pick one owner: Astra's Global > Typography for site-wide families, the builder only for exceptions, written down. Keep the number of families to two and weights to what the design uses. After any Customizer change on a local-fonts site, view one page logged out so the folder rebuilds before a cache freezes a broken version.
If you also see stale colors or spacing, the same cache layers are involved, and Astra CSS not updating walks through them. The general WordPress theme fonts not loading page covers the same failure on other themes, and layout shift in WordPress themes explains why a late font swap can move the page.
Fonts that load themselves, versus fonts you babysit
Look at the moving parts behind one typeface on an Astra site: a theme setting, a performance toggle, a download routine, a folder that is deleted and rebuilt, a preload option, a builder that may load its own copy, and three caches. None of it is unreasonable. All of it is maintenance. The Astra speed guide shows how fonts fit the wider performance picture, and our Astra review covers the theme as a whole.
Next.js handles fonts with next/font, which downloads the font at build time, self-hosts it and sets fallback metrics to limit layout shift. There is no runtime folder to rebuild. It costs more to build and structural changes need a developer, so it suits sites where speed and polish earn money. Compare them in Astra vs Next.js, read about moving off Astra, or let our theme troubleshooting service fix the fonts you have. The Astra repair hub and the troubleshooting section list related problems.
Questions people ask before they call
Yes. The setting sits under Astra > Settings > Performance and the free theme's code reads it, so Astra Pro is not required. When it is on, Astra downloads the font files to wp-content/astra-local-fonts and serves them from your server. Preload Local Fonts becomes available only once local loading is enabled.
The Customizer preview always loads fonts from Google, even with local loading on. The live site uses your local copy, so a broken local folder or a stale cached stylesheet shows only on the front end. Flush Astra's local fonts, load a page logged out, and purge every cache.
Elementor widgets and its global fonts override the theme. If a heading widget has its own family set, Astra's Global > Typography no longer applies to it. Clear the widget's typography or set Elementor's global fonts to match. Our Astra customization service can untangle the two.
Usually a little, because the browser skips connections to Google's servers before text renders, and preloading the hero font helps further. It also keeps visitor requests off Google's servers, which some privacy policies require. Measure before and after on your own pages using the Astra speed guide.
The bold weight was probably never loaded. Astra requests only the weights selected in its typography settings, so a 700 weight used in a builder but not chosen in Global > Typography gets faked by the browser. Add the weight in the Customizer and flush local fonts if you use them.
Keep reading
- Missing typefacesWordPress Theme Fonts Not Loading: Find Where the Typeface Went MissingWordPress theme fonts not loading? Check Google Fonts settings, local font files, CDN CORS headers, font-display and icon fonts in the order they fail.
- Astra with ElementorAstra and Elementor: Who Owns the Header, the Colors and the BreakpointsAstra with Elementor, set up properly: Full Width / Stretched pages, one header owner, Astra's palette in Elementor, the 921px gap and the 4.13 conflicts.
- Hands-on CLS repairFix CLS on a WordPress Theme: Catch the Element That Moves, Then Pin It DownFix CLS on a WordPress theme: catch the shifting element in DevTools, then size images, reserve ad space and tame fonts, sticky headers and cookie banners.
- Phones only, oddlyAstra Mobile Menu Not Working: Find the Switch That FailedAstra hamburger dead, empty or showing the wrong links? Check the 921px switch, the Off-Canvas settings, delayed scripts and 4.13.x bugs, in that order.
- Speed up AstraAstra Theme Speed: The Settings, the Order and the CeilingSpeed up Astra in the right order: inline CSS, local Google Fonts, the header builder, Elementor weight and Core Web Vitals, plus what Astra cannot fix.
- Astra, reviewed fairlyAstra Theme Review (2026): The Builder-Neutral Theme and Its AI BundlesAstra theme review, fact-checked October 2026: the 3-site Pro cap, AI bundle renewals, Elementor fit, the 921px breakpoint and who should skip it.
- Everything in WordPress TroubleshootingSee the section
Get your Astra typography back on brand
Tell us which fonts should appear and what shows instead. We will trace where each font is set and served, fix it on a copy and leave you a one-page font map.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.