# Purged but nothing changed

A purge clears Cloudflare's edge cache for exactly what you asked to purge. When users still see the old content, one of these is true:

## 1. Browser cache

Purge does not touch the visitor's browser. If the response had a long browser TTL (Cache-Control: max-age), users keep the old copy until it expires. Fix the TTL design going forward; for the immediate incident, versioned URLs (`/app.v2.js`) are the only reliable bust.

## 2. Wrong scope

- Purged `https://example.com/page` but the user visits `https://www.example.com/page`: different hostname, different cache entry. Purge by hostname or include every variant.
- Purged the URL without the query string, but the cached entry includes one (or vice versa): the cache key did not match.
- Purged one zone but the content is served from another (apex vs www on different zones, or a SaaS custom hostname).

## 3. The origin still serves the old content

Purge refills from the origin. If the origin (or the deploy) still has the old file, the edge faithfully re-caches the old file. Verify the origin directly, bypassing Cloudflare, before purging again.

## 4. Purge everything is still propagating

Large purges take time to reach every edge location. Wait, then check `CF-Cache-Status` from multiple regions.

## Checklist

- Confirm the origin serves the new content first (bypass Cloudflare).
- Purge the exact cache key: scheme, hostname, path, and query-string behavior.
- Remember the browser: edge purge plus versioned assets, or the fix is invisible to users.