Understanding Browser and Application Caching

When you update files on your server but your site still looks the same, the culprit is almost always caching, not a problem with your server or your edits. This article explains what caching is, how to confirm your changes are actually live, and what to do when a hard refresh isn't enough.

How Caching Works

Caching is a feature built into every modern browser and most web applications. When a visitor loads your site, their browser saves a local copy of your images, stylesheets, scripts, and other files. On their next visit, the browser loads those saved copies instead of re-downloading everything from your server. This makes your site faster for visitors, reduces bandwidth usage, and lowers the load on your server.

The trade-off is that when you update a resource, browsers may keep serving the old cached version until that copy expires. The amount of time a cached file is kept before the browser checks for a fresh copy is called its time-to-live (TTL), which is set by a Cache-Control response header sent by your server or application.

Caching is expected behavior, your server is doing its job, and so is the browser. You haven't done anything wrong.

Before You Begin

  • Access to your File Manager or FTP client. You'll need this to confirm your updated files are actually on the server.
  • A browser with a private or incognito window. This is the quickest way to bypass your local browser cache for testing.

Step 1: Try a Hard Refresh First

A hard refresh forces your browser to re-download the page instead of loading it from cache.

  1. On Windows, press Ctrl + F5.
  2. On Mac, press Cmd + Shift + R.
  3. If the page still looks the same, open a private or incognito window and navigate to your site. A private window starts with a completely empty cache, making it a reliable test for what a first-time visitor would see.

Tip: If your site looks correct in incognito but not in your regular browser, your browser's cache is the issue. Proceed to Step 3 to clear it fully.

Step 2: Confirm Your Files Are Updated on the Server

Before troubleshooting caching further, verify that your edited files are actually live on the server.

  1. Log in to cPanel and open File Manager, or connect via your FTP client.
  2. Navigate to the directory where your updated files are stored.
  3. Check the Last Modified timestamp on the file. If it reflects the time of your most recent upload or edit, your changes are on the server.

Note: Loading an asset URL directly in your browser (for example, navigating to yoursite.com/images/banner.jpg) is not a reliable test on its own — that URL can also be cached. To verify you're seeing the fresh copy, open the URL in an incognito window or add a cache-busting query string to the URL (for example, yoursite.com/images/banner.jpg?v=2). Your browser will treat the modified URL as a new resource and fetch it fresh.

Step 3: Understand Why Some Updates Appear Instantly and Others Don't

Different types of files are cached for different lengths of time, which is why you might see some changes appear immediately while others seem stuck. Here's what determines that behavior:

File Type / ScenarioTypical Cache Behavior
Static assets (images, CSS, JS, fonts, PDFs)Long TTL — cached aggressively because they rarely change
HTML pages with dynamic contentShort TTL or no-cache — often reloaded on each visit
Pages requiring login or personalizationUsually not cached at all
Versioned URLs (style.css?v=2)Treated as a new resource — always fetched fresh
URLs with ETags or Last-Modified headersBrowser checks in with the server before reusing the cached copy

A single page can have some resources cached for a week and others for only a few minutes, depending on how your server or CMS is configured. This is normal.

Extra Caching Layers Beyond Your Browser

Your browser isn't the only thing that caches your site. A CDN (content delivery network, such as Cloudflare) or a WordPress caching plugin (WP Rocket, W3 Total Cache, LiteSpeed Cache) sits between your server and your visitors and keeps its own cached copy of your pages.

Even after you clear your browser cache, a CDN or plugin may still be serving the old version to visitors until its cache is purged separately. These layers also tend to behave differently for logged-in users: if you're logged into your site, you'll usually see the fresh version, while logged-out visitors still see the cached one. This is a common reason customers report "my changes aren't showing up" even after the site owner can see them live.

Step 4: Clear Your Cache Fully

If a hard refresh and incognito test didn't resolve the issue, clear your browser cache completely.

  1. In your browser, open Settings (or Preferences).
  2. Navigate to Privacy or History.
  3. Select the option to clear cached images and files. You do not need to clear cookies or browsing history unless instructed.
  4. Reload your site.

If clearing your browser cache still doesn't help, try loading your site in a different browser or on a different device. If it looks correct there but not in your original browser, the issue is isolated to that browser's cache.

Note: If you use a CDN or caching plugin (see below), you may also need to purge that cache separately before visitors see your changes.

Step 5: Clear Your WordPress Cache (WordPress Sites Only)

If your site runs WordPress, your caching plugin maintains its own cache that must be cleared after you make changes.

  • WP Super Cache: Go to Settings > WP Super Cache and click Delete Cache.
  • W3 Total Cache: Go to Performance > Dashboard and click Empty All Caches.
  • WP Rocket: Go to Settings > WP Rocket and click Clear Cache.
  • LiteSpeed Cache: Go to LiteSpeed Cache > Dashboard and click Purge All.

Tip: After updating a theme or plugin, always clear your caching plugin's cache before checking whether changes have taken effect. Some hosts and plugins add cache-busting query strings to assets automatically, but many do not.

Next Steps

  • Review your Cache-Control settings. If you want more control over how long your resources are cached, check your CMS's caching plugin settings or consult your application's documentation.
  • Use asset versioning to prevent future issues. Adding a version parameter to static asset URLs (for example, style.css?v=2) forces browsers to fetch the updated file immediately, without waiting for the old cache to expire. Update the version number each time you make changes to the file.
  • Learn how to clear your browser cache. If you need step-by-step instructions for your specific browser, see How to Clear Your Browser Cache.

How helpful was this article?

Thanks for your feedback!

Do you still need help? If so please submit a request here.