GuideWordPressNext.js

Website migration checklist: everything you need to know

Migrating your website is a big step. This comprehensive 12-step checklist covers everything from content audit to post-launch monitoring, so nothing gets missed.

M

MigrateLab Team

Migration Experts

9 min readApril 3, 2026
Website migration checklist: everything you need to know

The fear is understandable. The process is manageable.

Website migration anxiety is real. Your current site is live, it works (mostly), customers find you through it, and the thought of breaking something during a migration is enough to keep most business owners on WordPress long past the point where it makes sense. We understand that fear. We have managed dozens of migrations and seen what can go wrong when the process is not handled carefully.

But we have also seen something else: when a migration follows a structured, disciplined process, it goes smoothly. The horror stories come from rushed migrations, skipped steps, and missing redirect maps — not from the migration concept itself. A well-planned migration preserves every URL, every page, every SEO ranking, and every integration. Your visitors will notice the speed improvement. They will not notice the platform change.

This checklist is the process we follow for every migration. It covers everything from the initial audit through 2 weeks of post-launch monitoring. Use it as a reference whether you are doing the migration yourself, working with us, or evaluating another agency.

Before the migration: planning and audit

Step 1: Audit your current site

Before you can migrate, you need a complete inventory of what exists. This is the most important step and the one most often rushed. A thorough audit covers:

  • Page inventory. List every page on your site — not just the main navigation pages, but landing pages, blog posts, legal pages, utility pages (404, search results), and any pages created by plugins. Use Screaming Frog or a sitemap to ensure completeness.
  • Content types. Identify all content types: pages, blog posts, case studies, team bios, testimonials, FAQs, product descriptions. Each type may need a different template in the new site.
  • Integrations. Document every external service your site connects to: contact forms (where do submissions go?), analytics (Google Analytics, HubSpot), CRM integrations, email marketing (Mailchimp, ConvertKit), chat widgets, payment processors, scheduling tools (Calendly).
  • Media assets. Count and catalog your images, videos, PDFs, and downloadable files. Note total file size — large media libraries need a separate migration plan.
  • Functionality. List every feature your site provides beyond content display: search, filtering, user accounts, e-commerce, membership areas, calculators, interactive tools.

Step 2: Document all URLs for redirect mapping

This step prevents SEO damage. Every URL on your current site needs to map to a URL on the new site. If a page existed at /services/web-design/ and moves to /services/web-design (note the trailing slash difference), that needs a 301 redirect. If a blog post URL changes from /2024/03/my-post/ to /blog/my-post, that needs a redirect.

Create a spreadsheet with two columns: old URL and new URL. Include every page, every blog post, every media file URL, and every URL that has ever appeared in Google Search Console. This is tedious but critical. A single broken URL can mean lost search traffic for that page.

Step 3: Export all content and media

Extract everything from your current CMS. For WordPress, this means:

  • Export all pages and posts as WordPress XML (Tools > Export)
  • Download the entire wp-content/uploads directory (all media files)
  • Export any custom post types, ACF field data, and WooCommerce products
  • Save all plugin configuration settings you will need to replicate
  • Export any form submission history you want to preserve

Store this export securely. It is your backup and your source data for content migration. Do not rely on the live site as your data source during migration — always work from the export.

During the migration: building the new site

Step 4: Choose your target stack

The right stack depends on your needs. The most common options:

  • Next.js + Tailwind CSS — the most popular choice. Full React framework with server-side rendering, static generation, and API routes. Best for marketing sites, content sites, and applications.
  • Astro — excellent for content-heavy sites (blogs, documentation, portfolios). Ships zero JavaScript by default for ultra-fast load times. Supports React, Vue, and Svelte components.
  • Remix — great for highly interactive applications with complex data loading patterns. Less common for marketing sites.

For most business websites, Next.js with Tailwind is the standard choice. It has the largest community, the best AI tool support, and the most flexible deployment options.

Step 5: Set up hosting

Modern hosting is dramatically simpler and cheaper than WordPress hosting:

  • Vercel — the company behind Next.js. Free tier is generous, Pro is $20/month. Automatic deployments from Git, edge CDN, preview deployments.
  • Cloudflare Pages — free tier with generous limits. Built-in CDN, edge functions, analytics.
  • Netlify — similar to Vercel with a strong free tier. Good for Astro and static sites.
  • VPS (Coolify, Dokku) — self-hosted option if you prefer full control. $5-20/month for a VPS.

Step 6: Rebuild the design in code

This is the core of the migration: translating your existing design (or an improved version of it) into code components. Each page becomes a React component. Reusable elements — headers, footers, buttons, cards — become shared components. The design is implemented with Tailwind CSS utilities, ensuring consistent spacing, typography, and responsive behavior.

