Website Issues

You Edited the Page and Nothing Changed: The 6 Caches Between You and Your Visitor

You updated the page, saved it, and the live site looks exactly as it did before. Six separate caches sit between your editor and your visitor, and any one of them can be holding the old copy. Here is how to find which.

Key takeaways

  • Your WordPress changes not showing is almost always a caching problem, not a lost edit.
  • Test in a private window first. If the new page appears, the problem was your browser or your login session.
  • Clear caches from the visitor end backwards: browser, then CDN, then page cache, then server.
  • Elementor and other builders keep their own generated CSS files that a normal cache purge does not touch.

WordPress changes not showing on the live site is nearly always a delivery problem rather than a lost edit. Your text saved. What has gone wrong is everything that happens after the save: between the database where that text now sits and the screen where your visitor is looking, there can be six separate caches, and any one of them can still be handing out yesterday’s copy.

Most advice on this stops at “clear your cache”, which is why so many people clear the one cache they know about, see no change, and conclude the site is broken. This is the full chain, in the order it runs, with a way to work out which layer is holding you up.

Where your edit can get stuck on the way to a visitorDATABASEyour edit lands here1 OBJECTRedis / Memcached2 OPCACHEcompiled PHP3 PAGELiteSpeed / WP Rocket4 SERVERhost-level cache5 CDNCloudflare edge6 BROWSERwhat you seeCLEAR IN THIS ORDER6 first, then 5, then 3 and 4Any one of the six can still be serving the old page
Six places your edit can get stuck. Clearing one does nothing if the problem is further along the chain.

First, confirm the edit actually saved

Two minutes here saves an hour of cache hunting.

Open the page in the WordPress editor again, from a fresh browser tab. If your text is there, it saved. If it is not, the problem is not caching at all and the rest of this article does not apply to you.

Three things commonly stop a save from landing:

  • Your session expired mid-editWordPress logs you out after a period of inactivity. The editor stays open and looks normal, and the save silently fails. Look for a login prompt behind the editor window.
  • You edited a different pageDuplicate drafts, a staging copy, or a page with a near-identical name. Check the URL in the address bar against the URL you are testing.
  • You edited the wrong elementA template part, a reusable block, or a global widget that appears on some pages and not others. The change is live, just not where you are looking.
Do this first

Open the live page in a private or incognito window. This is the single most useful test in this article. A private window carries no cookies, no browser cache and no login, so what you see there is very close to what a real visitor sees.

The two tests that narrow it down in a minute

Rather than clearing everything and hoping, these two checks tell you roughly where the stale copy is coming from.

Two tests that tell you which layer is holding the old pageTEST 1: open the page in a private windowno cookies, no browser cache, logged outTEST 2: add ?v=123 to the URLmost caches treat it as a brand new pageNEW PAGE SHOWSit was your browseror your login sessionOLD PAGE SHOWSthe cache is on theserver or the CDNNEW PAGE SHOWSpage cache or CDNclear those twoOLD PAGE SHOWSobject cache, OPcacheor it never saved
A private window rules out your browser and your login. A query string rules out most server-side caching.

The second test works because caches key their stored copies by the full URL. Adding ?v=123 to the end makes the address unfamiliar, so most caches treat it as a page they have never seen and fetch a fresh copy from WordPress.

If the new content appears with the query string but not without it, something between WordPress and the visitor is storing the old page. If the old content appears even with the query string, the problem sits deeper: an object cache, an OPcache holding compiled PHP, or a save that did not land.

Layer 1: your browser

The most common cause and the easiest to rule out. Browsers hold on to HTML, CSS, images and JavaScript so pages load faster on a second visit.

A normal refresh often reuses the cached files. A hard refresh forces a fresh request:

BrowserWindowsMac
Chrome, Edge, BraveCtrl + Shift + RCmd + Shift + R
FirefoxCtrl + F5Cmd + Shift + R
SafariCmd + Option + E, then reload

Mobile browsers are the usual culprit when a site looks updated on a laptop and old on a phone. Nobody clears their phone cache. On Chrome for Android, open Settings, then Privacy and security, then Delete browsing data, and pick cached images and files.

