Storefront style fixes

Storefront CSS Not Updating: Version Strings, Load Order and the Caches in Between

Storefront rebuilds your Customizer colors on every page view and loads your child stylesheet with a version number you control. So when a change refuses to appear, only two stories are possible: something is holding an old copy, or something printed later is beating your rule.

October 16, 2026 · 8 min read

The short answer

When Storefront CSS changes do not show, check three things. The child stylesheet's ?ver= value, which Storefront takes from the Version line in your child theme's style.css, so an unchanged line keeps old copies cached. The print order: child CSS follows the Customizer's inline colors and precedes Additional CSS. Then purge page, host, CDN and optimizer caches.

On this page
  1. Which edit refused to appear?
  2. Storefront's stylesheets in the order the browser reads them
  3. Five reasons a saved change stays invisible
  4. The checkout colors the Customizer never reaches
  5. Clearing stale Storefront styles, start to finish
  6. A versioning habit for every style edit
  7. Six layers between a color and a customer

Which edit refused to appear?

Storefront offers four places to change how a store looks, and each fails in its own way. Name the one you used before purging anything, because a purge cannot fix a rule that is losing, and a perfect rule cannot get past a cache that is still serving yesterday's page.

  • A Customizer color or font that shows in the preview but not on the live store points to a cache, or to a child stylesheet or Additional CSS rule already setting that property.
  • An edit to the child theme's style.css that shows only after a hard refresh, or never on phones, points to a version string that did not change.
  • Additional CSS that works while the child stylesheet does not points to load order or specificity.
  • An edit to Storefront's own style.css will be erased by the next update, and its version string never changes, so caches keep the old file anyway.
  • A checkout button color that ignores the Customizer usually means a block checkout, which reads a different setting.

Storefront's stylesheets in the order the browser reads them

Read the head of any Storefront page and the order is fixed by the theme's code. When two rules have equal specificity, the one printed later wins, so this order settles most arguments between your styles and the theme's. The handles below are the ids you will see in the page source, with -css or -inline-css on the end.

Front-end CSS on a Storefront 4.6.2 store with WooCommerce and a child theme, in print order
What it carriesWhat changes its version
storefront-styleThe parent theme's style.cssStorefront's own version, 4.6.2
storefront-style inlineCustomizer colors and type, built by get_css() on every requestNothing; it is rebuilt inside each page
storefront-icons, storefront-fontsIcon styles and the Source Sans Pro request to GoogleStorefront's version
storefront-woocommerce-styleStorefront's shop stylesheet, plus inline extension colorsStorefront's version
storefront-child-styleYour child theme's style.css, enqueued by Storefront at priority 30The Version line in your child style.css header
Additional CSSCustomizer, Additional CSS, printed late in the headNothing; it sits in the page HTML

Two consequences follow. Your child stylesheet beats a Customizer color when the selectors are equally specific, so a color set in both places will ignore the Customizer. And Additional CSS beats your child stylesheet on the same terms. Block content has its own sheet as well, storefront-gutenberg-blocks, carrying its own inline Customizer colors for block buttons and the block cart.

Five reasons a saved change stays invisible

1. Nobody touched the child theme's Version line

Storefront enqueues your child stylesheet itself, as storefront-child-style, and stamps its address with whatever the Version line in the child's style.css header says. Browsers, CDNs and some host caches keep a stylesheet by its full address. If the line has said 1.0.0 since launch, every copy of the old file is still valid in their eyes. Raise the number with each edit, or have a developer swap Storefront's enqueue for one that uses the file's modification time.

2. Tutorial code enqueues the stylesheets again

WooCommerce's own documentation says a Storefront child theme needs no PHP to load the parent styles, because the theme does it. Generic tutorials disagree, and their code causes trouble here. A child's functions.php loads first, so its enqueue at the same priority runs before Storefront's, putting your file above the theme's and losing every tie. A second copy of the parent style.css hooked later can print after the Customizer's inline block and quietly restore default rules over your colors. Delete the extra enqueues and let Storefront handle both files.

3. A newer rule that is still weaker

Being printed later only wins ties. A more specific selector in the Customizer's inline CSS or in woocommerce.css beats a plainer child rule wherever it sits. Right-click the element, choose Inspect, and read the crossed-out lines in the Styles panel; the winning rule names its source. Match its specificity in the child stylesheet rather than marking every line important, which only moves the fight.

4. A cache is holding the page that carries your colors

Storefront writes no CSS file from Customizer settings, so there is nothing to regenerate. The colors travel inside each page's HTML, which means any layer that stores HTML stores the old colors: the caching plugin, the host's server cache, a CDN that caches pages. Optimizers that gather inline styles into a combined file add one more copy. Logged-in owners often skip all of them, which is why you see the change and customers do not. The general version of this chase is CSS changes not showing.

5. The edit went into Storefront's own files

Changes to the parent style.css keep the address ending ver=4.6.2, so caches see no reason to refetch, and the next Storefront release overwrites the file. Storefront's functions.php closes with a note saying not to add code there and to use a custom plugin instead. Move the rules to the child theme or Additional CSS before the next update erases them.

