Redirects & Links

Why WordPress Redirects Break After You Add Caching

You change a redirect, but visitors still land on the old target. Caching is usually the culprit. Here is why it happens and how to keep redirects working.

You change a redirect in WordPress, test it, and it works for you, but visitors keep landing on the old destination. The usual reason is caching. A cache stores a ready-made snapshot of your page, including whatever redirect was in place when the snapshot was taken, and then serves that frozen copy to visitors instead of evaluating the redirect fresh. So your update is live, but the cache is handing out a version from before you made the change.

This clash between redirects and caching is one of the most confusing WordPress problems, because nothing is broken, the cache is doing its job, just at the wrong moment. Here is exactly why it happens and how to keep your redirects and caches in sync.

How Caching Works

A cache exists to make your site fast. Instead of building each page from scratch on every visit, WordPress and its plugins save a finished copy and serve that to the next visitor. It is a snapshot, frozen at the moment it was created, and it stays in use until it expires or is purged.

That is great for a normal page that rarely changes. The trouble starts when the thing you changed is exactly what the snapshot captured, because the cache has no idea anything is different. It keeps serving the old copy until something tells it not to.

Why Redirects Are Especially Affected

Redirects are sensitive to caching because they are an instruction attached to a page, and that instruction gets captured in the snapshot. When you change where a path redirects, the cached copy still carries the old target. Visitors served from cache follow the old redirect, while you, often logged in and bypassing the cache, see the new one.

That split is why the problem is so hard to diagnose. From your seat everything looks correct. The only people experiencing the stale redirect are the visitors you cannot easily see, which makes it tempting to assume the redirect simply did not save when in fact it did.

The Logged-In Illusion

Most caching setups skip the cache for logged-in administrators so you always see the live site. This is helpful day to day, but it actively hides redirect problems. You test your new redirect, it works, and you move on, because you were never served the cached version that everyone else is getting.

The practical lesson is to test redirects the way a visitor experiences them: in a private window, logged out, or on another device. If it works logged in but not logged out, you are almost certainly looking at a cache issue rather than a redirect that failed to save.

Caches You Cannot See

WordPress cache plugins are only part of the story. Your host may cache at the server level, a CDN may cache at the edge, and the visitor’s own browser caches too. A redirect can be held in any of these, and several of them have no WordPress plugin you can click to purge.

This is why “just clear the cache plugin” sometimes is not enough. The stale redirect may be living in a server cache or a CDN that the plugin never touches. Solving it reliably means controlling how those layers are allowed to cache the page in the first place.

The Fix: Cache-Safe Delivery and Purge on Save

There are two complementary fixes. The first is to serve any page that controls a redirect with no-store headers, which tells browsers and caches not to keep a copy. Each visit is then evaluated fresh, so a changed redirect takes effect immediately rather than being frozen in a snapshot. The second is to purge the relevant cached pages automatically whenever you save a rule.

DevDome Redirect Manager does both. Pages a rule targets are served no-store so a cache layer never shows the wrong target, and saving a rule can purge the page across common WordPress cache plugins in one click. Together that keeps your redirects and your caches from drifting out of sync, even after edits.

Keep Redirects and Caches in Sync

The takeaway is simple: caching and redirects are both good, but they need to cooperate. Test redirects logged out so caching cannot fool you, prefer cache-safe delivery for redirect-targeted pages so stale snapshots never form, and purge automatically when rules change so nothing lingers.

If a redirect still seems stuck after that, run the URL through a redirect checker to see exactly what it returns from the outside. Once cache-safe delivery and purge-on-save are handling it, “I changed the redirect but it still goes to the old page” stops being a problem you have to chase.

Key takeaways

  • A cache stores a snapshot of a page, including an old redirect, and serves it again.
  • After you change a redirect, cached visitors can keep hitting the previous destination.
  • The fix is to serve redirect-targeted pages no-store and purge the cache on change.
  • Server and CDN caches can hold a redirect even when no WordPress cache plugin is involved.
  • Cache-safe delivery plus purge-on-save keeps redirects and caches in sync automatically.

Frequently asked questions

Why does my redirect work for me but not for visitors?

You are likely bypassing the cache while logged in, so you see the live redirect, while visitors are served a cached snapshot that still has the old behavior. The redirect is correct; the cache is serving a stale version of the page to everyone else.

Does clearing the cache fix it?

Usually yes, for the moment. Purging the cache forces a fresh copy that reflects the new redirect. The problem returns the next time the page is cached unless the redirect-targeted pages are served in a cache-safe way or the cache is purged automatically when the rule changes.

What if I have no cache plugin?

You can still be affected. Hosting-level caching, a CDN, or the browser's own cache can hold a redirect. These caches have no WordPress plugin to purge, so the safe approach is to send no-store headers on redirect-targeted pages so they are not cached in the first place.

What does no-store actually do?

A no-store response tells browsers and caches not to keep a copy of the page. For a page that controls a redirect, that means each visit is evaluated fresh, so a changed redirect takes effect immediately instead of being frozen in a cached snapshot.

DevDome Team WordPress plugin builders

The DevDome team builds lightweight, performance-first WordPress plugins and free tools for site owners, founders and marketers. We write about the exact problems our plugins solve, in plain language for people who run real sites.