Layer 2: your login session

This one causes more confusion than any other, because the site appears correct to the person who made the change and wrong to everyone else.

Caching plugins usually bypass the cache for logged-in users on purpose, so editors always see live content. Your visitors are served the stored copy. If the page looks right when you are logged in and wrong in a private window, you have found the problem, and the fix is further down the chain rather than in your browser.

Layer 3: the page cache plugin

This is the layer most people mean when they say “the cache”. It stores a finished HTML copy of each page so WordPress does not have to rebuild it for every visitor.

Most plugins clear the relevant page automatically when you update a post. That automatic purge fails often enough to be worth checking by hand.

PluginWhere to purgeWorth knowing
LiteSpeed CacheAdmin bar, then LiteSpeed Cache, then Purge AllCommon on Indian hosting. Also has a separate CSS and JS cache under Page Optimization that needs its own purge.
WP RocketAdmin bar, then Clear cacheAlso has Used CSS and preload caches. Use Clear and preload cache after a design change.
W3 Total CachePerformance, then Purge All CachesHas several sub-caches. The single Purge All is safer than clearing them one at a time.
WP Super CacheSettings, then WP Super Cache, then Delete CacheSimple, with fewer places for a stale copy to hide.
AutoptimizeAdmin bar, then Autoptimize, then Delete CacheNot a page cache. It combines CSS and JS, so it holds stale styling rather than stale content.
The mistake we see most

Two page caching plugins installed at once. It usually happens when a host enables LiteSpeed by default and someone later installs WP Rocket. Each one caches the other’s output, purging one leaves the other stale, and pages stop updating in ways that look random. Pick one and deactivate the other.

What to do when the purge button does nothing

Sometimes the purge appears to run and the page still does not change. Three causes account for most of it.

The plugin may lack write access to its own cache folder. Check wp-content/cache exists and is writable. If the folder is missing or set to read-only after a migration, the plugin cannot delete what it cannot reach, and it will not tell you.

The purge may be running on a different site. If you manage several WordPress installs and have them open in separate tabs, it is easy to clear the cache on one while testing another. Check the site name in the admin bar before clicking.

A cache preload may be rebuilding the page immediately from a stale source. WP Rocket and LiteSpeed both offer preloading, which crawls your site after a purge to warm the cache back up. If the preload starts before your change has propagated, it stores the old version again within seconds. Turn preloading off while diagnosing.

Layer 4: your host’s server cache

Many Indian hosting plans run caching at the server level, above anything installed in WordPress. Your plugin has no ability to clear it and often no awareness it exists.

You will find it under names such as Object Cache, LiteSpeed Cache, Varnish or NGINX FastCGI Cache in the hosting panel. Hostinger, SiteGround, Cloudways, Rocket.net and most managed WordPress hosts include some form of it.

If clearing every plugin cache changes nothing and a query string does show the new page, this is very likely where the old copy lives. Open a support ticket and ask them to purge the server cache for your domain. Most will do it within minutes.

Layer 5: your CDN

A content delivery network keeps copies of your pages in data centres around the world. Cloudflare is the one most small businesses use, often without remembering it was ever set up.

  • Purge everythingCloudflare dashboard, pick the domain, Caching, then Configuration, then Purge Everything. Fine for a small site.
  • Purge a single URLSame screen, Custom Purge, paste the full address including https. Kinder to your load times than purging the lot.
  • Turn on Development ModeUnder Caching, this bypasses the CDN cache for three hours. Switch it on while you work, and remember it expires on its own.
  • Check APO if you use itAutomatic Platform Optimization caches full HTML at the edge. It needs the Cloudflare WordPress plugin installed and connected for purges to reach it.
How to tell whether a CDN is in the way

Open your browser developer tools, go to the Network tab, reload the page and click the first request. Look at the response headers. A cf-cache-status of HIT means Cloudflare served a stored copy. A value of MISS or DYNAMIC means the request reached your server, so the stale page is coming from somewhere else.

Layer 6: builder and theme generated files

