Saved, but not shown

Astra CSS Not Updating: Where the Old Styles Are Hiding

You changed the button color, pressed Publish, and the Customizer preview agreed with you. The live site did not. Astra's styles are rebuilt from your settings every time a page is generated, so an old color almost always means an old copy of the page, or an old file, is being served from somewhere.

October 14, 2026 · 8 min read

The short answer

Astra builds its CSS from your Customizer settings and, in the free theme, prints it inline in each page. If the live site shows old styles, a page cache, host cache, CDN or CSS-combining plugin is serving a stored copy. With Astra Pro's File Generation on, refresh the generated files too. Purge caches from the server outward, then check in a private window.

On this page
  1. The color changed in the Customizer and nowhere else
  2. Inline by default, files with Pro: how Astra ships its styles
  3. The hiding spots for yesterday's Astra stylesheet
  4. When it is not a cache at all
  5. Purging old Astra styles, server first
  6. A purge routine your team can actually follow
  7. Five caches for one color change

The color changed in the Customizer and nowhere else

The symptoms vary, but they share one feature: the setting is saved and the visitor sees something older. You might see the new style when logged in and the old one in a private window. Desktop may update while phones lag. One page may be right and the rest wrong. A child theme edit may show up on your laptop and not on a client's. Each pattern hints at which copy is stale.

  • Logged in correct, logged out wrong: a page cache. Most caching plugins skip logged-in users, so you never see what visitors see.
  • Some pages right, others wrong: pages cached at different times, or Astra Pro's per-page CSS files out of step.
  • Your browser wrong, other browsers right: your own browser cache, usually holding a stylesheet with an unchanged version number.
  • Everything wrong everywhere, even fresh: the save never happened, or another stylesheet overrides Astra's rule.

If the Customizer spins forever or settings revert after saving, you have a different problem, covered in Astra Customizer not saving. This page assumes the save went through.

Inline by default, files with Pro: how Astra ships its styles

Astra keeps a fixed main stylesheet in the theme folder and generates a second layer of CSS from your Customizer choices: colors, typography, container widths, header builder settings. In the free 4.14.0 code, that dynamic CSS is attached to the theme's main stylesheet with WordPress's inline style function, so it lands inside the page's HTML on every request. There is no generated file to refresh in the free theme. A freshly built page always carries your latest settings.

Astra Pro changes that. Its File Generation option, found in the File Generation section of the Astra dashboard's Settings tab, writes the dynamic CSS to separate files under wp-content/uploads so browsers can cache them between pages. The vendor's documentation says a Refresh button there regenerates those files, and Astra Pro 4.12.2, per the vendor, changed file generation to refresh only the edited page's CSS on post updates instead of clearing everything. Faster, and one more place for an old copy to sit.

In free Astra, stale CSS means stale HTML. Find the cache that is keeping the page.

The hiding spots for yesterday's Astra stylesheet

Work through these from the server outward, because a purge in your browser is useless while the server keeps handing back the old page. On most Astra sites the first two account for the bulk of cases.

Where stale Astra CSS lives and how to clear each layer
Why it holds old stylesHow to check and clear
Page cache pluginStores whole HTML pages, including Astra's inline CSS, until purgedPurge all in WP Rocket, LiteSpeed Cache, W3 Total Cache or similar
Host or server cacheManaged hosts cache pages in front of WordPress, outside any pluginUse the host's purge button in its dashboard or admin bar
CDNEdge servers keep HTML and CSS copies for hoursPurge everything in Cloudflare or your CDN, or purge the affected URLs
CSS optimizer bundlesCombine and minify features fold inline CSS into cached filesClear the optimizer's own cache; test with combining switched off
Astra Pro generated filesPer-page CSS files written before your changeClick Refresh under File Generation, or toggle it off to compare
Browser cacheChild theme or builder stylesheet with an unchanged versionHard reload, or open a private window

Optimizers deserve a closer look. Plugins that aggregate inline CSS capture Astra's dynamic block into a combined file, and that file is only rebuilt when the optimizer's cache is cleared. Your Customizer change is then correct in the database, correct in uncached HTML and wrong in the one file visitors actually download.

When it is not a cache at all

Sometimes every layer is clean and the old look persists. Then the question is not where the copy is stored but which rule wins. Astra's inline block prints right after its main stylesheet, Additional CSS from the Customizer prints late in the head, and builder stylesheets arrive with their own specificity. A rule in Elementor's global style settings, a Spectra block's own CSS or a snippet plugin can quietly beat the Customizer.

  • Builder CSS files. Elementor writes its own CSS files and has a regenerate tool under Elementor > Tools. Spectra also produces block CSS. Clear those after style changes, separately from Astra.
  • Child theme versioning. If your child theme enqueues style.css with a fixed version number, browsers keep the old file until that number changes. Bump it on each edit.
  • Scheduled changes. Astra 4.13.12 fixed scheduled Customizer changes that failed to publish with a fatal error when applied by WP-Cron or WP-CLI. If you schedule changes, update first.
  • Settings changed by AI tools. Since 4.13.0, Astra exposes an Abilities API and MCP settings. The theme's own code notes those writes skip the Customizer's save routines, so refresh Pro's files and purge caches by hand afterward.
  • CSS scattered in four places. Additional CSS, child theme, builder custom CSS and a snippets plugin can all target the same element. The last one loaded wins.

