This guide starts after the decision is made. Whether you should rebuild at all, or just improve what you have, is a different question and the article this pairs with argues it properly. If you're still deciding, read that first, because the cheapest migration is the one you didn't need.
What follows is risk management, not a platform comparison. Every step has a check that either passes or fails, and the order isn't decorative. Steps 1 and 2 stop being possible once you switch, so doing them late means not doing them.
The example running through this is your own site, because the whole point is a sequence you can execute on it. Where a real one is useful I'll say so.
Capture the before picture, because nothing will backfill it
Do this first, today, before anything else moves. It takes twenty minutes and it's the most skipped step in every migration.
Export and save, with the date in the filename:
- Search Console performance, last 12 months. Queries and pages, exported separately. This is your evidence.
- Your top 20 pages by clicks, with their current average position.
- Analytics traffic by landing page, same window.
- The indexed page count from the Pages report. You'll compare against this for weeks.
- Which pages other sites link to, from the Links report, External links, Top linked pages. A page with three good inbound links is worth protecting even if it gets almost no traffic, because links are the part you can't rebuild by trying harder.
- Which pages produce enquiries, from your form or call tracking. Traffic and money are different columns, and this is the one that decides what gets careful treatment in step 4.
Here's why this matters more than it sounds. Search Console doesn't backfill. It holds roughly 16 months of rolling history, and that history belongs to the property, not to you. If something goes wrong six weeks after launch and you never took the export, there's no way to reconstruct what you had. The argument about whether the migration caused it becomes unwinnable, because nobody can produce the before state.
A real one: on the Wix migration we ran for Magic At My Door, a princess party company here in the GTA, the only surviving record of how the site performed beforehand is a manual export taken before launch. Not because anything went wrong, but because the new property started from zero and Google filled in nothing behind it. That export is now the single source for every before-and-after number, and it exists only because somebody spent twenty minutes on a Tuesday.
How to know it worked You have dated files saved somewhere that isn't the old website, and you can state today's indexed page count and your top five pages from memory or a glance. If your only copy is inside the platform you're leaving, you haven't done this step.
Common trap Assuming Search Console history survives the move because the domain does. The data is tied to the property and the reporting window keeps rolling forward. Nothing you fail to export is recoverable later.
Inventory every URL, not just the ones in your menu
Your navigation isn't your site. Most builder sites carry pages that no menu links to and that the owner forgot exist: an old landing page from a campaign, a thank-you page, a service page that got superseded, blog posts from four years ago. Google still has them, and some of them still get traffic.
Pull from four places, because no single one is complete:
- Your XML sitemap. Usually
/sitemap.xml. The starting point, not the answer. - Search Console, Pages report. Everything Google has indexed, which will include things your sitemap doesn't.
- Analytics, landing pages, last 12 months. Anything that received a visit is a URL worth keeping alive.
- A crawl of the live site. Catches what's linked but not submitted.
Paste all four into one spreadsheet column and remove duplicates. That list, not your menu, is what you're migrating.
How to know it worked Your URL count is at least as high as the indexed page count you wrote down in step 1. If your list is shorter than what Google says it has indexed, you're missing pages and they'll 404 on launch day.
Common trap Trusting the sitemap alone. Builder sitemaps routinely omit pages, and they never include URLs you deleted years ago that still hold links from elsewhere.
Find out what your platform will actually let you take
Before you plan a rebuild, establish what leaves with you. This is where builder migrations differ from any other kind of site move, and where the timeline usually slips.
Closed builders aren't designed to be left. Export tends to be partial, format-specific, or absent, and what you get is rarely the site: it's some of the text. Assume until proven otherwise that you're carrying content across by hand.
Check your platform's own current documentation rather than a blog post, because these capabilities change:
Then inventory what has to be recreated manually. Usually: page copy, images at full resolution, alt text, meta titles and descriptions, any structured data, and your form setups. Budget real hours for it. A migration that stalls halfway because nobody costed the copy-paste is how sites end up live and half finished.
Download your images while you still can, at the largest size available. This is the asset people most often discover they can't retrieve after cancelling.
How to know it worked You have a written list of what exports cleanly and what you're rebuilding by hand, and the images are already downloaded and sitting in a folder on your own machine.
Common trap Discovering the export limits after cancelling the plan. Do this while the account is fully active, not during the final month when features start switching off.
Map every old URL to one new URL
Take the list from step 2, add a second column, and give every single URL a destination. One to one wherever a genuine equivalent exists.
The rule that matters most is about what not to do. Google is explicit: don't redirect many old URLs to one irrelevant destination such as the new homepage, because it confuses users and might be treated as a soft 404. That's worth understanding rather than just obeying. A bulk redirect to the homepage looks tidy, produces no broken links, and quietly throws away everything each of those pages had earned. It's a 404 wearing a costume.
So for each URL, one of four decisions, and every one gets written down:
- Direct equivalent. The same page on the new site. Most of your list.
- Closest parent. No exact match, but a genuinely relevant category or service page.
- Recreate it. The page earns enough that it should exist on the new site even if you weren't planning to.
- Let it go. A deliberate 404 is a legitimate choice for a page with no traffic, no links and no equivalent. An accidental one isn't.
The difference between a real redirect map and a lazy one is whether the fourth category was a decision or an oversight.
| Old URL | Maps to | Verdict |
|---|---|---|
| /services/furnace-repair | /furnace-repair | Direct equivalent |
| /blog/2021-winter-tips | /blog/winter-tips | Direct equivalent |
| /old-promo-page | /services | Closest parent1 |
| /team/dave | / | Soft 404 risk2 |
| /thank-you-2019 | 410, deliberate | Documented decision3 |
How to know it worked Every row has a destination and a reason, and you can filter the sheet for rows pointing at the homepage and explain each one. If that filter returns a large block, you have a soft 404 problem waiting.
Common trap Mapping only the pages that exist in the new site's menu. The old URLs that don't fit the new structure are exactly the ones carrying links from directories and suppliers.
Rebuild with parity on the pages that earn
A new design is fine. A new set of words on the pages that currently rank is a different project, and doing both at once means you'll never know which one caused the change.
For your top 20 pages from step 1, carry across deliberately:
- The body content. Improve it if you like, but don't cut it. Length and specificity are usually why it ranks.
- Titles and H1s. If a page ranks for a term, that term is probably in its title. Keep it there.
- Meta descriptions. Cheap to carry, annoying to rewrite later.
- Internal links. Point them at the new URLs rather than letting them run through the redirects.
- Structured data. Most builders emit some automatically and most custom builds emit none unless you add it. The schema guide covers rebuilding it.
- A self-referencing canonical on every new URL, which Google lists as part of migration preparation.
Change the design, the speed and the platform in this move. Save the content rewrite for a month later, when you have a stable baseline to measure it against.
How to know it worked Open your top 10 pages on old and new side by side. Each has an equivalent page, a comparable amount of content, and the same core term in the title. Nothing in your top 10 is missing.
Common trap Treating the rebuild as a chance to finally shorten that long service page. That page is long because length is what beat the competition, and cutting it is a content decision disguised as a design one.
This is the part where an outside pair of eyes is worth most, because the mistakes surface weeks later.
SEE HOW WE HANDLE REDESIGNSPut the redirects on the new host, not the old builder
This is the step most guides get backwards, and getting it backwards means every redirect you carefully wrote does nothing at all.
Think about what actually happens on launch day. You point your domain's DNS at the new host. From that moment, a browser asking for yourdomain.com/old-page is sent to the new host, and the new host answers. The old builder never sees the request. Its redirect manager, however carefully you filled it in, is no longer in the path.
So redirects configured inside Wix or Squarespace are for while that platform is still serving your domain. The moment you leave, they stop mattering. Your redirect map has to be implemented on the new host, and it has to be live the moment DNS switches.
Then the type. Google supports several kinds and treats them differently:
- Permanent, which is what you want: HTTP
301and308. These tell Google to show the new URL. - Temporary, which you don't want here:
302,303,307. These tell Google to keep the old URL in results, which is the opposite of a migration. - Server-side beats the alternatives. Google ranks server-side redirects highest for reliability, and says to use JavaScript redirects only if you can't do server-side or meta refresh, because rendering can fail.
Watch for chains. If A points to B and B points to C, that's a chain, and Google advises keeping them to ideally no more than 3 and fewer than 5. Chains appear on their own when you migrate a site that was migrated before, so test rather than assume.
The nastier version is a loop: A points to B and B points back to A. Nothing resolves, the browser gives up, and the page is unreachable for everyone including Google. Loops are usually created by adding a redirect to fix a 404 without checking what already pointed at the destination, which is exactly what you'll be doing at speed on launch day. A chain is a tax. A loop is an outage, and it won't appear in any list of pages because the page never loads.
How to know it worked
Test every mapped URL, not a sample. Sampling ten of four hundred tells you almost nothing, and the artifact below runs the whole list in one go. Every row should return 301, landing on the intended page, in one hop, with nothing appearing twice as both a source and a destination. A 302 is a fail. A 200 on a page that used JavaScript to move you is a fail. A request that never resolves is a loop.
Common trap Filling in the old platform's redirect manager as your migration plan. It feels like the right place because that's where the old URLs are listed, and it's the one place the redirects can't run from.
Check for a stray noindex, then switch
Staging sites are built to be hidden from Google, usually with a noindex tag or a blanket Disallow in robots.txt. Shipping that flag to production is the most expensive bug available in a migration, because the site works perfectly for every human who looks at it and is invisible to search.
Google puts this in its own migration documentation, in as many words: don't forget to remove any noindex or robots.txt blocks that were only needed for the migration.
Check it before you celebrate, not after. View source on the new homepage and three inner pages, search for noindex, then open /robots.txt and read it in full. It takes two minutes and it's the difference between a good week and a terrible month.
Then the rest of the launch sequence, in order:
- Redirects live on the new host and spot-checked. Step 6.
- DNS switched.
- Verify every variant in Search Console. Google says to verify www and non-www, and HTTP and HTTPS, for both old and new. Most people do one and think they're covered.
- Submit the new sitemap. The old one can be removed once the new one is in.
- Analytics tag present on the new site and firing. Check Realtime with your own visit.
- Change of Address only if the domain changed. It's for moving between domains or subdomains. If you kept the same domain and only changed platform, it doesn't apply and you haven't missed anything.
How to know it worked
View source shows no noindex, robots.txt contains nothing blanket, a sample of old URLs 301s correctly, and your own visit shows up in analytics Realtime. All four, on launch day, before you close the laptop.
Common trap Launching Friday afternoon. Migrations declare their problems within 48 hours, and the two days you're least likely to be looking are the two days after a Friday launch.
Watch for 30 days, and know what normal looks like
Something will move. The job now is telling a normal migration wobble apart from a real problem, and the difference is direction rather than the number on any given day.
What normal looks like. Google says a small to medium site can take a few weeks for most pages to move across. So expect impressions and positions to be unsettled for a fortnight, and expect your indexed page count to drop before it climbs. Panicking on day three and reverting is its own disaster.
Check weekly, not daily, and watch four things:
- 404s in the Pages report. Should spike, then fall steadily. Every one that persists is a URL missing from your map, so add the redirect and move on.
- Indexed page count. Should climb back toward the step 1 number.
- Your top 20 pages. Positions should recover toward the step 1 export. This is why you took it.
- Clicks, but last. Noisiest signal, slowest to settle, and the one that tempts people into changing things too early.
At three weeks, if 404s are flat rather than falling, or your top pages haven't begun reappearing, stop waiting and go looking. That's the point where patience turns into denial.
Leave the redirects alone. Google says to keep them as long as possible and generally at least a year, because other sites linking to you need to be recrawled and reassigned, and that runs on nobody's schedule but theirs.
How to know it worked At 30 days your 404 count is near zero, your indexed page count is at or above the step 1 number, and your top pages sit within a position or two of where they were. Compared against a file you saved, not a memory.
Common trap Cancelling the old platform in week one. It's your only copy of anything the export missed and your only record of the old URLs. Keep it until the indexed count recovers.
Copy and paste
Three artifacts. The first is the spreadsheet the whole migration runs on.
OLD URL | CLICKS 12MO | NEW URL | DECISION | STATUS | CHECKED
DECISION is one of:
equivalent ...... a genuine like-for-like page
parent .......... closest relevant category or service page
recreate ........ earns enough that it must exist on the new site
retire .......... deliberate 404 / 410, written down as a choice
RULES
1. Every old URL gets a row. Sitemap + Search Console Pages
+ analytics landing pages + a crawl. All four, deduped.
2. No bulk mapping to "/" . Google may treat an irrelevant
redirect as a soft 404, so it preserves nothing.
3. Sort by CLICKS descending. Your top 20 get checked by hand.
4. STATUS must read 301 or 308. Not 302, 303 or 307.
5. One hop. Chains: ideally under 3, always under 5.
6. CHECKED is a date. Unchecked rows are not done.
Run on STAGING before launch, and again right
after DNS switches. Whole list, every time.
OPTION A -- no tools, no signup, exact
Put every OLD url in urls.txt, one per line:
while read u; do
printf '%s -> ' "$u"
curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' "$u"
done < urls.txt > results.txt
Then sort results.txt and read the codes.
OPTION B -- a crawler, if the list is long
Screaming Frog, List mode. Free to 500 URLs.
Upload the old-URL column, crawl, then read
the Status Code and Redirect URL columns.
READING THE RESULTS
301 + right page ...... pass
308 + right page ...... pass
302 / 303 / 307 ....... FAIL, temporary.
Google keeps the OLD url
200 ................... FAIL. page answered
directly. any JS redirect
on it does not count
404 ................... missing from your map
500 ................... redirect rule is broken
never finishes ........ LOOP. see below
FINDING LOOPS BEFORE THEY BITE
In the sheet, look for any URL appearing in
BOTH the old column and the new column.
That is the shape of every loop.
Sort both columns and compare.
CHAINS
If redirect_url is not the FINAL url, you have
a chain. Re-point the first redirect straight
at the final destination. One hop.
DO NOT SIGN OFF UNTIL
every row reads 301 or 308, one hop,
and no URL is both a source and a target.
LAUNCH ....... 2026-__-__ (not a Friday)
BEFORE DNS SWITCHES
[ ] view-source on 4 pages: no "noindex"
[ ] /robots.txt read in full: no blanket Disallow
[ ] redirects live ON THE NEW HOST, not the old builder
[ ] EVERY old URL tested -> 301, one hop, right page
[ ] no URL is both a redirect source AND a target
[ ] top 20 pages exist with equivalent content
[ ] self-referencing canonical on new URLs
[ ] images downloaded locally at full size
[ ] before-picture exports saved OFF the old platform
AFTER DNS SWITCHES
[ ] Search Console: www + non-www + http + https, both sites
[ ] new sitemap submitted
[ ] old sitemap removed
[ ] analytics tag firing (confirm in Realtime)
[ ] Change of Address ONLY if the domain itself changed
[ ] old platform NOT cancelled
THE ONE THAT ENDS CAREERS
A staging noindex shipped to production. The site looks
perfect to every human and is invisible to search.
Check it first, not last.
Compare everything against the step 1 export, by file.
DAY 1 404s appearing? redirects returning 301?
own visit in analytics Realtime?
WEEK 1 404 count ......... expect a spike
indexed pages ..... expect a dip
VERDICT: normal. Do not revert.
WEEK 2 404 count ......... should be falling
indexed pages ..... should be climbing
top 20 positions .. unsettled is fine
WEEK 3 404 count ......... clearly falling
top 20 ............ starting to reappear
IF FLAT OR WORSE -> stop waiting, investigate.
Usual causes: URLs missing from the map,
a 302 where a 301 belongs, or a noindex.
WEEK 4 404s near zero
indexed >= the step 1 number
top 20 within a position or two
-> migration closed. Now you may cancel the
old platform. Leave the redirects forever.
The whole migration on one page
Where this stops
A technically confident owner can do all of this. It's a sequence and a spreadsheet, not a specialism, and pretending otherwise would be a sales pitch rather than an honest answer.
The real argument for having someone do it who has done it before is the failure mode, not the difficulty. Migration mistakes aren't loud. Nothing errors, nothing looks broken, and the site works perfectly for everyone who visits it. You find out five or six weeks later when the enquiries thin out, and by then the old platform has usually been cancelled, the export window has closed, and the evidence you'd need to diagnose it is gone. That asymmetry, cheap to prevent and expensive to discover, is the whole case.
Two notes if you're going further. Rebuilding your structured data is the part of step 5 most likely to be quietly dropped, since most builders emit schema automatically and most custom builds emit none until someone adds it. And if you aren't changing platform at all, only redesigning and changing your URLs, steps 2, 4, 6 and 8 are still the whole job. Skip step 3, since no export limits apply, and read step 6 for the redirect types and the testing rather than the DNS argument, because you're staying where you are.
If you'd rather hand the whole thing over, that's what the redesign service is, and the free audit will tell you what your current site is actually earning before you touch it.
Questions people ask
Do I need Google's Change of Address tool?
Only if your domain itself is changing. Google is specific that the tool is for moving from one domain or subdomain to another, and that you don't need it for HTTP to HTTPS moves, for switching between www and non-www on the same domain, or for moving paths within the same domain. Most builder migrations keep the same domain and only change the platform underneath it, so the tool doesn't apply and running it isn't a step you have missed. If you're also changing domain, submit a request for every verified variant of the old one.
How long do I have to keep the redirects in place?
Google says to keep them as long as possible, and generally at least one year. The reason is that the redirect is doing two jobs on two different clocks: it moves Google's own signals across, which is relatively quick, and it gives every other site that ever linked to you a chance to be recrawled and reassigned, which isn't. There's no real upside to removing them, since a redirect costs nothing to leave in place. Treat them as permanent infrastructure rather than a migration task with an end date.
How long should recovery take, and when should I actually worry?
Google says a small to medium site can take a few weeks for most pages to move across, and larger sites take longer. So a dip in the first fortnight is the normal shape of a migration and not evidence anything is broken. What matters is direction. Your 404 count should be falling week over week and your indexed page count should be climbing toward the old number. If either is flat or worsening at the three week mark, or your top pages haven't started reappearing, that's the point to go looking rather than waiting it out.
Can I cancel the old builder account once the new site is live?
Not straight away, and this is the mistake that turns a recoverable problem into a permanent one. Keep the old account alive through the monitoring window, because it's your only copy of anything the export didn't carry: page content, images at full resolution, and the record of what the old URLs actually were. If something surfaces in week three and the old site is already deleted, you can't diagnose it and you can't rebuild the missing page from anything. The subscription is cheap next to that. Cancel it once your indexed page count has recovered.
Should I move the whole site at once or a section at a time?
All at once, for any site a small business is likely to have. Google recommends moving all URLs simultaneously rather than one section at a time, because it helps users deal with the site in its new form and helps Google detect the move and update the index faster. Phasing sounds safer and isn't: it leaves you running two sites, doubles the surface where redirects can go wrong, and makes it much harder to tell whether a drop came from the migration or from the half of the site you haven't moved yet.