Elementor, Divi, Beaver Builder and most modern themes do not put your styling inside the page. They write it into generated CSS files and link to them. Clearing a page cache does not rebuild those files, so your layout change stays invisible while your text change appears correctly.

In Elementor, go to Elementor, then Tools, then Regenerate CSS and Data. Do that first, then clear the page cache, in that order. Reversing the order caches the old CSS again.

The same applies to Divi’s static CSS file generation and to theme customiser changes, which are often written to a cached stylesheet rather than applied live.

Reading the response headers, which settles most arguments

Developer tools tell you in seconds what an hour of guessing will not. Press F12, open the Network tab, reload the page, and click the very first request in the list. The Response Headers panel names the culprit.

Header you seeWhat it meansWhere to purge
cf-cache-status: HITCloudflare served a stored copy. Your server was never asked.Cloudflare
cf-cache-status: DYNAMICCloudflare passed the request through. The stale copy is elsewhere.Keep looking
x-litespeed-cache: hitLiteSpeed served it from cache, at server or plugin level.LiteSpeed Cache
x-cache: HITVarnish or a host proxy served a stored copy.Ask your host
age: 84000The stored copy is that many seconds old. A large number means nothing has purged in a long time.Whichever cache set it
No cache headers at allThe request reached WordPress. The problem is the object cache, OPcache, or the edit itself.Host panel

Two minutes with this table will usually end a debate that has been running for a day.

The order to clear them in

Working from the visitor backwards means you stop as soon as the page is correct, rather than clearing everything and learning nothing.

  • Regenerate builder CSSOnly if a layout or styling change is missing. Skip it for text edits.
  • Purge the page cache pluginPurge All rather than a single page, at least while diagnosing.
  • Purge the CDNCloudflare or whatever sits in front of the site.
  • Ask the host to clear the server cacheOnly if the three above did not do it.
  • Hard refresh your own browserThen check again in a private window, which is the only view that matters.

Plugins that help, and one that helps you diagnose

You do not need more plugins to fix this. One is genuinely useful while you are working out what is happening.

  • Query Monitor, freeAdds a menu to the admin bar showing which caches are active, whether an object cache is running, how long the page took to build and which hooks fired. When a site will not update, this is the fastest way to see what is actually in play.
  • Your host’s own cache pluginIf you are on LiteSpeed hosting, use LiteSpeed Cache rather than a third-party plugin. It can clear the server cache, which an unrelated plugin cannot.
  • Cloudflare’s official pluginOnly if you use Cloudflare. It lets WordPress purge the edge cache automatically when you update a post, which removes this whole problem for most edits.
Worth remembering

Caching is not the enemy. It is the reason your site loads quickly for real customers. The goal is not to switch it off, it is to know which layers exist on your site so you can clear the right one in ten seconds instead of guessing for an hour.

When the page still will not update

If you have worked through all six layers and the old content is still showing, the remaining causes are less common but easy to check.

  • An object cache such as Redis or Memcached is running and holding the database query result. Flush it from your hosting panel, or from Query Monitor if it exposes the option.
  • OPcache is holding compiled PHP. This affects code changes rather than content, and usually needs a PHP restart from the hosting panel.
  • You are editing a staging site and viewing the live one, or the reverse. Compare the two domains carefully.
  • A security or optimisation service such as Sucuri or a reverse proxy sits in front of the site with its own cache.
  • DNS still points at old hosting after a migration, so you are editing one server and viewing another. This one is rare and deeply confusing when it happens.

That last case is worth ruling out early after any hosting change. If two people in the same office see different versions of the page, DNS is a likely explanation.

Clear in this order, from the visitor backwards01Regenerate builder CSSElementor, Tools, Regenerate CSS and Data. Only for layout changes02Purge the page cache pluginPurge All, not a single page, while diagnosing03Purge the CDNCloudflare, Caching, Configuration, Purge Everything04Ask the host to clear server cacheOnly if the three above did not do it05Hard refresh, then check in a private windowThe only view that matches what a customer seesStop as soon as the page is correct. You have found your layer.
The order that matters. Clearing layer three first tells you nothing if layer five is still serving the old copy.

