Back to Blog
2025-01-27|10 min read

Website migration checklist: 47 things to check before, during & after

Complete website migration checklist: 47 items to check before, during & after. From content backup to DNS setup. Tested across 5 successful migrations.

Website migration checklist: 47 things to check before, during & after

After migrating 5 websites, I've learned that success comes down to process. Miss one step and you end up with broken forms, lost SEO, or panicked clients.

This is the exact checklist I use for every migration. 47 items organized by phase: before, during, and after.

Copy it. Use it. Don't skip steps—even when you're confident.


Before migration (15 items)

This phase is about preparation. Rushing here causes problems later.

Content backup

  • 1. Screenshot every page — Open each page, take a full-page screenshot. You'll reference these when rebuilding.

  • 2. Copy all text content — Paste into Google Docs or Notion. Organize by page. Include headings, body text, button labels, everything.

  • 3. Download all images — Use a bulk image downloader extension. Organize into folders matching your site structure.

  • 4. Export available data — Blog posts, products, form submissions—whatever the platform lets you export. Don't trust it completely, but grab it anyway.

  • 5. Document embedded content — YouTube videos, maps, social feeds, calendars. Note the embed codes or source URLs.

  • 6. Save custom code — Any scripts, tracking codes, or custom CSS. Copy them somewhere safe.

SEO preservation

  • 7. Create URL inventory — Spreadsheet with every page URL. This is critical for redirects.

  • 8. Document meta titles and descriptions — For every page. You'll recreate these exactly.

  • 9. Note current Google rankings — Search for your key terms. Screenshot where you rank. This is your baseline.

  • 10. Export Google Search Console data — Download performance reports. You'll compare after migration.

  • 11. Check for existing redirects — Some pages might already redirect. You need to preserve these chains.

Feature inventory

  • 12. List all forms — Contact forms, newsletter signups, booking forms. Note where submissions currently go.

  • 13. Document integrations — CRM connections, email marketing, payment processors, analytics, chat widgets.

  • 14. Identify interactive elements — Galleries, sliders, calculators, search, filters. Each needs rebuilding.

  • 15. Note third-party services — What accounts/APIs power current features? Make sure you have access.


During migration (18 items)

This is the building phase. Thorough testing prevents launch-day disasters.

Development setup

  • 16. Initialize project correctly — Next.js with TypeScript, Tailwind CSS, proper folder structure. Get the foundation right.

  • 17. Set up version control — Git repository from day one. Commit frequently with clear messages.

  • 18. Configure CMS — Tina CMS or your chosen system. Define content schemas that match your needs.

  • 19. Set up local development — Make sure npm run dev works. Test the build process early.

  • 20. Create environment variables — API keys, CMS tokens, form endpoints. Never commit these to git.

Content transfer

  • 21. Build page templates — Homepage, about, services, blog list, blog post. Create reusable components.

  • 22. Transfer text content — Page by page. Check formatting. Preserve heading hierarchy.

  • 23. Optimize and upload images — Compress first (TinyPNG/Squoosh). Use descriptive file names. Add alt text.

  • 24. Recreate blog posts — Transfer each post. Check formatting, images, internal links.

  • 25. Implement forms — Connect to Formspree or your form handler. Test that submissions arrive.

  • 26. Rebuild interactive features — Galleries, calculators, whatever your site needs. Test each one.

Testing

  • 27. Test on mobile devices — Real phones, not just browser simulation. iPhone and Android minimum.

  • 28. Test on multiple browsers — Chrome, Safari, Firefox, Edge. Things break in unexpected ways.

  • 29. Test all forms — Submit test data. Verify it arrives where expected. Check confirmation messages.

  • 30. Test all links — Internal and external. Use a link checker tool or do it manually.

  • 31. Run Lighthouse audit — Aim for 90+ performance. Fix issues before launch.

  • 32. Verify responsive design — Check every page at different screen widths. No horizontal scrolling.

  • 33. Test CMS editing — Can you edit pages? Add blog posts? Upload images? Do it yourself before showing client.


After migration (14 items)

Launch day and beyond. This phase determines long-term success.

DNS and deployment

  • 34. Deploy to staging first — Cloudflare Pages preview URL or similar. Full testing before touching DNS.

  • 35. Document current DNS records — Screenshot everything. MX records for email are critical.

  • 36. Configure new DNS carefully — Add all records to new host before switching nameservers.

  • 37. Switch DNS during low traffic — Evening or weekend. Have rollback plan ready.

  • 38. Verify email still works — Send and receive test emails immediately after DNS switch.

  • 39. Test site on live domain — Everything should work exactly like staging.

SEO and monitoring

  • 40. Submit sitemap to Search Console — Help Google discover your new site structure.

  • 41. Set up 301 redirects — Every old URL that changed needs a redirect. Test each one.

  • 42. Monitor for 404 errors — Check Search Console daily for first two weeks. Fix any crawl errors.

  • 43. Verify analytics tracking — Google Analytics receiving data? Events firing correctly?

  • 44. Check Google rankings — Compare to your baseline. Small fluctuations are normal; big drops need investigation.

