Broken Redirects After Website Migration
Fix broken redirects after website migration, including redirect loops, HTTPS conflicts, www/non-www issues, missing rules and CDN redirect problems.
Introduction
After a website migration, users and search engines still visit old URLs from bookmarks, emails, ads and backlinks. If redirects are missing, wrong or conflicting, those visits hit 404 errors, redirect loops or irrelevant destinations.
Broken redirects after migration are usually caused by incomplete redirect maps, duplicate rules across server/CMS/CDN layers, HTTP/HTTPS conflicts, www/non-www inconsistencies, or old paths that were never mapped to new URLs.
Quick answer
After migration, map important old URLs to the closest new URLs, implement single-step 301 redirects to the final HTTPS canonical address, remove conflicting rules in server config, CMS plugins and CDN, update internal links and sitemaps, then test old URLs with Website Status Checker or curl -IL.
Broken redirects after migration explained
A migration redirect should send an old URL directly to the best matching new URL in one clear step. Broken redirects fail when that path is missing or fights with another rule.
Common failure patterns:
- 404 Not Found on important old URLs
- Redirect loop between HTTP, HTTPS, www and non-www
- Long redirect chains through multiple hops
- Old URLs all redirect to the homepage
- 302 used for a permanent migration
- Conflicting rules in .htaccess, Nginx, CDN and CMS plugin
- Old domain no longer redirects because DNS or SSL expired
- Case-sensitive or trailing-slash mismatches
- WordPress permalink structure changed without slug redirects
- Sitemap and internal links still point to old URLs
Test old URLs, not just the new homepage. High-traffic pages, product URLs and campaign links break most often.
Do not stack redirect rules in multiple places without testing. Server, CDN and plugin rules can create loops quickly.
Why this matters
Broken redirects after migration hurt user experience, ad landing pages, email links and SEO. Visitors who hit 404s or loops leave quickly, and search engines may drop rankings for URLs that no longer resolve cleanly.
A redirect map tested before and after launch reduces traffic loss and makes it easier to find missing paths in logs and Search Console.
How to check redirects after migration
Test a representative set of old URLs from analytics, sitemaps, backlinks and server logs.
- Old homepage — Confirm it reaches the new canonical homepage.
- Top traffic pages — Test high-value old URLs individually.
- Final URL — Confirm the redirect lands on the correct new page.
- Final status — Confirm the destination returns 200 OK.
- Redirect count — Prefer one hop from old URL to final URL.
- HTTPS — Confirm insecure old URLs reach secure final pages.
- www/non-www — Confirm canonical host behavior is consistent.
- 404 and removed pages — Confirm intentional 404/410 or relevant replacements.
Test migrated URLs
Use Website Status Checker to test old URLs and confirm final status codes, redirect targets and chains after migration.
Common problems
Missing redirect for old URL
HighAn important migrated page returns 404 because no rule exists.
Next step: Add a 301 redirect to the closest relevant new URL.
Redirect loop
HighHTTP/HTTPS, www/non-www or CDN rules send the browser in a circle.
Next step: Choose one canonical host and remove conflicting redirect layers.
Redirect chain too long
MediumThe old URL passes through multiple redirects before reaching the final page.
Next step: Redirect old URLs directly to the final HTTPS canonical URL.
Everything redirects to homepage
MediumOld URLs lose topical relevance and users land on the wrong page.
Next step: Create page-to-page redirects where replacements exist.
302 used for permanent move
MediumA permanent migration is treated as temporary.
Next step: Change permanent migration rules to 301.
HTTP and HTTPS conflict
HighServer, CMS and CDN HTTPS rules fight each other.
Next step: Use one clean HTTPS redirect path to the canonical host.
Old domain stops redirecting
HighDNS, SSL or hosting on the old domain expired after migration.
Next step: Keep the old domain active with valid SSL and redirect rules.
WordPress permalink change without mapping
MediumSlug or structure changes broke existing URLs.
Next step: Add redirects for changed slugs and update internal links.
CDN or cache serves stale redirect
MediumEdge cache still returns an old redirect target or error.
Next step: Purge CDN cache and re-test the affected URLs.
Internal links still use old URLs
LowVisitors and crawlers keep hitting redirects from inside the site.
Next step: Update menus, content links, canonicals and XML sitemap to final URLs.
How to fix broken migration redirects
-
Step 1: Export important old URLs
Collect URLs from analytics, sitemap, Search Console, backlinks and server logs.
-
Step 2: Build a redirect map
Match each old URL to the closest relevant new URL and note redirect type.
-
Step 3: Implement 301 redirects
Add rules in one primary layer first — server, CDN or CMS — and avoid duplicates.
-
Step 4: Fix canonical host and HTTPS
Choose www or non-www and ensure all old URLs reach the secure canonical version.
-
Step 5: Remove conflicting rules
Review .htaccess, Nginx, CDN page rules and redirect plugins for loops or chains.
-
Step 6: Update internal links and sitemap
Point menus, content, canonical tags and XML sitemap to final 200 URLs.
-
Step 7: Test old URLs
Check status codes, final destinations and hop count for priority URLs.
-
Step 8: Monitor after launch
Review 404 logs, crawl errors and traffic changes for missing redirects.
Redirect test examples
Test an old URL and follow redirects:
curl -IL http://example.com/old-page
Good result:
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page
HTTP/2 200 OK
Bad result (404):
HTTP/1.1 404 Not Found
Bad result (loop):
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/new-page
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page
(repeats until browser error)
Redirect map example:
/old-page → /new-page 301
/services/web → /services/web-design 301
/blog/old-post → /blog/new-post 301
/retired-page → 410 Gone
Examples are illustrative. Replace URLs with your real migration paths and test before changing production redirect rules.
Frequently asked questions
Why do redirects break after migration?
Old URL rules may not be copied to the new host, CMS, CDN or server config. Conflicting HTTP/HTTPS, www/non-www and plugin rules are common causes.
Should old URLs redirect to the homepage?
Only when no relevant replacement exists. Otherwise redirect to the closest matching new page to preserve user intent and SEO value.
What is a redirect loop?
Two or more rules send the browser back and forth between URLs until the browser stops with too many redirects.
Can DNS cause broken redirects after migration?
DNS can point to the wrong server, but broken redirects usually come from server, CMS, CDN or .htaccess/Nginx rules on the destination host.
How do I test redirects quickly?
Use Website Status Checker or curl -IL on important old URLs and confirm the final status is 200 on the correct HTTPS canonical page.
Should I use 301 or 302 after migration?
Use 301 for permanent site moves and URL changes. Use 302 only for temporary routing.
How long should migration redirects stay active?
Keep important redirects for a long time, especially for URLs with traffic, bookmarks or backlinks.
Related tools
Use these free tools to verify your configuration after applying changes.
Related guides
Browse all Troubleshooting guides →Need help applying this fix?
Send us your domain, report link or issue details. CheckDomainHealth will review the request and route it to the right technical team if hands-on support is needed.
Was this guide helpful?
Your feedback helps us improve our guides for everyone.
Thanks for your feedback!