WordPress site not updating or showing old content

How to fix a WordPress site that is not showing recent changes, covering browser cache, page caching plugins, server-side caching, CDN cache and object caching.

WordPress site not updating or showing old content

You've edited a page in WordPress, clicked save, refreshed the site and nothing has changed. The old version is still showing. This is one of the most common WordPress frustrations, and it catches almost everyone at some point.

The good news is that your changes are almost certainly saved correctly. If you go back into the editor, you'll probably see the updated content right there. The problem isn't that WordPress didn't save your work. The problem is that something between WordPress and your browser is serving a stored copy of the old page instead of asking WordPress to generate a fresh one.

That "something" is caching, and understanding how it works will save you a lot of confusion, not just now but every time you make changes in the future.

What caching is and why it causes this problem

Caching is a performance feature that stores copies of your pages so they can be served quickly without WordPress having to rebuild them from scratch on every visit. Without caching, every page view requires WordPress to run PHP code, query the database, assemble the page and send it to the visitor. Caching skips most of that work by saving the finished result and reusing it.

This is genuinely important for performance. A cached site loads faster, uses fewer server resources and handles more visitors. You don't want to disable caching to fix this problem. You just need to clear the stored copies so that the next visitor (including you) gets a freshly built page that includes your changes.

The reason this gets confusing is that most WordPress sites have several layers of caching, and any one of them can be serving you old content. Clearing one layer while another still holds a stale copy means the old content persists. The approach below works through each layer so you can clear them all.

Start with your browser

The first layer to check is the one closest to you: your own browser. Every browser stores copies of recently visited pages and assets (images, CSS, JavaScript) to speed up repeat visits. When you refresh a page, your browser may serve its stored copy rather than requesting a new one from the server.

Try a hard refresh first: Ctrl+Shift+R on Windows and Linux or Cmd+Shift+R on Mac. This tells the browser to bypass its cache and request a fresh copy directly from the server.

If the hard refresh doesn't work, open the page in an incognito or private browsing window. Incognito windows start with an empty cache and no stored cookies, so they give you a clean view of what the server is actually sending.

If the updated content appears in incognito but not in your regular browser, the problem is your browser cache. Clear your browser's cache for the specific domain (usually available in your browser's settings under privacy or browsing data) and the issue is resolved.

If the old content appears in incognito as well, the stale version is being served by a cache on your server or CDN, not by your browser. Continue with the steps below.

Clear your page cache

If your site uses a caching plugin, it stores fully rendered HTML copies of your pages on the server. When a visitor requests a page, the plugin serves the stored copy directly instead of letting WordPress rebuild the page from the database. This is the most common type of caching and the most common reason changes don't appear.

Most caching plugins are designed to automatically clear the cache for a page when you update it. However, this automatic purging doesn't always work perfectly. It can miss changes to widgets, menus, sidebars, header and footer content, theme settings, custom fields and content generated by other plugins. In these cases, the cached version of the page doesn't include your changes because the caching plugin didn't recognise that anything had changed.

Go to your caching plugin's settings and look for a "Clear cache," "Purge all" or "Delete cache" button. This removes all stored copies and forces the plugin to generate fresh versions on the next visit. After purging, refresh the page you were editing and check whether the updated content appears.

If you're not sure whether your site has a caching plugin installed, check Plugins → Installed Plugins and look for any plugin with "cache" in its name or description. Some themes also include their own caching features, so check your theme's settings as well.

Clear server-side caching

Many hosting providers, particularly managed WordPress hosts, run their own caching layer on the server independently of any plugins you've installed. This means your site can have two levels of page caching: one from your plugin and another from your host.

Server-side caching sits between WordPress and the visitor, and it operates at a lower level than WordPress plugins. If your hosting provider's cache has a stale copy of a page, clearing your plugin cache won't help because the server's cache intercepts the request before it ever reaches WordPress.

Check your hosting control panel for a caching, performance or speed section. There's usually a button to purge the server-side cache. Some managed WordPress hosts also add a "Purge cache" option to the WordPress admin toolbar.

If you can't find a cache purging option in your control panel, contact your hosting provider and ask them to clear the server-side cache for you. It's also worth asking what type of server caching they use, as this will help you understand how it interacts with your caching plugin.

Clear your CDN cache

If your site uses a content delivery network, the CDN stores copies of your pages and static files on servers distributed around the world. When you update content on your origin server, the CDN's copies can remain stale until they either expire automatically or are manually purged.

Log into your CDN's dashboard and purge the cache for the specific URL that's showing old content, or purge the entire CDN cache if the problem affects multiple pages.

Most CDNs have cache expiry settings (sometimes called TTL, or "time to live") that control how long content is stored before the CDN checks the origin server for a newer version. If your TTL is set to several hours or days, changes will be slow to appear. Consider lowering the TTL if you update content frequently, though keep in mind that a lower TTL means more requests to your origin server, which can affect performance.

Clear object caching

Object caching is a more technical layer that stores the results of individual database queries in memory rather than caching entire pages. It's used to speed up database-heavy operations and is common on managed WordPress hosting plans.

If your hosting provider has enabled object caching, stale database query results can cause old content to appear even after you've cleared your page cache. This is because the page is being regenerated, but it's pulling old data from the object cache instead of querying the database fresh.

If your hosting control panel or WordPress admin toolbar has an option to flush or purge the object cache, try that. Some caching plugins also include object cache management in their settings.

If you're not sure whether your site uses object caching, don't worry about it. It's not something that's typically enabled by default on standard hosting plans. If you do have it, your hosting provider or caching plugin documentation will mention it.

Check for multiple active caching layers

The most confusing scenarios happen when multiple caching layers are active at the same time without you realising it. For example, you might have a caching plugin installed, server-side caching enabled by your host and a CDN all storing copies of the same pages independently.

When you clear one cache but the old content persists, it's usually because another layer still has a stale copy. The solution is to work through each layer systematically: browser first, then your caching plugin, then server-side cache, then CDN. Clear each one and test between each step to see when the fresh content appears.

If you discover that you have more than one caching plugin installed (which can happen accidentally, especially if your host pre-installs one and you install another), deactivate all but one. Running multiple caching plugins simultaneously can cause conflicts, unpredictable behaviour and make cache management much harder than it needs to be.

Make sure your changes were actually saved

Before spending too much time clearing caches, take a moment to confirm that your changes were actually saved to the database.

Go back to the WordPress editor and check that the content you entered is still there. If it isn't, the save may have failed due to a session timeout, a user permissions issue or a server error. WordPress usually displays a notice when saving fails, but these notifications can be missed if you navigated away from the editor quickly.

Also verify that you're editing the correct page. WordPress allows multiple pages with similar or identical titles, and it's easy to edit one page while viewing another. If your site uses a static front page, check which page is assigned as the homepage under Settings → Reading, as this may not be the page you expect.

If you're editing content that's managed by a plugin (such as a page builder, a custom fields plugin, a slider or a widget), the changes may be stored in a way that doesn't trigger WordPress's standard cache-clearing behaviour. Clear your caches manually after saving changes made through these tools.

Need help with persistent caching issues?

If your site keeps showing old content after clearing every cache you can find, or if you're not sure which caching layers are active on your site, my emergency WordPress support service can help identify the problem and configure your caching setup correctly.

Adam Greenough

Written by Adam Greenough

Freelance web developer with over 15 years of experience building and fixing WordPress sites. I work with businesses across the UK on everything from emergency support to full builds.

Need hands-on help?

I offer emergency WordPress support with a no-fix, no-fee guarantee.