To see which rule wins, right-click the element, choose Inspect, and read the crossed-out rules in the Styles panel. The surviving rule names its source file, which names the culprit. The cross-theme version of this hunt is in WordPress theme CSS not loading.

Purging old Astra styles, server first

  1. 1

    Confirm the save

    Reopen the Customizer and check the setting holds its new value. If not, fix saving first.

  2. 2

    View an uncached copy

    Load the page in a private window with a throwaway query string such as ?v=2. If the new style shows, the save is fine and a cache is the problem.

  3. 3

    Refresh Astra Pro's files

    If you run Astra Pro with File Generation enabled, click Refresh in that section of the Astra dashboard's Settings tab.

  4. 4

    Clear the optimizer and page cache

    Clear the CSS combine and minify cache, then purge the page cache plugin.

  5. 5

    Purge the host and CDN

    Use the host's purge tool, then purge the CDN. Do these after the plugin, or the CDN can refill from a stale origin.

  6. 6

    Clear builder CSS

    Regenerate Elementor's CSS files or the equivalent in your builder if the stale rule lives there.

  7. 7

    Test logged out on two devices

    Check a phone and a desktop browser in private mode. If one still differs, a device-specific cache remains.

A purge routine your team can actually follow

Stale CSS returns whenever someone edits styles without knowing how many caches the site has. The fix is a written routine, one paragraph long, taped to the inside of the admin: what to purge, in what order, after which kind of change. Our WordPress CSS changes not showing guide has a general version you can adapt.

  • Make style edits on staging, then push and purge once, instead of tweaking live.
  • Keep custom CSS in one place, ideally the child theme, with a version number you bump.
  • Exclude Astra's inline CSS from aggregation if your optimizer allows it, and measure whether combining helps at all.
  • After each Astra or Astra Pro update, purge everything; with Pro installed the theme clears its generated files, but never your plugin's cache or your host's.

If the site is slow as well as stubborn, the same layers are usually involved. The Astra speed guide weighs inline CSS against Pro's files, and Astra fonts not loading covers the font files, which have a cache of their own.

Five caches for one color change

Count the layers in the table above. Changing a button color on a typical Astra site touches the database, the theme's generated CSS, an optimizer, a page cache, a host cache and a CDN. Each layer exists for a good reason, and each one is a place for yesterday's design to hide. That is the WordPress trade: speed bolted on in layers, with a purge button for each. Our Astra review explains why the theme itself is not the heavy part.

A Next.js build handles it differently. Styles are compiled into versioned files at build time, the filename changes when the content changes, and a deploy replaces everything at once, so there is no stale copy to chase. It costs more up front and structural changes need a developer. Astra vs Next.js compares the two honestly, and moving from Astra to Next.js shows what a move involves, with Athena CMS for editing. If you are staying, our theme troubleshooting team can map your cache layers, and the Astra repair hub and the wider troubleshooting section cover the rest.

Questions people ask before they call

Not in the free theme. Astra 4.14.0 prints its Customizer-generated CSS inline in each page, so there is no generated file to remove; clearing page caches is what matters. Astra Pro's File Generation writes separate CSS files under wp-content/uploads, and its Refresh button regenerates them. Compare tiers on Astra pricing.

Caching plugins and many hosts skip page caching for logged-in users. You see a freshly built page with your new styles; visitors get the stored copy. Open the site in a private window to see what they see, then purge the page cache, host cache and CDN, in that order.

It can help sites where visitors read several pages per visit, because the browser caches the CSS file. It also adds a layer to refresh after changes. Test it on staging with a multi-page visit before committing. Our Astra customization service can measure both setups on your site.

Additional CSS prints late in the page head, so it often outranks Astra's own rules. If a color set in the Customizer does not show while Additional CSS does, look for an older custom rule overriding it, or a builder global style. Inspect the element in your browser to see which rule wins.

When Astra Pro is installed, a theme update clears the generated CSS files for both the theme and the addon, but it cannot touch your caching plugin, host cache or CDN. Purge those yourself after every update, or cached pages can pair old inline CSS with the new theme's stylesheet. See Astra layout broken after update.

Free · No obligation

Make your Astra changes show up the first time

Tell us which caching plugin, host and CDN your Astra site uses. We will map every layer that stores CSS and give you a purge routine your team can follow.

Which of these sounds like you? (pick any)

Rather talk now? Call (210) 346-0848.

CallGet a quote