The checkout colors the Customizer never reaches

A block checkout is styled mostly by WooCommerce's own block CSS, not by Storefront's woocommerce.css. Storefront maps only a few Customizer settings onto it. Block buttons, the Place Order button among them, take the Alternate button background color and Alternate button text color from Customizer, Buttons, not the plain button colors. The cart's submit area and the order summary quantity badge follow the background and text colors, and the price filter slider follows the accent color. Every other block detail needs child theme CSS aimed at WooCommerce's block classes.

Owners who changed the main button color and watched the checkout ignore it are usually looking at this mapping. If the checkout's layout is off as well as its colors, Storefront WooCommerce layout broken covers the block side in detail.

Clearing stale Storefront styles, start to finish

  1. 1

    Confirm the save

    Reopen the Customizer or the child file and check the new value is really stored. If the Customizer reverts, that is a saving fault; see publishing failed errors.

  2. 2

    Look at the source logged out

    In a private window, view the source and find storefront-style-inline-css for Customizer colors, or the storefront-child-style link for your file. Note the ver= value.

  3. 3

    Bump the version

    Raise the Version line in the child theme's style.css header so the stylesheet gets a new address.

  4. 4

    Remove duplicate enqueues

    Search the child functions.php for wp_enqueue_style calls that load style.css or the parent stylesheet, and delete them.

  5. 5

    Purge from the plugin outward

    Clear the optimizer's files, then the page cache, the host cache and the CDN, in that order.

  6. 6

    Settle rule conflicts

    Inspect the element. If a Customizer, child or Additional CSS rule wins, keep the property in one of those places only.

  7. 7

    Check a phone and the checkout

    Some caches keep a separate mobile copy, and the block checkout reads its own colors. Test both before calling it done.

A versioning habit for every style edit

  • Pick one home for each kind of rule: colors in the Customizer, structural CSS in the child theme, emergency patches in Additional CSS, moved into the child theme within the week.
  • Raise the child theme's Version line with every stylesheet edit, and note the change beside it in the header comment.
  • Turn on purge-on-save in your caching plugin, and learn where the host's own purge button lives before you need it.
  • Make style edits on staging and push them in one batch, rather than nudging the live store and purging after each tweak.

Those habits are built into our hosting and maintenance plans. If your header or phone menu also misbehaves after style work, Storefront header not showing and Storefront mobile menu not working cover those. The Storefront speed guide explains the font request in the table above, and the cross-theme mechanics sit in WordPress theme CSS not loading.

Six layers between a color and a customer

Count them: the Customizer setting, the inline block it becomes, the child stylesheet, Additional CSS, the optimizer, and the caches in front of the store. Each is reasonable on its own. Together they make a color change a small investigation. The Storefront review still rates the theme a sound base for a small shop, and this page is how you keep it that way. More fixes live in the troubleshooting section.

Storefront prints your colors fresh every time. Something else is keeping the old ones.

A Next.js build compiles styles into files named after their contents, so a deploy cannot leave a stale stylesheet behind, and content edits in Athena CMS come with a real preview. It costs more to build and needs a developer for layout changes. Storefront vs Next.js compares the two, and Storefront to Next.js maps the move. For a fix this week, our theme troubleshooting team works on staging, and WooCommerce website repair handles store faults beyond styling.

Questions people ask before they call

Not in a file. Storefront builds the CSS from your Customizer settings on each request and prints it inline in the page head, in a style block with the id storefront-style-inline-css, with shop and block colors in two similar blocks. There is nothing to regenerate. If the live page shows old colors, a cache is serving an old copy of the page.

No. WooCommerce's documentation says a Storefront child theme only needs a style.css and an empty functions.php, because Storefront loads the parent styles itself. It also enqueues your child style.css, after its WooCommerce stylesheet, with your child theme's Version line as the version string. Extra enqueue code from generic tutorials can load files twice or in the wrong order.

Because something printed later is setting the same property. Customizer CSS prints right after Storefront's main stylesheet. Your child stylesheet prints after that, and Additional CSS prints last. If either of those sets the color with an equally specific selector, the Customizer loses. Inspect the element, find the winning rule, and keep the color in one place.

On a block checkout, Storefront maps button colors from the Alternate button background color and Alternate button text color settings in Customizer, Buttons, not from the plain button colors. Change the alternate pair, or add child theme CSS for the specific block button. A classic shortcode checkout follows Storefront's own woocommerce.css instead.

Only changes made inside Storefront's own files. Customizer settings, Additional CSS and your child theme survive updates. After an update the parent stylesheet's address carries the new version number, so browsers fetch it fresh, while your child stylesheet keeps its own version until you raise the Version line yourself.

Keep reading

Free · No obligation

Make your Storefront style changes stick

Tell us what you changed and what customers still see. We trace the stale copy or the winning rule, fix it on staging, and leave your child theme versioned properly.

Which of these sounds like you? (pick any)

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

CallGet a quote