Domain Redirect Not Working? 6 Common Causes and How to Fix Them
April 29, 2026
9 mins read
You set up a domain redirect, waited for propagation, tested the old URL — and nothing happens. The page either stays the same, throws an error, or loops endlessly.
Redirect failures are frustrating, and they cost you more than just time. Every broken redirect means lost traffic, broken backlinks, and a poor experience for anyone clicking an old link. For businesses relying on organic search, a misconfigured redirect can quietly bleed SEO value for weeks before anyone notices.
The good news: most redirect failures come from just a handful of causes. This guide walks through each one, from DNS issues to server config mistakes, with concrete steps to diagnose and fix them.
#1 DNS Hasn't Propagated Yet
The problem: You pointed your domain's DNS records to the redirect service or new server, but visitors still see the old site.
Why it happens: DNS changes don't take effect instantly. Every DNS record has a TTL (Time to Live) value — usually 300 seconds (5 minutes) to 86,400 seconds (24 hours). Until the old TTL expires worldwide, DNS resolvers around the internet keep serving the old IP address.
How to diagnose:
- •Run dig example.com in your terminal and check the ANSWER section — is the IP the old one or the new one?
- •Use a global DNS propagation checker like whatsmydns.net to see propagation status across different regions
- •Check your domain's TTL in your DNS provider's settings
How to fix:
- •Before making DNS changes, lower the TTL to 300 seconds (5 minutes). This shortens the propagation window significantly
- •Wait — full propagation can take up to 48 hours with standard TTLs, though it's usually much faster (minutes to a few hours)
- •If propagation seems stuck, check that you updated records at the correct DNS provider (the one where your nameservers point, not necessarily your domain registrar)
#2 .htaccess Syntax Errors
The problem: You added a redirect rule to your .htaccess file, but the server returns a 500 Internal Server Error, ignores the rule entirely, or applies it incorrectly.
Why it happens: Apache's mod_rewrite is powerful but unforgiving. A single missing space, wrong flag, or conflicting rule can break the entire configuration. Common mistakes include:
- •Missing RewriteEngine On at the top of the rules block
- •Using http:// instead of https:// in the target URL
- •Forgetting the leading slash in the pattern
- •Conflicting rules that override each other due to ordering
How to diagnose:
- •Check your server's error log — Apache logs exact line numbers for syntax errors
- •Temporarily rename .htaccess to something else — if the error goes away, your .htaccess is the culprit
How to fix:
- •Start with a minimal rule and test before adding complexity
- •Correct syntax for a basic 301 redirect:
apache
Redirect 301 /old-page https://example.com/new-page
- •For regex-based redirects with mod_rewrite:
apache
RewriteEngine On RewriteRule ^old-path/(.*)$ https://example.com/new-path/$1 [R=301,L]
- •If your site runs on Nginx instead of Apache, .htaccess files are ignored entirely — you need to add rules in the server block configuration instead
#3 Redirect Chain or Loop
The problem: The redirect starts but never reaches the destination — the browser eventually shows "too many redirects" or the page takes forever to load.
Why it happens: A redirect chain happens when URL A redirects to B, B redirects to C, and so on. A loop happens when the chain circles back to an earlier URL. Both are common during website migrations when old redirects and new redirects overlap without cleanup.
How to diagnose:
- •Open Chrome DevTools → Network tab → reload the page — examine the 3xx chain of requests
- •If you see the same URL appearing twice in the chain, that's a loop
- •Use a redirect checker tool (like redirectcheck.com) to visualize the full chain
How to fix:
- •Map out every active redirect rule you have — in .htaccess, CMS plugins, CDN edge rules, and the redirect management tool
- •Remove intermediate rules that are no longer needed. Consolidate chains into a single direct redirect (A → D instead of A → B → C → D)
- •If using WordPress, check all active plugins — caching plugins, SEO plugins, and security plugins can all add conflicting redirect rules
#4 Caching Ghosts
The problem: You updated or removed a redirect, but visitors still get redirected to the old destination.
Why it happens: Browsers, CDN edge nodes, and server-level caches aggressively cache 301 redirects. Once a browser sees a 301, it may remember that redirect indefinitely — even after you've changed it. The same applies to CDN caches like Cloudflare, which may serve stale redirect responses from edge nodes.
How to diagnose:
- •Open the page in an incognito/private window — if it works correctly there, browser cache is the issue
- •Use curl -I https://example.com/old-page to see the actual server response headers without browser interference
- •Check the Cache-Control and Age headers in the response
How to fix:
- •Clear your browser cache (Chrome: Settings → Privacy → Clear browsing data → Cached images and files)
- •Purge your CDN cache (Cloudflare: Dashboard → Caching → Purge Everything or single URL purge)
- •For future redirects, use 302 (temporary) during testing, then switch to 301 (permanent) only when you're confident the destination is correct
- •Add explicit cache headers: Cache-Control: no-cache, max-age=0 for redirects you expect to change
#5 Mixed HTTP/HTTPS Issues
The problem: Your redirect target uses HTTPS, but the redirect sends traffic to the HTTP version, or vice versa. Visitors see a certificate warning or a broken page.
Why it happens: This is one of the most overlooked redirect failure modes. You set up a redirect from http://old-domain.com to http://new-domain.com, but the new domain enforces HTTPS via HSTS. The browser makes one redirect, then immediately gets redirected again to HTTPS — or worse, the HTTPS version of the old domain has an expired or mismatched certificate.
How to diagnose:
- •Check both http:// and https:// versions of your source URL
- •Look for mixed-content warnings in the browser console
- •Check if HSTS is enforced (check for the Strict-Transport-Security response header)
How to fix:
- •Always redirect to the full HTTPS URL: https://new-domain.com/page instead of just new-domain.com/page
- •Ensure every domain in the chain has a valid SSL certificate installed
- •If redirecting from an old domain, make sure the old domain also has SSL coverage — even if it only serves redirects
- •Use a single canonical protocol (always HTTPS) everywhere in your redirect rules
#6 Wrong Redirect Type
The problem: Your redirect works, but search engines aren't passing link equity, or visitors can't bookmark the destination properly.
Why it happens: Different HTTP status codes tell browsers and search engines different things about the redirect:
- •301 (Moved Permanently): Passes most link equity. Use for permanent moves like domain changes or restructuring
- •302 (Found): Does not pass link equity. Use only for temporary redirects like A/B tests or seasonal landing pages
- •307 (Temporary Redirect): Similar to 302 but preserves the HTTP method. Used for temporary API redirects
- •Meta Refresh: An HTML-based redirect (not HTTP). Slow, loses link equity, and poor user experience
How to diagnose:
- •Check the response status code using curl -I https://example.com/old-page
- •Look for the Location header and the 3xx status code in the first line of the response
How to fix:
- •Use 301 for all permanent redirects — domain migrations, URL structure changes, page deletions
- •Use 302 or 307 only for genuinely temporary redirects (promotions, maintenance pages, A/B testing)
- •Never use meta refresh (<meta http-equiv="refresh">) for SEO-critical redirects — use proper HTTP redirects instead
- •If you're not sure which type to use, default to 301. Changing a 302 to 301 later won't hurt you, but using a 302 for a permanent move will cost you SEO value
How to Prevent Redirect Failures
The diagnosis and fix cycle for redirect issues is time-consuming. Here's how to avoid most of them upfront:
- •Test with curl before launching: Run curl -IL https://source-url.com to verify the full redirect chain before announcing any URL change
- •Keep a redirect map: Document every redirect rule. When you migrate or restructure, update the map. This prevents accidental chains and orphaned rules
- •Use a dedicated redirect management platform: Managing redirects through .htaccess, WordPress plugins, or server config files works — until it doesn't. When you have dozens or hundreds of redirects, the manual approach breeds errors. A dedicated platform gives you visual debugging of redirect chains, automatic HTTPS handling, analytics on redirect traffic, bulk import and export, and audit logs to track changes.
- •Set low TTLs before making DNS changes: Lower your TTL to 300 seconds at least 24 hours before any planned DNS update
- •Test on a staging environment: Never deploy redirect changes directly to production without testing the full path
The RedirHub Approach: Skip the Guesswork
Every cause in this guide — DNS delays, .htaccess errors, redirect chains, caching ghosts, SSL mismatches, wrong status codes — traces back to one thing: managing redirects through infrastructure that wasn't built for it.
RedirHub handles redirects at the edge, separate from your web server and DNS configuration. That means no .htaccess files to corrupt, no server restarts when you add a rule, and no worrying about TTLs or caching ghosts. Every redirect is managed through a visual dashboard with instant propagation, automatic HTTPS, built-in analytics, and bulk import for large-scale migrations.
Here's how RedirHub eliminates each problem from this guide:
- •DNS propagation—RedirHub uses CNAME-based setup. No A record changes needed. Redirects propagate globally within seconds, not hours.
- •.htaccess errors—No server config files to edit. All rules are managed in a visual interface with validation built in. If the syntax is wrong, the UI tells you before the rule goes live.
- •Redirect chains—The dashboard shows the full path of every rule. You can see and eliminate chains in one click. No more guessing where the loop starts.
- •Caching ghosts—RedirHub sets optimal cache headers by default. When you update a redirect, the change takes effect immediately on the edge. No browser cache purge needed.
- •HTTPS issues—Automatic SSL on every redirect. No manual certificate setup, no mixed-content surprises.
- •Wrong status codes—Set 301, 302, or 307 per rule in the interface. No raw headers to configure.
If you're spending time debugging redirects instead of moving your site forward, that's a sign the setup isn't right. A purpose-built redirect platform removes the infrastructure friction so you can focus on the migration, not the mechanics.
Quick-Reference Checklist
Still stuck? Sometimes the problem is infrastructure-level — conflicting CDN rules, server-level rewrites overriding application-level rules, or DNS settings at the registry level. If you've gone through this checklist and the redirect still isn't working, a visual redirect diagnostics tool can show you exactly what's happening at each hop.
Start Making 5x Faster Redirects with RedirHub
Get redirects in under 100 ms – with automatic HTTPS, analytics, and zero configuration.
Get Started FreeRelated Articles
View All Articles