Stopping it becoming a weekly annoyance

Once you know your own stack, this stops being a mystery. Write down the answers to three questions and keep them with your site notes:

  • Which page cache plugin is active, and does the host also cache at server level
  • Is Cloudflare or another CDN in front of the site, and is its WordPress plugin connected
  • Does the site use a page builder that generates its own CSS files

Three lines of documentation turn a recurring hour of frustration into a thirty second fix. Keeping that record current for every site we look after is part of ongoing website maintenance, and it is the reason a cache question rarely takes more than a few minutes to answer. If your site is new or was built by someone who has since moved on, our development team can map the stack and document it once, properly.

Cache habitsWORTH DOINGCAUSES THE PROBLEMTest in a private window firstWrite down your cache stack onceTurn preloading off while diagnosingConnect the Cloudflare WordPress pluginCheck response headers before guessingRunning two page cache pluginsClearing one layer and giving upTesting while logged in as adminAssuming mobile shows the same as desktopEditing again before the purge finishes
Two habits separate a thirty second fix from an afternoon of guessing.

Frequently asked questions

Why do my WordPress changes show for me but not for other people?

You are logged in, and most caching plugins deliberately bypass the cache for logged-in users so editors always see current content. Visitors get the cached copy. Open the page in a private window to see what everyone else sees. If the old version appears there, the cache is on the server or the CDN, not in your browser.

I cleared the cache and it still shows the old page. What now?

You almost certainly cleared one layer out of several. Work backwards from the visitor: hard refresh the browser, purge the CDN such as Cloudflare, purge the page cache plugin, then ask your host to clear their server cache. If your site uses a page builder, regenerate its CSS files as well.

How do I clear the Cloudflare cache?

Log in to Cloudflare, pick the domain, open Caching, then Configuration, then Purge Everything. For a single page use Custom Purge and paste the full URL. Development Mode under the same section bypasses the cache for three hours, which is useful while you are actively editing.

Why is my site updating on desktop but not on mobile?

Almost always the mobile browser cache, which people clear far less often. Some caching plugins also store a separate mobile copy of every page, so purging the desktop version leaves the mobile one untouched. Check for a separate mobile cache option in your plugin settings.

Do I need a caching plugin at all?

If your host already runs server-level caching, such as LiteSpeed on many Indian hosting plans, a second page cache plugin adds little and can conflict. Ask your host what they run before installing anything. Running two page caches together is a common cause of pages that will not update.

Why do my Elementor changes not show after I clear the cache?

Elementor writes the CSS for each page into a generated file rather than into the page itself. A page cache purge does not rebuild those files. Go to Elementor, then Tools, then Regenerate CSS and Data, then clear your page cache again in that order.

Not sure where your site stands?

We will look at it and tell you honestly what is working and what is wasted. No pitch.

Get a Free Audit

Related Articles

3 articles
SEO

Your Google Rankings Dropped: Working Through the Causes in Order

Rankings fell and nobody can say why. Most people start by blaming an algorithm update, which is the...

· 11 min read Read →
Website Issues

You Edited the Page and Nothing Changed: The 6 Caches Between You and Your Visitor

You updated the page, saved it, and the live site looks exactly as it did before. Six separate...

· 12 min read Read →
Google & Meta Ads

Your Meta Ads Is Approved But Not Delivering: What Is Actually Happening

Approved and delivering are two different states, and Meta does a poor job of explaining the gap. Here...

· 11 min read Read →

Give Me the Latest Articles!

One email a month. What is actually working right now in SEO, paid ads, and business growth - straight from our live client work. No filler.


By subscribing you agree to our Privacy Policy and consent to us using your contact data for newsletter purposes.

Free discovery call

Want These Results for Your Business?

Our team handles SEO, paid ads, and website work for 20+ clients across India.

  • Google Partner
  • HubSpot Certified
  • 25+ years combined experience
10x Traffic growth in 12 months 100+ Keywords ranking in paid search

No pitch - just an honest conversation about what you are trying to do.