I previously moved `site.com/page` from a Next.js site to WordPress and configured a permanent redirect to `page.site.com`. I now need to move it back, but Chrome continues using a cached 308 redirect—even after removing the redirect from the server. It has been showing "308 Permanent Redirect (from disk cache)" for more than a week.
I understand that redirecting `page.site.com` straight back to `site.com/page` might create a loop for visitors whose browsers still have the original redirect cached. Is there a reliable way to recover the original URL without changing it to something like `site.com/page2`?
4 Answers
For future redirects, send explicit cache controls and use a 302 or 307 while the destination is still subject to change. Once you are certain, you can switch to 301 or 308. Also update the restored page’s canonical tag to `site.com/page` so search engines do not keep treating the subdomain as the preferred URL. Search engines generally recrawl redirects separately; the main difficulty here is old browser caches.
Avoid relying on a redirect loop to make Chrome recheck the original URL. Some browsers may behave differently, and testing has shown the trick to be inconsistent. A distinct URL or query string is much more predictable. You can also test with a separate browser profile, another browser, or `curl`, since clearing your own cache does not solve the problem for other visitors.
Since you control both domains, use a harmless query-string variation to break the cached loop. Restore `site.com/page` as a normal 200 response, then have `page.site.com` return a temporary redirect such as `302 Location: https://site.com/page?src=sub` with `Cache-Control: no-store`. The cached redirect sends returning visitors to the subdomain, and the reverse redirect sends them to a URL the browser has not cached as redirected. Add a canonical tag pointing to the clean `site.com/page`, and keep this workaround in place while old caches expire.
There is no dependable way to erase a permanent redirect from browsers that already cached it. A 301 or 308 can remain cached for a very long time, so removing the server-side rule only affects new visitors. This is why temporary 302 or 307 redirects are safer until you know the change is final.

The query parameter should be treated as a recovery workaround, not a permanent URL change. Keep the response temporary and make sure the parameterized page is not indexed as a separate canonical URL.