Website migration checklist: how to move a site without losing rankings
Short answer
A website migration doesn’t have to cost you rankings if every changed URL 301-redirects to its closest new equivalent and the new site passes testing before launch. This website migration checklist covers domain, URL, CMS and hosting moves in three stages: before the move, launch day and the 8–12 weeks after, with a redirect map and a printable PDF.
What counts as a website migration and why rankings drop
A website migration is any change that forces Google to relearn your URLs or your content: moving to a new domain, switching to a CMS with a different URL structure, going from HTTP to HTTPS, or merging two sites into one. Moving to a new server, or a redesign that keeps every URL, is still a migration, just a lower-risk one.
Rankings usually drop for the same handful of reasons. Old URLs return a 404 because nobody built the redirects. The new site still carries a noindex tag or a robots.txt block left over from staging. Content that used to bring in traffic simply disappeared. Internal linking changed, and important pages are now buried deep in the structure. Or the server can’t keep up, because after a move Google crawls the site more heavily than usual for a while.
According to Google, a medium-sized site can take a few weeks or more before the new URLs replace the old ones in search results, and larger sites take longer. Some movement during that window is normal. A drop that sticks often points to a redirect or indexing problem, removed content, or too many changes at once. You will find the cause faster if you saved a baseline before the move. The table shows what each type of migration requires.
| Type of migration | What changes | 301 redirects | Search Console Change of Address tool |
|---|---|---|---|
| New domain (old-company.com → new-company.com) | Every URL | Yes, from every URL | Yes, after the redirects are live, for every variant of the old domain (www and non-www) |
| New subdomain (shop.company.com → store.company.com) | URLs on the subdomain | Yes, from every URL | Yes, after the redirects are live |
| New CMS or new URL structure on the same domain | URL paths | Yes, for every changed path | No, redirects and a new sitemap are enough |
| HTTP → HTTPS | Protocol | Yes | No, Google detects this change on its own |
| www ↔ non-www | Hostname on the same domain | Yes (or a canonical tag) | No |
| New server, hosting or CDN with the same URLs | Server and DNS records | No | No, see the section on hosting changes |
| Redesign with the same URLs | Template and content | No, unless you also change URLs | No |
Sources: Search Console Help, “Change of Address tool,” and Google Search Central, “How to move a site” and “Changing your hosting” (accessed November 11, 2026).
Before the move: SEO migration checklist for URLs, redirects and staging
A complete list of old URLs
Start with an inventory. Google suggests pulling old URLs from several places: your sitemaps, server logs, analytics, the CMS, and the Links report in Search Console. Add a full crawl with an SEO tool. Don’t skip images, videos, PDFs, JavaScript and CSS files. They have URLs too, and downloadable files often earn backlinks. If only the domain changes and every path stays the same, one wildcard redirect rule can cover the move, but you still need the URL list for testing.
A baseline from Search Console and GA4
Export the pages with the most clicks and the queries you rank for from the Performance report in Search Console. Save the number of indexed pages from the Pages report, plus organic traffic and key events (conversions) from GA4. Pick 20–50 priority URLs: you will test them on launch day, and they will show problems first. Also save a list of sites that link to your old URLs.
A redirect map
Every old URL gets exactly one destination: the closest match in content, with a 301 or 308 status code. If you merge several pages into one, all of their old URLs can point to that new page. Don’t send everything to the home page. Google advises against irrelevant redirects like that and may treat them as soft 404s. If content is gone with no replacement, return a 404 or 410. You will find a redirect map template with an example in the next section.
A staging site Google can’t index
Build the new version on a staging site protected by a password or limited to specific IP addresses. A noindex tag works too. A robots.txt Disallow rule on its own is not enough: Google can still index a blocked URL if other pages link to it, and a crawler that is blocked never sees the noindex tag. Write down exactly what blocks indexing, because you will need to remove it on launch day. In WordPress, that is usually the “Discourage search engines from indexing this site” box under Settings → Reading. Crawl the whole staging site and test redirects, page speed and forms.
Canonical tags, hreflang, internal links and analytics
Every new URL should carry a self-referencing canonical tag. Point hreflang annotations to the new URLs in every language version at once: each version lists itself and all the others, or Google ignores the tags. You can add x-default for unmatched languages. Change internal links in the menu, footer and body copy to the new URLs before launch, so they don’t run through redirects. Carry over structured data, title tags and meta descriptions. Set up GA4 and Google Tag Manager so key events fire from day one. Prepare a new XML sitemap that lists only final destination URLs, and keep the old one for monitoring.
Search Console, server and page speed
Verify both the old and the new site in Search Console in every variant: www and non-www, HTTP and HTTPS. Make sure verification survives the move: the HTML file or meta tag has to be on the new site too. If you use a disavow file, upload it to the new property as well. Bought a previously used domain? Check it for manual actions and URL removal requests left by the previous owner. Make sure your server has headroom, because Google crawls the site more heavily than usual for a while after launch. On a large site, give your hosting provider a heads-up. On staging, measure speed in Lighthouse and compare it with the old version. After launch, check Core Web Vitals from real-user data: good values are LCP within 2.5 s, INP of 200 ms or less and CLS of 0.1 or less. For a deeper technical pass, use our technical SEO audit checklist.
All at once or in sections
Google recommends that small and medium sites move all their URLs at the same time. A large site can move one section at a time, starting with a part that rarely changes. That makes problems easier to spot and fix. Pick a date outside your peak season, and make sure your developer is available for the whole launch day.
301 redirect map template with a worked example
A redirect map is a spreadsheet where each row pairs an old URL with its new one. Your developer uses it to set up the server rules, and you use it on launch day to check off tests. Here is an example for a company moving from old-company.com to new-company.com and cleaning up its service URLs at the same time.
| Old URL | New URL | Code | Priority | Notes |
|---|---|---|---|---|
| old-company.com/ | new-company.com/ | 301 | High | Home page, test in the first minute |
| old-company.com/services/web-design.html | new-company.com/web-design/ | 301 | High | Most clicks in Search Console |
| old-company.com/services/ecommerce.html | new-company.com/web-design/ecommerce/ | 301 | Medium | New path in the structure |
| old-company.com/blog/?p=148 | new-company.com/blog/choosing-web-hosting/ | 301 | Medium | Old URL with a parameter |
| old-company.com/pricing-2022.pdf | new-company.com/files/pricing.pdf | 301 | Low | File has backlinks |
| old-company.com/summer-sale | – | 410 | Low | Content removed, no equivalent |
Illustrative example: it combines a domain change with path changes to show different kinds of rows. If you can, keep your paths unchanged, because according to Google the same URL structure helps pass signals to the new site. In your own map, add a column for the test result and the date checked (the PDF template has one).
Five rules that save weeks of cleanup:
- One hop. Each old URL goes straight to its final destination. Google recommends avoiding redirect chains and, where you can’t, keeping them short, ideally no more than three hops. Zero chains is safest.
- Permanent redirects. A 301 or 308 tells Google the new URL should become canonical. A temporary 302 or 307 doesn’t send that signal.
- Server-side. JavaScript redirects are a last resort. Google may never see one if rendering fails.
- One URL format. Decide once: trailing slash or not, lowercase, HTTPS, www or non-www. Every mismatch adds another hop.
- Keep them for the long haul. Google recommends keeping redirects as long as possible, generally at least a year. Don’t let the old domain go, or the redirects go with it.
Launch day: the website launch checklist for SEO
Pick a low-traffic day and time, and avoid Friday afternoons. Order matters:
- Deploy the redirects from your map before the old version stops responding.
- Remove staging blocks: the
noindextag, the password, and anyDisallowrules that were only needed during the build. - Check robots.txt on the new site. It should block only what really needs to stay hidden from crawlers. Keep the rules for Googlebot, Bingbot and AI search crawlers such as OAI-SearchBot and PerplexityBot the same as on the old site, unless you are changing them on purpose.
- Check canonical tags. They must point to the new URLs, not to staging or the old domain.
- Test your priority URLs: status code, redirect target, title, content and forms. The URL Inspection tool in Search Console or a simple script will do. Our free SEO audit checks up to 25 pages of the new site, including error codes, redirect chains,
noindexand robots.txt. - Submit the new sitemap in Search Console and list it in robots.txt. You can keep the old one in Search Console for a few weeks: its indexed count should fall while the new one rises.
- Report the domain change if you are moving to a different domain or subdomain. Use the Change of Address tool after the site has been moved and redirected, from a single Google account with owner access to both properties. Submit it for every variant of the old domain, www and non-www, because a domain-level request doesn’t cover its subdomains, www included. You don’t need it for HTTP to HTTPS, www to non-www, or path changes within the same domain.
- Add the new site to Bing Webmaster Tools if you use it, and submit the new sitemap there.
- Check analytics: confirm GA4 is collecting page views and that key events, such as form submissions, are recorded.
Moving a website to a new server or host without changing URLs
The simplest migration is a move to a new server: the URLs stay the same, and only the hosting provider, server or CDN changes. You don’t need redirects or the Change of Address tool. Google still recommends a few steps:
- Copy and test before the DNS change. Move the site to the new server and check pages, images, forms and downloads. Protect a test version on a temporary hostname with a
noindextag or IP-restricted access. - A shorter TTL. At least a week before the move, lower the TTL on your DNS records, for example to a few hours. The new settings will reach users faster.
- Access for Googlebot. Make sure the firewall or DoS protection on the new server doesn’t block Googlebot. The URL Inspection tool in Search Console will show it.
- Search Console verification. The HTML verification file or meta tag has to be on the new server too.
- Blocks removed. Remove any build-time
noindexandDisallowrules before you update the DNS records. - Old hosting last. Watch traffic on both the old and the new server. Shut the old one down only when nobody, Googlebot included, is still using it.
Do the rest of the checklist, meaning the baseline, priority URL tests and monitoring, the same way as for any other migration. The PDF template has a separate “New server only” box for this.
After the migration: what to monitor for 8–12 weeks
The first few days surface technical bugs. The following weeks show whether Google has moved your visibility to the new URLs. Within 48 hours of launch, run a comparison crawl of the live site against your staging crawl. For the first 4 weeks, crawl the new site and review Search Console errors every day. After that, once a week, ideally on the same day, check:
- 404s and indexing. The Pages report in Search Console lists URLs with errors, excluded URLs and blocked URLs. Every new 404 on an old URL is a missing row in your redirect map.
- Sitemaps. The new sitemap should show a growing number of indexed URLs, and the old one a falling number. Redirect warnings in the old sitemap are expected.
- Server logs. Check your logs or the Crawl stats report to confirm Googlebot is fetching the new URLs and not hitting server errors.
- Traffic and rankings. Compare clicks, impressions and positions for priority queries against your baseline. Traffic to old URLs should fall while traffic to new ones rises.
- Redirect chains. Chains often appear after launch, for example old URL → HTTP → HTTPS → new URL. Collapse them to a single hop.
- Links. Fix any internal links that still go through redirects. Ask the owners of your most valuable backlinks to update them. Change the website URL in your Google Business Profile, on social profiles and in ad campaigns.
- AI answers. Once a month, check whether Google’s AI Overviews, ChatGPT and Perplexity still name your business when they answer your customers’ key questions. Our AI visibility checker can check this for you.
If traffic hasn’t recovered to pre-migration levels after 8–12 weeks, check every old URL from your redirect map with a crawler in list mode or a script: status code and target. Run the new site through our free SEO audit. The cause is usually missing redirects, removed content or blocked indexing.
Common website migration mistakes
- A staging noindex tag left on production. The site looks fine, but Google can’t index it. Make this the first test on launch day.
- Redirecting everything to the home page. Hundreds of old URLs pointed at the home page don’t pass on what they were about, and Google may treat them as soft 404s. Find the closest match, or return a 404 or 410.
- 302s instead of 301s. A temporary redirect doesn’t tell Google the new URL should replace the old one, so the old URL may stay in search results.
- Forgotten files and images. PDFs, images and old campaign pages often have backlinks. Without redirects, those links lead nowhere.
- Too many changes at once. New domain, new URLs, new content and a new design on the same day. Google suggests making changes like these one after another, for example the domain first and the design later. It also says that combining a move with a redesign of content and URL structure will probably cost some traffic, because Google may need to relearn and reassess individual pages. And when traffic drops, you can’t tell which change caused it.
- A server with no headroom. After a migration, Googlebot crawls the site more heavily than usual. A slow server or 5xx errors will drag out the transfer of visibility.
- No baseline. Without a pre-migration export, you can’t compare results or find the pages that lost traffic.
- Letting the old domain expire. Google recommends paying for the old domain for at least a year, so nobody else can buy it and misuse it. Once it lapses, the redirects stop working and so do the links pointing to old URLs.
Planning a new site? Add this website migration checklist to the project plan on day one, because the migration is easiest to plan alongside the design. See how we approach web design. If you would like a second pair of eyes on your plan before launch, order an SEO audit (from €350 net).
How to fill in the website migration checklist
The template has a migration card, a box for hosting-only moves, three task lists (before the move, launch day and after the move), a redirect map, a weekly tracker and a post-migration issue log. Work through it in this order:
- Describe the migration. On the migration card, tick what is changing: domain, URLs, CMS, protocol, server, or design only. Fill in the old and new domain and the launch date. The type of move decides which checklist items apply to you. For a hosting change alone, the “New server only” box plus the baseline, testing and monitoring is enough.
- Assign owners. Next to each task, write who owns it (developer, SEO, content owner) and the due date. Tasks without an owner are the ones that get skipped.
- Collect URLs and a baseline. Export a complete list of old URLs plus pre-migration data from Search Console and GA4. Note the export date and pick 20–50 priority URLs for testing.
- Fill in the redirect map. For every old URL, add the destination URL, the status code and a priority. Mark URLs with traffic or backlinks as high priority and test them first.
- Work through launch day in order. Follow the list as written: redirects, removing staging blocks, robots.txt, canonical tags, priority URL tests, sitemap, Search Console, Bing, analytics. Record each test result next to the task.
- Keep monitoring. Crawl the new site and check Search Console errors daily for the first 4 weeks. Until week 12, log clicks, impressions, 404 errors and the number of indexed URLs from the new and old sitemaps once a week. Add every new 404 to the redirect map.
Preview: the website migration checklist template
This is the full content of the PDF template. Use it right here, or get the printable version with space for owners and due dates, a redirect map for 20 URLs and a 12-week tracker.
Migration card
- Type of migration: ☐ new domain ☐ new subdomain ☐ new URLs or CMS ☐ HTTP → HTTPS ☐ new server or hosting ☐ redesign
- Old domain: ____________ New domain: ____________
- Staging URL: ____________ Launch date and time: ____________
- Owners: SEO ________ developer ________ content ________
- Data export date: ____________
New server or hosting only (same URLs)
- ☐ DNS record TTL lowered at least a week in advance
- ☐ Copy on the new server tested before the DNS change: pages, images, forms, downloads
- ☐ Firewall and DoS protection don’t block Googlebot
- ☐ Search Console verification works on the new server
- ☐ Build-time blocks removed before the DNS change
- ☐ Old hosting shut down only once it gets no traffic, Googlebot included
A. Before the move
- ☐ Complete list of old URLs: sitemaps, server logs, analytics, CMS, Links report, crawl
- ☐ Images, videos, PDFs, JavaScript and CSS files included
- ☐ Search Console export: pages and queries with the most clicks, number of indexed pages
- ☐ GA4 baseline: organic traffic and key events
- ☐ List of 20–50 priority URLs for testing
- ☐ List of sites linking to old URLs
- ☐ Redirect map: every old URL to its closest match, 301, no redirects to the home page
- ☐ Content with no equivalent set to return 404 or 410
- ☐ Staging protected by password, IP restriction or noindex (not Disallow alone), with a note of what to remove at launch
- ☐ Full staging crawl: status codes, noindex, canonical tags, links
- ☐ Self-referencing canonical tags on new URLs
- ☐ hreflang points to the new URLs, reciprocally across all language versions
- ☐ Internal links (menu, footer, body copy) changed to the new URLs
- ☐ Structured data, title tags and meta descriptions carried over
- ☐ GA4 and Tag Manager set up, key events tested
- ☐ New XML sitemap with final URLs only, old sitemap kept for monitoring
- ☐ Both sites verified in Search Console in every variant, verification survives the move, disavow file uploaded
- ☐ Purchased domain free of manual actions and URL removal requests from the previous owner
- ☐ Server has headroom for heavier Google crawling after launch (large site: hosting provider warned)
- ☐ Speed of the new version measured on staging (Lighthouse) and compared with the old one
- ☐ Launch outside peak season, developer available on launch day
B. Launch day
- ☐ Redirects from the map deployed
- ☐ noindex, password and unneeded Disallow rules removed (in WordPress: Settings → Reading)
- ☐ robots.txt checked, rules for Googlebot, Bingbot and AI crawlers same as on the old site
- ☐ Canonical tags point to the new URLs
- ☐ Priority URLs tested: status code, redirect target, title, content, forms
- ☐ New sitemap submitted in Search Console and listed in robots.txt (old one stays in Search Console for a few weeks)
- ☐ Change of Address tool submitted for every variant of the old domain (new domain or subdomain only)
- ☐ Bing Webmaster Tools: new site added, sitemap submitted
- ☐ GA4 collecting data, key events recorded
C. After the move (8–12 weeks)
- ☐ Within 48 hours: comparison crawl of the live site against the staging crawl
- ☐ Weeks 1–4: daily crawl of the new site, review of 404s and the Pages report, fixes added to the redirect map
- ☐ Weeks 1–2: redirect chains collapsed to a single hop
- ☐ Weeks 1–2: remaining internal links point to final URLs
- ☐ Weeks 2–4: most valuable backlinks updated
- ☐ Weeks 1–4: Google Business Profile, social profiles and ad campaigns use the new URL
- ☐ Every week: clicks, impressions and priority query positions compared with the baseline, server logs
- ☐ Every month: AI answers (Google AI Overviews, ChatGPT, Perplexity) to key questions
- ☐ Redirects and the old domain registration kept for at least a year
D. Redirect map
| # | Old URL | New URL | Code | Priority | Test (date, result) |
|---|---|---|---|---|---|
| e.g. | /services/web-design.html | /web-design/ | 301 | High | 12 Jan · OK |
| 1 | |||||
| 2 |
E. Weekly tracker
| Week | Date | Google clicks | Impressions | 404 errors | Indexed: new / old sitemap | Notes |
|---|---|---|---|---|---|---|
| Baseline | ||||||
| Week 1 | ||||||
| Weeks 2–12 |
F. Post-migration issue log
| Date | Issue (URL, symptom) | Cause | Fix | Owner | Done |
|---|---|---|---|---|---|
| ☐ |
Get the template (PDF)
We will email you the printable website migration checklist: before, launch-day and after tasks with space for owners and due dates, a hosting-only list, a redirect map for 20 URLs and a 12-week tracking table.
Related guides and tools
- Web design: a new site with a migration plan from day one
- SEO audit: a review of your migration plan and the new site before launch
- Free SEO audit: a quick check of up to 25 pages of the new site after the move
- Technical SEO audit checklist: the technical checks worth running after a move
- Canonical tag guide: how to set canonicals on your new URLs
- AI visibility checker: whether ChatGPT and AI Overviews still name your business
- Website brief template: order a new site with a redirect map and SEO requirements in the brief
- Content audit template: a URL inventory and one decision per page before the move
Frequently asked questions
The switch itself can happen in a day, but Google needs time to process the new URLs. Google’s documentation says a medium-sized site can take a few weeks or more, and larger sites take longer. Some ranking movement in that window is normal. That is why you should track results for 8–12 weeks and compare them with your pre-migration baseline.
As long as possible. Google recommends keeping redirects in place generally for at least a year. For a domain move submitted through the Change of Address tool, the minimum is 180 days, and longer if old URLs still get Google Search traffic. For users, it is best never to remove them, because old links in emails, documents and other sites keep working for years.
Only when you move a site to a different domain or subdomain, for example from old-company.com to new-company.com. Submit it after your 301 redirects are live, from a single Google account with owner access to both properties, separately for every variant of the old domain. You don’t need it for HTTP to HTTPS, www to non-www, or moving pages within the same domain.
Use 301 or 308, which are permanent redirects. They tell Google the new URL should replace the old one in search results. A temporary 302 or 307 doesn’t send that signal, so the old URL may stay in results. Set redirects up on the server, and treat JavaScript redirects as a last resort, because Google may not see them.
If your URLs stay the same, you don’t need redirects or the Change of Address tool. Copy the site to the new server and test it before you change DNS. At least a week earlier, lower the TTL on your DNS records. Also make sure the firewall doesn’t block Googlebot, and check that Search Console verification will work on the new server. Shut down the old hosting only once it gets no traffic.
If a page with closely related content exists, such as the category that absorbed removed posts, 301-redirect to it. If the content is gone with no replacement, return a 404 or 410. Don’t redirect everything to the home page. Google advises against irrelevant redirects like that and may treat them as soft 404s, and visitors still don’t get what they were looking for.
Sources
- Google Search Central: How to move a site (site moves with URL changes) (accessed November 11, 2026)
- Search Console Help: Change of Address tool (accessed November 11, 2026)
- Google Search Central: Redirects and Google Search (accessed November 11, 2026)
- Google Search Central: Changing your hosting (moves without URL changes) (accessed November 11, 2026)
- Google Search Central: Introduction to robots.txt (accessed November 11, 2026)
- Google Search Central: Tell Google about localized versions of your page (hreflang) (accessed November 11, 2026)
- web.dev: Web Vitals (LCP, INP and CLS thresholds) (accessed November 11, 2026)
- WordPress: Settings Reading screen (search engine visibility) (accessed November 11, 2026)