AI tools like Claude Code accelerate this step significantly. Provide a screenshot or description of a page section, and the AI generates the corresponding code. A skilled developer using AI tools can rebuild a typical 20-page site in 3-5 days.

Step 7: Migrate all content

Content migration is transferring all text, images, and structured data from the WordPress export into the new site. For simple sites, this is manual — copying content into components or a headless CMS. For large content sites (50+ blog posts), automated scripts can parse the WordPress XML export and create entries in the new CMS.

Image migration includes downloading all media, optimizing file sizes, converting to modern formats (WebP, AVIF), and updating all internal image references.

Step 8: Set up 301 redirects

Using the redirect map from Step 2, configure 301 (permanent) redirects for every URL that has changed. In Next.js, redirects are defined in next.config.js or middleware. Test every redirect — each one should return a 301 status code and correctly point to the new URL. Missing or broken redirects are the most common cause of post-migration SEO drops.

Step 9: Reconnect forms, analytics, and CRM

Every integration documented in Step 1 needs to work on the new site:

  • Contact forms should submit to the same email address or CRM as before
  • Google Analytics (GA4) tracking code needs to be added to the new site
  • HubSpot, Mailchimp, or other marketing tools need updated embed codes or API connections
  • Chat widgets, booking tools (Calendly), and payment processors need re-integration
  • Social media meta tags (Open Graph, Twitter Card) need to be set for sharing

Launch and post-launch

Step 10: Test everything

Before flipping the DNS switch, test comprehensively:

  • Every page loads correctly on desktop and mobile
  • All forms submit successfully and notifications are delivered
  • All images display at correct sizes and resolutions
  • Internal links point to correct pages
  • External links work and open in new tabs where appropriate
  • Lighthouse scores meet expectations (90+ for Performance, Accessibility, SEO)
  • The site works correctly with JavaScript disabled (for SEO and accessibility)
  • 301 redirects work for every URL in your redirect map

Step 11: DNS switchover

The DNS switch is what makes the new site live. Update your domain's DNS records to point to the new hosting. With proper configuration, this is a zero-downtime operation:

  1. Set low TTL (300 seconds) on DNS records 24-48 hours before the switch
  2. Update DNS records to point to new hosting
  3. Monitor traffic to confirm visitors are reaching the new site
  4. Keep the old site accessible (but not public) for 2 weeks as a fallback

DNS propagation typically takes 1-4 hours. During this window, some visitors may see the old site and others the new site. Both should work during this period.

Step 12: Monitor for 2 weeks post-launch

The first two weeks after launch are the monitoring phase. Watch for:

  • Google Search Console. Check for crawl errors, indexing issues, and any significant changes in search impressions or clicks. Submit your new sitemap. Monitor for 404 errors that indicate missing redirects.
  • Analytics. Verify that traffic levels are consistent with pre-migration levels. If you see a significant drop, check redirects and indexing status immediately.
  • Forms and conversions. Confirm that form submissions are arriving and conversion tracking is working. Test every form yourself within the first 24 hours.
  • Performance. Run Lighthouse audits weekly. Performance should be significantly better than the old site. If scores are lower than expected, investigate and optimize.
  • User feedback. Pay attention to any customer complaints about broken pages, missing content, or navigation issues. Address them immediately.

The timeline for a typical migration

For a business site with 10-30 pages, a blog, and standard integrations, the typical timeline is:

  • Week 1: Audit, planning, and redirect mapping (Steps 1-3)
  • Week 1-2: Design rebuild and content migration (Steps 4-7)
  • Week 2-3: Redirects, integrations, and testing (Steps 8-10)
  • Week 3: Launch and monitoring begins (Steps 11-12)

Larger sites or complex integrations extend this timeline. A 100-page site with WooCommerce might take 4-6 weeks. A simple 10-page marketing site can be done in under a week.

What a good migration preserves

When a migration is done right, nothing is lost:

  • Every page and piece of content is preserved or improved
  • Every URL either stays the same or has a proper 301 redirect
  • SEO rankings are maintained (and usually improve within 2-3 months due to better Core Web Vitals)
  • All integrations (forms, analytics, CRM) continue to work
  • The design looks the same or better, but loads 3-5x faster

The fear of migration is valid. The risk, when following a disciplined process, is minimal. The reward — faster performance, lower costs, better security, and AI editability — lasts for years.

1-3 weeks

Typical Timeline

For a standard business site with 10-30 pages

100%

SEO Preserved

With proper redirect mapping and meta tag migration

$0/mo

Hosting After

Modern hosting free tiers cover most business sites

5x

Speed Improvement

Average page load improvement after migration

The Complete Migration Checklist

1

1. Audit current site (pages, content, integrations)

Create a complete inventory: every page, blog post, content type, media asset, and external integration. Use Screaming Frog or your sitemap to ensure nothing is missed. Document every plugin and what it does — each one represents functionality that needs to exist on the new site.

