A full site migration with zero 404s.
An Inland Empire AV integrator needed off WordPress without losing the URLs Google had already indexed, and without touching the Microsoft 365 email the business runs on. We mapped every old URL, kept every blog post where it was, and changed only the two website records at cutover. The client's name is withheld for privacy.
Client work, described by industry and region. Every number below comes from our own audit and build records.


301 redirects mapped from old URLs to new pages
old sitemap URLs returning 404 on the final re-audit
blog posts kept on their exact original URLs
email records changed at cutover
From the redirect map, the pre-launch SEO check of all 52 pages and the post-launch re-crawl of the old site.
Indexed URLs and live email.
The old site used nested service URLs that Google had already indexed. The new build organized services differently, so every old address needed a new home or visitors and search engines would hit dead ends.
The domain also carried the company's Microsoft 365 email. A careless DNS change could stop mail for the whole business, so the cutover plan had to leave every email record alone.
| Record | Purpose | At cutover |
|---|---|---|
| A | Root domain to the new site | Changed |
| CNAME | www to the new site | Changed |
| MX | Incoming email | Untouched |
| TXT | Email verification, SPF and DMARC | Untouched |
| CNAME | Email signing (DKIM) | Untouched |
| CNAME | Email client setup | Untouched |
A full site migration with zero 404s and zero email downtime.
The final re-audit found zero 404s across every old sitemap URL, and email kept flowing through the cutover.
Every old URL lands somewhere real.
We built the redirect map from the old site's sitemaps and tested every rule before launch. URLs keep their trailing slash, because that is how Google had indexed them. We also added catch-all rules for the feed, archive and pagination URLs WordPress generates on its own, and a branded 404 page for anything unmapped.
- Each old address 301s to its closest new page
- WordPress feed, category, tag and page-number URLs sent to the blog
- A branded 404 with links back into the site
Nothing ranked gets moved.
All 12 existing blog posts kept their exact original URLs, so they needed no redirect at all. Before launch we checked all 52 pages for a unique title and a unique meta description: zero missing, zero duplicates.
Pre-launch SEO check
| Check | Result |
|---|---|
| Pages checked | 52 |
| Missing titles or descriptions | 0 |
| Duplicate titles or descriptions | 0 |
| Blog posts on original URLs | 12 of 12 |
We went looking for what we missed.
Two old URLs surfaced after launch that WordPress had been serving through its own internal redirects, outside its sitemap. Instead of patching just those two, we re-crawled the old site from its original server, found two more, and redirected all four. The final re-audit found zero 404s across every old sitemap URL.
How the work actually ran.
The same order every time: measure, rank, fix, then measure again and report the result either way.
- 01
Map
Every URL in the old sitemaps paired with its new page.
Blog postsKept on original URL12 - 02
Check
Unique title and description on every page before launch.
Pages checkedCount52 - 03
Cut over
Only the two website DNS records changed.
Email recordsChanged0 - 04
Re-audit
The old site re-crawled; the four legacy URLs it surfaced were all redirected.
FinalRedirects43404s0
Our first map was not complete.
Two legacy URLs that WordPress served outside its sitemap surfaced after launch. We re-crawled the old site, found two more, and redirected all four. The lesson: a WordPress sitemap is not a full list of the URLs it serves.
This case shows a clean migration, not a growth result. We do not show this client's traffic or leads without their permission.
Services used
The work on this project maps to these services.
Case study FAQ
How do you avoid 404s when migrating off WordPress?
Map every URL in the old sitemaps to its new page with a 301 redirect, cover the feed, archive and pagination URLs WordPress creates on its own, then re-crawl the old site after launch for anything the sitemap never listed. On this project the final re-audit found zero 404s.
Did the company's email go down during the move?
No. Only the two website DNS records changed. Every email record stayed exactly as it was, and email kept flowing through the cutover.
Did the blog posts lose their rankings?
All 12 existing blog posts kept their exact original URLs, so nothing about their addresses changed and no redirects were needed for them.
What went wrong?
Two legacy URLs that WordPress served outside its sitemap surfaced after launch. We re-crawled the old site, found two more, and redirected all four within the same fix.
Want numbers like these for your site?
Book the free live audit. We measure where your site stands today and show you what we would fix first. Or call (702) 609-0182.


