Where OceanWP keeps your CSS
OceanWP CSS Not Updating? Follow Your Styles From the Customizer to the Browser
The Customizer preview shows navy buttons. The live site, seen by a customer on her phone, still shows teal. OceanWP almost certainly saved your choice. What failed is the delivery, and OceanWP has two delivery routes, picked by a setting most owners never knowingly touched.
October 15, 2026 · 9 min read
The short answer
When OceanWP CSS is not updating, open Customizer > Performance and check Styling Options Location. With WP Head, your styles print inside every page, so a page cache serves the old ones. With Custom File, they live in uploads/oceanwp/custom-style.css, which Ocean Extra rewrites and whose address never changes, so browsers and CDNs keep the old copy.
On this page
- What stale OceanWP styling looks like from the outside
- Styling Options Location decides which cache you fight
- Six suspects on an OceanWP site, most likely first
- Getting the new styles in front of visitors
- WP Head or Custom File: pick the one you can maintain
- Habits that make the next color change show up first time
- Four caches and a companion plugin for one button color
What stale OceanWP styling looks like from the outside
Before you purge anything, write down what you actually see. Each pattern below points at a different layer of the stack, and the cheapest diagnosis is the one you make before touching a setting. Check twice: once logged in, once in a private window, because nearly every caching tool skips logged-in users and shows them the fresh version.
- The Customizer preview is right and the published page is wrong. On OceanWP this proves less than it seems: inside the Customizer, the theme always prints your CSS straight into the page, even when the live site reads it from a file.
- You see the change when logged in. Visitors do not.
- Edits in the Additional CSS box are ignored entirely, sometimes for weeks.
- Changes show up only after you happen to open the dashboard, then visitors catch up hours later.
- Theme colors updated, but sections built in Elementor kept the old look.
Styling Options Location decides which cache you fight
Under Customizer > Performance, OceanWP's first setting is Styling Options Location, with two choices: WP Head (the default) and Custom File. The panel text talks about the Custom CSS field, but the theme's code in version 4.2.7 handles all of your Customizer styling the same way: colors, typography, header and shop styles, plus whatever sits in the Additional CSS box. With Ocean Extra active, that box moves into a Customizer section called Custom CSS/JS.
| Where it is delivered | What holds the stale version | |
|---|---|---|
| Customizer styling, WP Head | A style block marked OceanWP CSS near the end of every page's head | Page cache, host cache, CDN copy of the HTML |
| Customizer styling, Custom File | wp-content/uploads/oceanwp/custom-style.css, loaded as the oceanwp-custom stylesheet | Browser and CDN caches; a frozen file if Ocean Extra is off |
| Additional CSS box | Printed in the head, or folded into custom-style.css under Custom File | Same as the row for your chosen location |
| Theme stylesheet | style.min.css in the theme folder, versioned with the theme release | A CSS optimizer's combined bundle |
| Elementor sections | Elementor's own generated CSS files | Elementor's stored files until regenerated |
| Child theme style.css | Your own stylesheet, enqueued by the child theme | Every cache along the way, unless you raise its version |
The second row is where OceanWP sites get stuck. The theme loads custom-style.css without a version of its own, so WordPress stamps the address with the WordPress version number. Your design can change ten times and the address stays identical until WordPress itself updates. A CDN or browser that has the file has no reason to fetch it again. For how the same delivery problem plays out on other themes, read WordPress theme CSS not loading.
Six suspects on an OceanWP site, most likely first
1. A cached page still carrying the old OceanWP CSS block
On the default WP Head setting, the styles ride inside the HTML. In a private window, press Ctrl+U on the live page and search for OceanWP CSS, then for the hex code you just chose. Old hex, new database: a page cache, host cache or CDN is handing out a copy made before you published, and each one needs its own purge.
2. custom-style.css cached under an address that never changes
On Custom File, open wp-content/uploads/oceanwp/custom-style.css directly, adding ?check=1 to the end so you bypass ordinary caches. If the fresh request shows the new value and the page still looks old, the browser or CDN is serving its stored copy. Purge that exact address at the CDN, then reload with the cache disabled in DevTools.
3. Ocean Extra switched off, so nobody rewrites the file
The theme reads the file, but Ocean Extra writes it, on any dashboard page load or any front-end view by a logged-in user with the toolbar showing. Deactivate Ocean Extra and the theme keeps loading the last file written, prints nothing inline, and every later Customizer change goes nowhere. Check the Plugins screen, and compare the file's modified date in your host's file manager with your last publish.
4. An uploads folder the server will not let it write
After a migration or a permissions change, the oceanwp folder in uploads can become read-only. The old file stays readable and keeps loading while every rewrite fails silently. If the file's date never moves after you visit the dashboard, switch Styling Options Location to WP Head for now and ask your host to fix ownership of the uploads folder. Deleting the file is not a clean shortcut: OceanWP then prints the Customizer styling in the head, but the Additional CSS box drops out.
5. A CSS optimizer serving its own copy
Combine, minify and unused CSS features in caching plugins write their own files and often absorb both the inline block and custom-style.css. If the source shows stylesheets with hashed names in a cache folder where you expected oceanwp-custom, clear the optimizer's files, not just its page cache, or switch combining off for one test.
6. Nothing stale at all: a more specific rule wins
Right-click the element and inspect it. If the winning rule comes from an Elementor widget, a per-page setting or a child theme selector, the Customizer change arrived and lost. Elementor's own files go stale too; use the regenerate tool under Elementor > Tools, as covered in our OceanWP and Elementor guide.
Getting the new styles in front of visitors
- 1
Reopen the Customizer and read the value back
If the setting reverted or Publish kept spinning, this is a saving problem, not a caching one. Start with OceanWP Customizer not loading instead.
- 2
Note the delivery route
Check Customizer > Performance > Styling Options Location. WP Head means you chase page caches. Custom File means you chase the file and its address.
- 3
Bring Ocean Extra into step
Confirm it is active and current alongside the theme. A theme and companion on different releases cause their own trouble, described in OceanWP update broke the site.
- 4
Let Ocean Extra rewrite the file
With Custom File selected, load any dashboard page while logged in, then open custom-style.css with a query string and confirm the new value is inside.
- 5
Purge from the origin outward
Clear the optimizer's generated files, then the caching plugin, then the host's cache, then the CDN, naming the custom-style.css address in the CDN purge if it offers single-file purges.
- 6
Regenerate builder CSS where needed
If the stale rule lives in an Elementor section, regenerate Elementor's files, then purge once more.
- 7
Check the way a stranger would
Private window, logged out, on a phone and a desktop. Some caches keep a separate mobile copy of every page.
WP Head or Custom File: pick the one you can maintain
Our OceanWP speed guide suggests Custom File, because a separate stylesheet can be cached by browsers instead of travelling inside every page. That advice stands, with a condition: someone has to purge the CDN after design changes, since the file's address will not change on its own. If your team tweaks colors every week and nobody owns the CDN, WP Head with purge-on-save in the caching plugin is the setting that fails less often.
Both settings depend on Ocean Extra for parts of the job, so treat it as part of the theme rather than an optional plugin. The OceanWP review explains how the theme, Ocean Extra, the per-page settings box and your builder divide the work.
Habits that make the next color change show up first time
- Pick one page cache and retire the other. Hosts with built-in caching rarely need a second plugin doing the same job.
- Make sure that cache clears itself when the Customizer publishes, and test that it really does.
- Never deactivate Ocean Extra to test something while Custom File is selected, or switch to WP Head first.
- Keep a one-line note of which plugin rewrites CSS, so the next person does not add a second.
- Try design changes on staging, publish them live, then run the purge sequence from the steps above.
This is routine work under our hosting and maintenance plans: updates tested before they go live, caching configured on purpose, and Ocean Extra kept in step with the theme. If you only need the knot untied once, WordPress theme troubleshooting does that and documents it. Related OceanWP faults are in the troubleshooting section: fonts that will not load, a header that disappeared and a shop layout gone wrong. Repairs beyond styling are collected in the OceanWP repair hub.
Four caches and a companion plugin for one button color
None of this is OceanWP misbehaving. The theme writes styles, a companion plugin writes files, a cache plugin keeps pages, the host keeps more pages and the CDN keeps everything. Each layer is reasonable on its own. Stacked, they make a button color into a chore with an order of operations. For a small brochure site, a tidy cache chain and a written purge order are still the honest answer.
When the chore is weekly, look at the alternative. A Next.js build fingerprints each stylesheet, so the file name itself changes with every edit and no cache can mistake old for new. Owners edit text and images in Athena CMS, with a preview that matches what visitors will get. OceanWP vs Next.js weighs both stacks fairly, and moving OceanWP to Next.js shows how content and URLs come across.
Questions people ask before they call
When Styling Options Location is set to Custom File, the CSS goes into wp-content/uploads/oceanwp/custom-style.css. Ocean Extra writes it, and the theme loads it as a stylesheet with the handle oceanwp-custom. If the file is missing, OceanWP prints the Customizer styling in the page head instead, but in version 4.2.7 the Additional CSS box is then left out, so keep the file healthy or switch to WP Head.
Inside the Customizer, OceanWP prints your CSS directly into the preview page, whichever location you chose. The live site uses the cached page or the cached custom-style.css instead. A correct preview only proves the setting saved. Check the live page logged out, and see CSS changes not showing on a website for the cache layers in general.
In practice, yes. The theme decides whether to load custom-style.css, but the code that writes the file lives in Ocean Extra. Without it, the file is never refreshed, and OceanWP keeps loading whatever version was written last. If you must deactivate Ocean Extra, switch Styling Options Location back to WP Head first.
Ocean Extra moves WordPress's Additional CSS control into a Customizer section called Custom CSS/JS, which also holds a Custom JS field. The CSS behaves like the rest of your Customizer styling: printed in the head on WP Head, or written into custom-style.css on Custom File, with the same caching rules.
Only the layers that hold your change. On WP Head, a page cache with purge-on-save usually handles it. On Custom File, the CDN needs purging because the file's address does not change. If that sounds like too many moving parts, our theme troubleshooting service can set the chain up once.
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.
- OceanWP performance guideOceanWP Speed: A Light Theme, and Everything You Stacked on ItOceanWP speed, setting by setting: the Customizer Performance panel, local Google Fonts, Ocean Extra components, extensions and the Combine JS menu lesson.
- Missing OceanWP headerOceanWP Header Not Showing? Find the Switch That Hid ItOceanWP header not showing? Check the page's OceanWP Settings, the Landing Page template, Custom Header from My Library and Elementor Pro conditions.
- Free theme, honest auditOceanWP Review (2026): What the Free Theme Does Well, and What You End Up Paying ForOceanWP review for 2026: who runs it now, what the free theme covers, Pro Bundle tiers, WooCommerce features, the mobile-menu bug and who should pick it.
- The free theme, priced outOceanWP vs Next.js: When a Free Theme Stops Being the Cheap OptionOceanWP vs Next.js compared: the free theme, Ocean Extra, Pro Bundle tiers, the SiteGround mobile-menu bug and what a move to Next.js really involves.
- Moving off OceanWPOceanWP to Next.js: The Theme Is Light, the Extras Are NotOceanWP to Next.js migration: what Ocean Extra, the metabox, My Library, sticky headers, popups and your page builder leave behind, and how each piece moves.
- Everything in WordPress TroubleshootingSee the section
Make your OceanWP changes show up on the first try
Send us the page and the change that will not stick. We trace it from Customizer to browser, fix whichever layer is hoarding the old version, and hand you a purge routine that fits on a sticky note.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.