Tip: This step is tedious but prevents surprises later. A missed integration discovered after launch is much more stressful than one documented during planning.

2

2. Document all URLs for redirect mapping

Create a spreadsheet mapping every old URL to its new URL. Include all pages, posts, media files, and any URL that appears in Google Search Console. This is the single most important step for preserving SEO rankings. Test every redirect before launch.

Tip: Export all indexed URLs from Google Search Console for a complete list. URLs you forgot about may still receive search traffic.

3

3. Export all content and media

Download everything: WordPress XML export, wp-content/uploads directory, ACF field data, form submission history, and any plugin data you need. Store securely. This export is your source of truth during migration — never rely on the live site.

Tip: Take a full backup of the WordPress database and files before starting any migration work.

4

4. Choose target stack (Next.js, Astro, etc.)

Select the framework that best fits your needs. Next.js is the most common choice for business sites — it offers static generation, server-side rendering, and strong AI tool support. Astro is excellent for content-heavy sites. Consider community size, hosting options, and long-term maintainability.

Tip: For most business websites, Next.js + Tailwind CSS is the standard recommendation. It has the broadest support from AI editing tools.

5

5. Set up hosting (Vercel, Cloudflare, Netlify)

Choose and configure your hosting platform. Vercel, Cloudflare Pages, and Netlify all offer generous free tiers with automatic deployments from Git. Connect your repository, configure build settings, and verify that preview deployments work correctly.

Tip: Set up the hosting early so you can deploy and test throughout the build process, not just at the end.

6

6. Rebuild the design in code

Translate your existing design into React components with Tailwind CSS. Build reusable components for headers, footers, cards, and common UI elements. AI tools like Claude Code can significantly accelerate this step — describe a page section and get production-quality code in minutes.

Tip: Start with the homepage and work outward. Reusable components built for the homepage will speed up the rest of the pages.

7

7. Migrate all content

Transfer all text, images, and structured data from the WordPress export into the new site. For blogs, use automated scripts to parse WordPress XML and create CMS entries. Optimize all images (WebP, responsive sizes) during migration.

Tip: Batch-process images with a script rather than optimizing them one by one. This saves hours on content-heavy sites.

8

8. Set up 301 redirects

Configure 301 redirects in next.config.js or middleware using your redirect map from Step 2. Every changed URL must return a 301 status code pointing to the correct new URL. Test every redirect individually.

Tip: Use a redirect testing tool or script to verify all redirects at once. One broken redirect can mean lost search traffic for that page indefinitely.

9

9. Reconnect forms, analytics, CRM

Re-integrate every external service: contact form submissions, Google Analytics tracking, HubSpot or Mailchimp connections, chat widgets, booking tools, and payment processors. Test each integration by submitting real data and verifying it arrives at the correct destination.

Tip: Test form submissions by actually submitting them and checking that emails, CRM entries, and notification flows all work end-to-end.

10

10. Test everything (mobile, speed, links)

Comprehensive QA: check every page on desktop and mobile, test all forms, verify all images, click every internal link, run Lighthouse audits (target 90+ on all categories), and test the site with JavaScript disabled. Check that meta tags and Open Graph data are correct for every page.

Tip: Have someone who did not build the site test it. Fresh eyes catch issues that the builder is blind to.

11

11. DNS switchover (zero downtime)

Lower DNS TTL to 300 seconds 24-48 hours before the switch. Update DNS records to point to the new hosting. Monitor traffic to confirm visitors are reaching the new site. Keep the old site accessible as a fallback for 2 weeks.

Tip: Schedule the DNS switch during a low-traffic period (typically Tuesday or Wednesday morning). Avoid Fridays.

12

12. Monitor for 2 weeks post-launch

Watch Google Search Console for crawl errors and indexing issues. Verify analytics traffic levels match pre-migration levels. Check form submissions daily. Run weekly Lighthouse audits. Address any user-reported issues immediately. Submit your new sitemap to Search Console.

Tip: Set up alerts in Google Search Console and your analytics tool so you are notified of any significant drops immediately.

FeatureDIY MigrationProfessional Migration
Timeline3-8 weeks (learning + building)1-3 weeks (experienced process)
SEO riskHigher (redirect mistakes are common)Lower (systematic redirect mapping)
Cost$0 cash + 50-100 hours of your time$2,000-8,000 one-time investment
Result qualityVariable (depends on your experience)Production-grade (professional standards)
Post-launch supportYou troubleshoot everything yourselfIncluded monitoring + fix period
Learning valueHigh (you learn the new stack)Lower (but you get AI editing training)

Ready to plan your migration?

We'll walk through this checklist with you for free — audit your current site, estimate the timeline and cost, and answer every question. No obligation, just a clear picture of what the migration looks like for your specific site.