Short answer
Write the redirect map before you build anything. Export every URL that currently earns search clicks, map each one to its destination on the new platform, and treat that document as the migration plan. Almost every migration that loses rankings loses them here.
The failure is always the same
We were called in to a camera retailer's store after a migration. The new site looked better, loaded faster, and traffic had fallen off a cliff.
The migration had left 675 product URLs with nothing behind them. Those URLs were still earning 67% of the site's total search clicks. Every one of those visits was landing on an error page.
Nobody had done anything obviously stupid. The products had all been moved across. What had not moved was the addresses they used to live at, and on the old platform those addresses were where Google had sent everyone for years.
Build the redirect map first
Export every URL on the current site. A crawl plus Search Console together — a crawl finds what exists, Search Console finds what earns clicks, and the two lists are never the same.
Sort by clicks over the last twelve months, not by traffic last month. Seasonal products look dead in the wrong quarter.
Map every URL that has ever earned a click to a destination on the new platform. Where there is no direct equivalent, send it to the nearest category — never to the homepage. A mass redirect to the homepage is treated as a soft error and is one of the fastest ways to lose a ranking.
This document is the migration plan. If it is not finished, the migration is not ready, whatever the design looks like.
The things that break quietly
Product identifiers. Migrations love to write junk into the barcode and SKU fields. It looks filled in and it destroys your Shopping feed.
Variant URLs. Platforms disagree about whether a colour is a URL. Get forty near-identical URLs competing for one search and you have made every one of them weaker.
Out-of-stock products. A discontinued product with links and rankings is an asset. Redirect it or keep it up with alternatives. Do not let it 404 silently.
Images. The filename becomes the CDN URL and is a real ranking signal. Migrating images to generated hashes throws that away permanently.
Your feed. Shopping and Merchant Center will need re-verifying. Assume they are broken on launch day until you have checked, because they usually are.
Launch day and the fortnight after
Keep the old site accessible somewhere you can still query. You will need it to answer “what was at this URL?” more often than you expect.
Submit the new sitemap the day you launch, and watch the coverage report daily for two weeks rather than monthly.
Expect a dip. A clean migration recovers in two to six weeks. What you are watching for is the difference between a dip and a cliff.
Check your top fifty URLs by clicks manually, by hand, on the day. It takes an hour and it is the single highest-value hour in the whole project.
When not to migrate at all
If the reason is “the site feels dated”, a redesign on the current platform is cheaper and carries none of this risk.
If the reason is speed, measure first. We have seen sites blamed on their platform whose real problem was a cache backend or a database setting.
If the reason is a genuine platform limit — you cannot get the pricing rule, the integration, or the control you need — then migrate, and budget properly for the redirect work rather than treating it as an afterthought.