Genesis stylesheet fixes
Genesis CSS Not Updating: The Version Number Your Stylesheet Is Stuck On
Open your page source and find the end of the stylesheet address: style.css?ver=3.4.3, or 2.6.0, or a number a developer typed years ago. Browsers, caching plugins and CDNs treat that whole address as the file's name. Edit the file without changing the number and, to most of the internet, nothing happened.
October 16, 2026 · 8 min read
The short answer
Genesis CSS usually fails to update because the child theme's stylesheet keeps the same version string after you edit it, so browsers and caches go on serving the old copy. Raise the Version line in style.css, or the CHILD_THEME_VERSION constant in older child themes, then purge the optimizer, the host's page cache and the CDN, in that order.
On this page
Saved on the server, invisible on the site
The pattern is familiar. You change a color or a margin in the child theme's style.css, upload it, reload, and nothing moves. A hard refresh shows the change on your laptop, but your business partner still sees the old color on her phone. Or the change never shows anywhere, and DevTools reveals your new rule sitting there with a line through it. Those are three different problems with three different fixes, and on a Genesis site the first one is by far the most common.
- Nobody sees the change, including you after a hard refresh. Suspect the wrong file, or a cached page pointing at an old stylesheet address.
- You see it, visitors do not. Suspect the version string and the caches between your server and their browser.
- The rule loads but is crossed out. Nothing is cached; something more specific or printed later is winning.
How a Genesis child theme labels its stylesheet
Genesis loads the child theme's style.css by itself; the framework docs say so, and say child themes should supply all their own CSS. What decides whether a browser fetches a fresh copy is the version attached to the address. Child themes written before Genesis 3.0 set that number by hand with a constant in functions.php. Genesis Sample 2.6.0, for example, defines CHILD_THEME_VERSION as 2.6.0 and passes it to its font and script enqueues too.
Genesis 3.0.0 added genesis_get_theme_version(), which reads the Version line from the child theme's style.css header. The changelog describes it as a cache-busting string and notes that a duplicate CHILD_THEME_VERSION constant is no longer needed. There is a bonus: when the SCRIPT_DEBUG constant is true, the function returns the current Unix time instead, so every page load gets a fresh address. Current Genesis Sample uses it for its block stylesheet as well as AMP styles.
| Delivered as | What changes its address | |
|---|---|---|
| Child theme style.css | A file Genesis enqueues | The Version header, or CHILD_THEME_VERSION on older child themes |
| Block stylesheet (Genesis Sample: lib/gutenberg/front-end.css) | A file the child theme enqueues | genesis_get_theme_version(), so the same Version header |
| Customizer colors (Genesis Sample: lib/output.php) | Inline CSS printed in the page | Nothing; it changes when the setting is saved and the page cache clears |
| Additional CSS | Inline CSS printed by WordPress | Same as above |
| Optimizer bundles | Combined files the caching plugin writes | The plugin's own rebuild, on its own schedule |
Five reasons a Genesis style edit stays hidden
1. The version string never moved
This is the usual one. The file changed; its address did not. Browsers that cached style.css?ver=2.6.0 keep using it, and so does any CDN in front of the site. A block stylesheet versioned from the same header has the same problem. Check: View Source, find your child theme's stylesheet, and compare the ver= number with the Version line in style.css and any CHILD_THEME_VERSION define in functions.php. Whichever one matches is the one to raise.
2. The edit went into Genesis instead of the child theme
Genesis 3.0.0 removed all styles from the framework's own style.css, and the docs warn that the parent file is not meant to be inherited. Edits made there do nothing visible, and the next framework update would overwrite them anyway. Check: confirm the path you edited sits in your child theme's folder, not wp-content/themes/genesis.
3. Inline CSS printed after your file wins
Genesis Sample prints its Customizer color settings as inline CSS attached to the theme stylesheet, and WordPress prints Additional CSS later still. At equal specificity, the later rule wins. Change a link color in style.css while the Customizer holds a different one and your edit loses every time. Check: inspect the element; if your rule is crossed out, change the Customizer setting or write a more specific selector. The general rules of that fight are in CSS changes not showing.
4. A cached page still points at the old address
Raising the version only helps visitors who receive fresh HTML. A page cache holding yesterday's HTML still lists the old stylesheet address. On WP Engine, where many Genesis sites live, the WordPress admin has a WP Engine menu with a Caching tab and a Clear All Caches button, and the User Portal can clear the page cache, network caches (its CDN, powered by Cloudflare) and the object cache separately. Check: view source logged out and confirm the new ver= number appears.
5. The optimizer serves its own copy
Caching plugins that combine and minify CSS write a new file with their own name. Your stylesheet's version matters to that bundle only when the plugin rebuilds it. Check: if the page loads a combined file instead of style.css, clear the plugin's cache before anything else.
Making a stylesheet edit reach every visitor
- 1
Confirm the file that loads
In DevTools, open the Sources or Network panel and check that the stylesheet comes from your child theme's folder. Edit that file, nothing else.
- 2
Raise the version
Increase the Version line in the style.css header, for example from 3.4.3 to 3.4.4. If functions.php defines CHILD_THEME_VERSION, raise that too, because older child themes pass it to every asset.
- 3
Clear the optimizer
Purge the caching plugin's page cache and its combined CSS files so the next build includes your change.
- 4
Clear the host cache
On WP Engine use Clear All Caches; on other managed hosts, use the purge button in their panel or plugin.
- 5
Purge the CDN
If a CDN sits in front of the site, purge it last, after the origin is already serving fresh files.
- 6
Test as a stranger
Open a private window, view source, and confirm the new ver= number. Then check the change on a phone that has visited the site before.
- 7
Look for crossed-out rules
If the new file loads and the change still does not show, inspect the element and find the Customizer or Additional CSS rule that outranks yours.
A cache-busting routine your next developer will thank you for
On staging, define SCRIPT_DEBUG as true in wp-config.php. Genesis then versions theme assets with the current time, so every reload fetches fresh CSS and you stop wondering whether you are looking at a cached copy. Turn it off before anything goes live: it defeats browser caching for those files, and it also makes WordPress load the unminified versions of its own scripts and styles.
On production, make the version bump part of every deploy. Keep the child theme in version control and raise the Version line in the same commit as the CSS change, so nobody can ship one without the other. Some developers go further and set the version from the stylesheet's last-modified time with PHP's filemtime(), which removes the human step; it works, as long as everyone knows the theme does it. And keep a short purge order written down: plugin, host, CDN. Our hosting and maintenance plans include small edits like these, done in that order.
Six copies of a stylesheet is a stack problem
None of this is hard. It is just a lot of steps for one color. A version number in a file header, a constant that might also exist, inline CSS from the Customizer, an optimizer's bundle, a host cache and a CDN, each holding its own copy. Owners learn the ritual or wait for someone who knows it.
Six copies of one stylesheet, and the visitor gets whichever is oldest.
A Next.js production build writes CSS to files whose names change whenever their contents change, and deploys them with the pages that use them, so a stale stylesheet has nowhere to hide. That build costs more up front and needs a developer for design changes. Genesis vs Next.js lays out the trade, Genesis to Next.js covers the move, and Athena CMS is where owners edit content afterward.
Plenty of Genesis sites are worth keeping; our Genesis review says which. The Genesis speed guide covers the child theme's fonts and scripts, and the sibling fixes for layouts, menus and PHP errors sit in the troubleshooting section. If you want it handled, our theme troubleshooting service does it on staging, and the theme repair team takes the bigger breaks.
Questions people ask before they call
Always the child theme. Since Genesis 3.0.0 the framework's own style.css carries no styles, and StudioPress's docs say child themes should supply all their CSS. Anything you change inside the genesis folder also disappears at the next framework update. If you have no child theme at all, create one before editing anything.
Your browser fetched the new file after a hard refresh; theirs still holds the old one under the same address. Raise the Version line in style.css, or CHILD_THEME_VERSION in older child themes, so the address changes. Then purge your caching plugin, the host's page cache and any CDN so they hand out HTML that points to the new address.
If it exists, it is a define() line near the top of the child theme's functions.php. Child themes built before Genesis 3.0 used it; newer ones usually rely on genesis_get_theme_version(), which reads the Version line in style.css. Search functions.php for the constant. If it is there, raise it along with the header so both agree.
No. The framework update changes files in the genesis folder, and your styles live in the child theme. The child theme's version number stays where it was, so cached copies of your stylesheet stay valid as far as browsers are concerned. Edit and version the child theme itself, then purge caches.
It works, but it is the riskiest way. A typo in functions.php made through the built-in theme file editor can take the site down with no undo, and there is no record of what changed. Edit a copy on staging, keep the theme in version control, and upload the tested files. Our theme customization team works that way.
Keep reading
- Styles gone missingWordPress Theme CSS Not Loading: Why Your Page Shows Up UnstyledWordPress theme CSS not loading and the page looks like plain text? Trace the failed stylesheet to an optimizer bundle, generated CSS file, CDN or HTTPS.
- Genesis speed guideGenesis Framework Speed: Tuning the Child Theme, the Scripts and the PHP UnderneathGenesis framework speed, fixed in order: the child theme's fonts and jQuery menus, the Header Scripts box, the PHP version, and what the framework cannot fix.
- Genesis menu triageGenesis Mobile Menu Not Working: Find Out Which Script Owns the ButtonGenesis mobile menu not working? Check the framework's responsive menu config, old jQuery child theme scripts, breakpoints and optimizers, in that order.
- Framework review, 2026Genesis Framework Review (2026): Is It Still Worth Building On?Genesis Framework review for 2026: who owns it, what Genesis Pro costs, how it handles speed, WooCommerce and builders, and who should still build on it.
- For Genesis site ownersGenesis Framework vs Next.js: A Steady Old Foundation, Weighed Against a RebuildGenesis Framework vs Next.js for small business sites: what patch-only releases, Genesis Pro at $360 a year and aging child themes mean for you.
- Genesis migration guideGenesis to Next.js: Moving a Framework Site and Every Post It CarriesMigrate a Genesis Framework site to Next.js: child theme hooks, Genesis Blocks, widget home pages, In-Post SEO and years of posts, with rankings intact.
- Everything in WordPress TroubleshootingSee the section
Make your Genesis style changes actually show
Tell us what you changed and where it fails to appear. We find the stale copy, fix the versioning so it stops recurring, and quote any larger work before we start.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.