Client handoff

  • 45. Record training video — 15-20 minutes covering common tasks. Screen share walking through the CMS.

  • 46. Create written documentation — Quick reference guide with screenshots. "How to edit homepage," "How to add blog post," etc.

  • 47. Establish support period — 2 weeks of availability for questions. Define how to contact you for issues.


The items that matter most

If you're short on time, these are the ones that cause the biggest problems when skipped:

#7 — URL inventory: Changing URLs without redirects killed a client's traffic for 3 months. I'll never skip this again.

#12 — Form inventory: A broken contact form went unnoticed for a week. The client lost leads. Now I test forms obsessively.

#27 — Mobile testing: Launched a site that looked broken on phones. Embarrassing and preventable.

#36 — DNS configuration: Broke a client's email for 6 hours by not preserving MX records. Worst day of my migration career.

#41 — 301 redirects: See #7. SEO preservation depends on this.


Time breakdown by phase

Here's how long each phase typically takes:

PhaseItemsTime (experienced)Time (first-timer)
Before migration153-4 hours5-8 hours
During migration188-12 hours15-25 hours
After migration143-5 hours5-8 hours
Total4714-21 hours25-41 hours

Content-heavy sites (lots of blog posts, many pages) take longer. Simple 5-page sites are faster.

The "during migration" phase varies most. If you have templates and components ready, building is quick. If you're figuring things out as you go, budget extra time.


Common shortcuts that backfire

"I'll set up redirects later"

No. Set them up before launch. Every day without redirects is lost SEO equity.

"Mobile looks fine in browser dev tools"

Test on real devices. Browser simulation misses touch interactions, actual rendering speed, and real-world network conditions.

"The form worked yesterday"

Test again on launch day. Something always changes between staging and production.

"I'll document the CMS later"

Record the training video while the site is fresh in your mind. Waiting means forgetting details.

"DNS propagation takes 48 hours, I'll check tomorrow"

Monitor immediately. Most issues appear within the first hour. Waiting means more downtime.


How I use this checklist

I don't just read through it once. Here's my actual process:

Day 1: Items 1-15 (before migration)

  • Print checklist or open in Notion
  • Check off each item as completed
  • Don't start building until all 15 are done

Days 2-4: Items 16-33 (during migration)

  • Work through systematically
  • Test as I build, not just at the end
  • Re-test items 27-33 multiple times

Day 5-6: Client review

  • Show staging site
  • Gather feedback
  • Make adjustments
  • Re-run items 27-33

Day 7: Items 34-47 (after migration)

  • Launch during low-traffic window
  • Monitor obsessively for first 24 hours
  • Complete training and handoff

Weeks 1-2: Ongoing monitoring

  • Check Search Console daily
  • Respond to client questions
  • Fix any issues immediately

When to use this checklist

Full checklist (all 47 items):

  • Professional client work
  • Business-critical websites
  • Sites with SEO traffic to preserve
  • Complex sites with many features

Abbreviated version (focus on starred items):

  • Personal projects
  • Simple sites (under 5 pages)
  • Sites without existing SEO
  • Quick rebuilds

Never skip:

  • URL inventory and redirects (items 7, 41)
  • Form testing (items 12, 25, 29)
  • Mobile testing (item 27)
  • DNS documentation (items 35, 36)

The reality of DIY migration

This checklist represents 15-25 hours of work for someone who knows what they're doing.

For first-timers, it's 25-40+ hours. Not because the tasks are hard, but because:

  • You're learning tools while using them
  • You'll make mistakes and backtrack
  • Troubleshooting takes longer without experience
  • You don't have templates and shortcuts built up

Honest assessment:

If you're technical, have time, and enjoy this kind of work—use this checklist and go for it. You'll learn a lot.

If your time is worth €30+/hour and you'd rather focus on your business—hiring someone makes financial sense. 30 hours × €30 = €900 in time cost. My service is €500.


Ready to migrate?

If you want to DIY:

Use this checklist. Follow it religiously. Don't skip steps because you're confident—that's when mistakes happen.

Also helpful:

If you want me to handle it:

I follow this exact checklist for every client. All 47 items, every time. That's why my migrations go smoothly.

  • Complete migration: €500
  • Timeline: 5-7 days
  • All 47 checklist items completed
  • Training and 2 weeks support included

See my service on Fiverr →

Questions about your specific migration?

Contact me. I'll help you figure out if DIY makes sense or if hiring is the better path—no pressure either way.

Arnau Requena

Arnau Requena

Product guy and startup founder. Using AI to build beautiful and functional websites that convert. Helping others do the same.

Stay Updated

Subscribe to get notified about new articles, ways to leverage AI tools and learn from my mistakes.