Migrating a WordPress site? Plugins like All-in-One WP Migration or Duplicator are great — until they fail. That’s why in real-world scenarios, manual migration is often the safest and most reliable method.
We recently migrated a large (2GB+) site manually from shared hosting to VPS, and here’s the exact step-by-step process we followed — easy to understand, plugin-free, and complete with practical tips👇
💡 Why Manual Migration Instead of Plugins?
Plugins are helpful — but only when they work. In many real-world projects, they fall short:
Plugin fails to create a backup — it gets stuck, throws errors, or doesn’t generate the file
Site size is too large (1–2 GB or more), causing timeouts or import failures
Custom configurations or database structures aren’t handled well by plugins
Limited hosting resources (shared plans) don’t allow plugin-based migration to run smoothly
You want full control and transparency over every step of the process
That’s why manual migration still remains the go-to method for developers and agencies handling complex or large websites.
Manual WordPress Migration – Step-by-Step
🔹 1. Backup the Site (Files + Database)
Download Website Files
𝗜𝗳 𝘂𝘀𝗶𝗻𝗴 𝗰𝗣𝗮𝗻𝗲𝗹:
It’s best to zip the entire public_html folder (or your site’s root directory) before downloading — this makes the download faster and avoids file corruption.
𝗜𝗳 𝘆𝗼𝘂 𝗱𝗼𝗻’𝘁 𝗵𝗮𝘃𝗲 𝗰𝗣𝗮𝗻𝗲𝗹 𝗮𝗰𝗰𝗲𝘀𝘀:
Use FTP to download the folder manually, just note that it may take longer, especially for large websites.
👉 If your site is installed in a custom folder (not public_html), make sure you download the correct root directory.
Download Website Database
Open phpMyAdmin, select your site’s database, and click Export.
👉 For large databases, it’s better to export in .sql.gz (compressed) to avoid timeouts and make the upload process faster during import.
🔹 2. Upload Files to the New Server
Log into your new hosting control panel or connect via FTP
Upload the zipped folder to public_html (or custom directory)
Extract the files using File Manager or unzip command via SSH
🔹 3. Create a New Database
Go to MySQL Databases in your hosting panel
Create a new database, a new user, and assign the user full privileges
Save the credentials — you’ll need them in the next step
🔹 4. Import the Old Database
Open phpMyAdmin on the new server
Select the new database → click Import → upload your .sql or .sql.gz file
Wait for the import to complete — large files may take time
🔹 5. Update wp-config.php
In the new server’s file manager, open wp-config.php and update the following lines:
define(‘DB_NAME’, ‘your_new_db’);
define(‘DB_USER’, ‘your_db_user’);
define(‘DB_PASSWORD’, ‘your_password’);
define(‘DB_HOST’, ‘localhost’);
Make sure your database prefix ($table_prefix) matches the one in the imported database.
🔹 6. Update Site URL (If Domain Has Changed)
In phpMyAdmin, run this SQL query to update your site URL:
UPDATE yourprefix_options
SET option_value = ‘https://newsite.com’
WHERE option_name = ‘siteurl’ OR option_name = ‘home’;
⚠ Replace yourprefix_ with the actual database table prefix used in your site (check wp-config.php).
🔹 7. Point Your Domain to the New Server
Update the domain’s nameservers or A record to point to your new server IP
DNS propagation can take 15 minutes to 24 hours
🔹 8. Reset Permalinks (Important)
After the site is live on the new server:
👉 Go to WordPress Dashboard → Settings → Permalinks → Save Changes This will regenerate .htaccess and prevent broken links or 404s.
🔹 9. Post-Migration Checks
✅ Browse all key pages
✅ Test forms, login, search, cart (if applicable)
✅ Make sure images, media, and menus are working
✅ Install SSL and force HTTPS
✅ Clear all cache and enable backup plugins again
🧠 Bonus Tips
Use the Better Search Replace plugin to fix any leftover old URLs inside content or serialized data
Set up a CDN like Cloudflare for faster delivery
Run speed tests on GTmetrix or PageSpeed Insights
Delete temporary ZIP files and install a backup plugin for regular backups
🧩 Final Thoughts
Manual WordPress migration might take a little more time, but it gives you full control, better performance, and fewer surprises.
If you’re working with large sites or handling client projects, mastering manual migration is a must-have skill 🧰