How to Migrate Your WordPress Site to FlyNode
Step-by-step guide to migrating an existing WordPress website directly to FlyNode using WPvivid server-to-server migration key, attaching your custom domain, and running 1-click database URL migration with zero downtime.
Migrate any existing WordPress website from your previous host (cPanel, Shared Hosting, VPS, or Cloud) directly to FlyNode with zero downtime using WPvivid's server-to-server 1-click migration key.
Zero-Downtime & No Upload Limits: Server-to-server migration sends data directly between servers over high-speed networks. You don't need to download gigabytes of backup files to your local PC or worry about PHP upload size limits.
Step 1: Deploy WordPress on FlyNode & Generate Migration Key
First, create your new WordPress container on FlyNode and generate a temporary secure transfer key.
- Open the FlyNode Console.
- Navigate to Deploy → 1-Click Apps and select WordPress (OpenLiteSpeed + Redis).
- Choose an app name, select your resources, and click Deploy.
- Once the deployment status reaches Running (typically in ~60 seconds), click the 1-Click WP Admin Login button in your app's Overview tab.
- In your new FlyNode WordPress admin dashboard:
- Go to Plugins → Add New.
- Search for
WPvivid, then click Install Now and Activate.
- In the left sidebar, go to WPvivid Backup → Key.
- Under Generate a Key, select key expiration (e.g.
2 hoursor8 hours) and click the Generate button. - Click Copy to copy the generated transfer key string to your clipboard.
Step 2: Connect Old Site & Transfer Server-to-Server
Now, connect your existing live website to your new FlyNode container and transfer all database tables, media, themes, and plugins directly.
- Log into your existing (old) WordPress site's WP Admin.
- Install and activate the free WPvivid Backup & Migration plugin (Plugins → Add New → search
WPvivid). - In your old site's admin sidebar, navigate to WPvivid Backup → Auto Migration.
- Paste the key you copied from FlyNode in Step 1 into the Enter the key here field and click Save. You will see a success confirmation showing connection to the destination server.
- Under Choose what to transfer, select Database + Files (Entire Website).
- Click the blue Clone then Transfer button.
- WPvivid will package your website and stream the files directly server-to-server to your FlyNode container. Wait for the transfer progress to reach 100%.
Restore Transferred Backup on FlyNode:
- Return to your new FlyNode WordPress site's WP Admin.
- Navigate to WPvivid Backup → Backup & Restore.
- Scroll down to the Backups table at the bottom. You will see the transferred backup package received from your old server.
- Click the Restore button next to the received backup.
- Click Restore on the popup modal to confirm. WPvivid will unpack and restore all database tables, files, and configurations.
- When finished, you will see a popup: "Restore completed successfully." Click OK.
Note on Admin Login: Once the restore finishes, your WordPress admin username and password will now match your old live site's credentials. Log back into WP Admin using your previous login details.
Step 3: Attach Your Custom Domain on FlyNode
Now that your site content is restored on FlyNode, connect your custom domain.
- In the FlyNode Console, open your WordPress app and click the Custom Domain tab.
- Click Add Custom Domain and enter your custom domain (e.g.
example.comorwww.example.com). - Configure your DNS records at your domain registrar or DNS host (Cloudflare, GoDaddy, Namecheap, Route 53, etc.):
| Type | Host / Name | Points to (Value) | Purpose |
|---|---|---|---|
A |
@ (root domain) |
46.224.103.251 |
Points apex domain (e.g. example.com) directly to FlyNode |
CNAME |
www (subdomain) |
your-app.flynode.io |
Points subdomain (e.g. www.example.com) to your app URL |
SSL is 100% Automated: As soon as DNS propagates (typically 1 to 5 minutes), FlyNode automatically provisions a Let's Encrypt TLS certificate via Traefik. HTTP is redirected to HTTPS automatically.
Step 4: WordPress Domain & URL Migration (Search & Replace)
When restoring a WordPress database, many URLs inside posts, page builders (Elementor/Divi), widgets, and options tables remain locked to your old host's domain or FlyNode's temporary *.flynode.io staging address.
FlyNode includes a built-in WP Engine Safe database migration tool that handles serialized PHP arrays, UTF-8 strings, and object keys without corrupting database data.
- In the FlyNode Console, stay on your app's Custom Domain tab.
- Scroll down to the WordPress Domain & URL Migration section.
- FlyNode automatically detects your currently active database URL:
- Search URL (Old Domain): Auto-populated with the detected address (e.g.
https://olddomain.comor your temporary FlyNode address). - Replace With (New Domain): Select or enter your newly configured domain (e.g.
https://example.com).
- Search URL (Old Domain): Auto-populated with the detected address (e.g.
- (Optional but recommended) Check the Dry run (test search without changing database) checkbox and click Simulate Search & Replace. You will see an exact count of how many rows in
wp_options,wp_posts, andwp_postmetawill be updated. - Uncheck Dry run, and click Migrate & Replace URLs.
FlyNode's migration engine will:
- Update
siteurlandhomein the options table. - Deep-replace internal media links, page builder CSS paths, and GUIDs.
- Flush the Redis Object Cache and LiteSpeed cache tags instantly.
Step 5: Verify Your Migrated Site
Your WordPress site is now completely migrated and running on FlyNode!
- Visit
https://yourdomain.comin an incognito window to verify pages, images, and styling. - Log into
https://yourdomain.com/wp-admin. - In WP Admin, navigate to Settings → Permalinks and click Save Changes once to refresh your rewrite rules.
- Under LiteSpeed Cache → Dashboard, ensure LiteSpeed Page Caching and Redis Object Caching show green and active.
Your WordPress site is now operating on an isolated container with enterprise-grade OpenLiteSpeed, Redis object caching, automated backups, and 1-click staging capabilities.
Still stuck?
Open a support ticket from your dashboard and include the container name.