StackForge Guide
April 27, 2026 · tutorial

How to Migrate WordPress to Kinsta (Free, No Downtime)

Kinsta includes free migrations by their team, but you can also do it yourself in under an hour. Step-by-step guide with DNS cutover that keeps your site live throughout.

Providers tested in this article

Kinsta offers free WordPress migrations done by their team — it's one of the underrated parts of their service. But if you want to do it yourself (faster, more control), this is the complete process including the DNS cutover that keeps your current site live until the new one is ready.


Two Options: DIY or Kinsta's Team

Kinsta's free migration service:

  • Submit a request through your MyKinsta dashboard
  • Their team handles file transfer, database import, and staging verification
  • Timeline: 24–48 hours depending on site size
  • Limitation: you need to trust someone else has hands on your database

DIY migration:

  • Takes 45–60 minutes for most sites
  • You control every step
  • Faster for small-to-medium sites
  • Required if you want to do it during off-hours

This guide covers the DIY approach. If you prefer Kinsta's team, the process is: MyKinsta → Sites → Add new site → Migrate existing site → fill in form.


Before You Start

Check your site size:

# Run on your current server
du -sh /var/www/html/wp-content/
mysqldump --no-tablespaces -u DBUSER -p DBNAME | wc -c

For sites under 5GB, this process takes under an hour. For larger sites, plan for 2–3 hours.

Create a staging site on Kinsta first:

  • MyKinsta → Add new site → Create new WordPress site
  • Choose your data center (closest to your audience)
  • Note the temporary domain: yoursite.kinsta.cloud

Step 1: Export Your Current Site

Option A — Via WP plugin (easier): Install the All-in-One WP Migration plugin on your current site. Export to file. If your site is under 2GB, this is the simplest path.

Option B — Manual (recommended for larger sites):

Export the database:

mysqldump --no-tablespaces -u DBUSER -p DBNAME > site-backup.sql

Archive the WordPress files:

tar -czf wp-content-backup.tar.gz /var/www/html/wp-content/

Download both files to your local machine.


Step 2: Upload Files to Kinsta

Connect to your new Kinsta site via SFTP (credentials in MyKinsta → Sites → [your site] → SFTP/SSH):

sftp kinsta_username@sftp.kinsta.cloud
cd /www/sitename/public/wp-content/
put -r ./wp-content/uploads/
put -r ./wp-content/themes/
put -r ./wp-content/plugins/

Or use FileZilla for a GUI alternative if you prefer not to use SFTP commands.


Step 3: Import the Database

In MyKinsta, go to Sites → [your site] → Database → phpMyAdmin.

  1. Select your database in the left panel
  2. Import tab → Choose file → select your .sql file
  3. Click Import

For sites with databases over 500MB, use the SSH method instead:

# Connect via SSH (credentials in MyKinsta)
mysql -u kinsta_db_user -p kinsta_db_name < site-backup.sql

Step 4: Update wp-config.php

Kinsta auto-configures wp-config.php when you create the site. But if you imported an existing wp-config.php, you need to update the database credentials:

# In MyKinsta → Sites → Info, find your DB credentials
define('DB_NAME', 'your_kinsta_db_name');
define('DB_USER', 'your_kinsta_db_user');
define('DB_PASSWORD', 'your_kinsta_db_pass');
define('DB_HOST', 'localhost');

Also add if it's not there:

define('WP_CACHE', true);

Step 5: Update URLs in the Database

Your database still has your old domain. Run this from MyKinsta → Sites → [your site] → SSH:

wp search-replace 'https://oldsite.com' 'https://yoursite.kinsta.cloud' --all-tables

This updates all references including serialized PHP data — don't manually search-replace in SQL, it breaks serialization.


Step 6: Verify on the Temporary Domain

Visit https://yoursite.kinsta.cloud and check:

  • Site loads correctly
  • Images appear
  • Navigation works
  • If WooCommerce: test a product page and cart
  • Admin login works at yoursite.kinsta.cloud/wp-admin

Common issues at this stage:

  • Mixed content warnings: SSL is already on Kinsta but your database has http:// links. Run the search-replace command again: wp search-replace 'http://yoursite.kinsta.cloud' 'https://yoursite.kinsta.cloud'
  • Plugin activation failures: Some plugins store full file paths. Deactivate and reactivate them.

Step 7: DNS Cutover (Zero Downtime)

This is the part most guides get wrong. The goal: your old site stays live until Kinsta is fully working.

Before changing DNS:

  1. In MyKinsta, add your real domain: Sites → Domains → Add domain
  2. Kinsta will provision a free SSL certificate automatically (takes 2–5 minutes)
  3. Run the search-replace again with your real domain:
    wp search-replace 'https://yoursite.kinsta.cloud' 'https://yourrealsite.com' --all-tables
    

The DNS change:

  • Lower your TTL to 300 seconds (5 minutes) at least 24 hours before the switch
  • At the cutover moment: change your A record to Kinsta's IP (shown in MyKinsta → Domains)
  • DNS propagates within 5–30 minutes with a low TTL

During propagation: some visitors still hit your old host. That's fine — both are running the same database state from before the cutover. There's no data divergence as long as you switch DNS and point your domain within 15 minutes.


Step 8: Post-Migration Checklist

Once DNS has propagated:

  • Run Google PageSpeed Insights — verify LCP improvement
  • Enable Kinsta's Nginx cache in MyKinsta → Cache
  • Enable Redis object cache: install the Redis Object Cache plugin → connect to Kinsta's Redis endpoint
  • Submit updated sitemap to Google Search Console
  • Monitor 404 errors in Search Console for 7 days (some URLs may have changed)
  • Cancel your old hosting (most billing cycles, you have a few weeks)

What to Expect After Migration

In our tests, moving a WooCommerce site from SiteGround to Kinsta reduced TTFB from 441ms to 312ms — a 29% improvement. LCP dropped from 1.6s to 0.8s with Kinsta's caching and Redis configured.

The migration itself is the easy part. The performance gains are immediate and measurable. The question is whether your site's revenue justifies the $35/mo vs whatever you were paying. For most WooCommerce stores doing $5k+/mo, it does.

Ready to upgrade your hosting?