How to Migrate a WordPress Site to NexzaHost
Moving a live WordPress site sounds risky and is not, provided you test before switching DNS. The rule that makes it safe: the old site stays live until the new one is verified working.
The easy option: let us do it
Free migration is included on every plan, and it is what we would recommend. Send us your current host's cPanel login (or FTP plus database access) on WhatsApp and we handle files, database, email accounts, cron jobs and DNS.
Most migrations complete within a business day. Your existing site stays online throughout, and we tell you when it is ready to test.
Two things that make it faster: tell us your domain and current host up front, and mention anything unusual — a staging site, a custom cron, mail hosted elsewhere.
The rest of this guide is for doing it yourself.
Step 1 — Back up everything first
On the old host, before touching anything:
- Files — compress
public_htmlin File Manager and download the archive - Database — phpMyAdmin → select the database → Export → Quick, SQL format
Keep both together with today's date. Do not skip this because you plan to use a plugin — plugin exports fail silently more often than people expect.
Step 2 — Copy the site across
Using a migration plugin
Duplicator, All-in-One WP Migration or Migrate Guru package the site into a single file you restore here. Simplest for small and medium sites.
The catch: plugin migrations run as PHP and can time out on large sites, producing an archive that looks complete and is not. If your site is over about 1 GB, use the manual method instead.
Manually
1. Upload your files archive to public_html here and extract it
2. Create a database and user in cPanel → MySQL Databases, assign the user with ALL PRIVILEGES
3. Import your SQL file via phpMyAdmin
4. Edit wp-config.php with the new database name, user and password. Note cPanel prefixes both with your account username
That fourth step is where most manual migrations fail — the old credentials are carried over and the site shows "Error establishing a database connection". We have a separate guide for that error.
Step 3 — Test before touching DNS
This is the step that makes the whole thing safe, and the one people skip.
Ask us for a temporary URL so you can load the new copy while DNS still points at the old host. Then check:
- The homepage and several inner pages
- Images and media loading
/wp-adminlogin- Contact forms
- Checkout, if it is a shop
Fix anything broken now, while the live site is still untouched and serving visitors normally.
Step 4 — Lower your DNS TTL
A day before switching, drop the TTL on your A and MX records to 300 seconds at your current DNS provider.
TTL controls how long other servers cache your records. The default is often hours; lowering it first means the switch propagates in minutes. Small step, removes most of the risk.
Step 5 — Switch DNS
Point your nameservers at ns1.nexzahost.com and ns2.nexzahost.com, or update the A record to your new IP if you manage DNS elsewhere.
Remove the old entries rather than adding alongside them. Leaving both produces intermittent failures where the site loads for some visitors and not others — the hardest kind of problem to diagnose.
If mail is hosted elsewhere, re-create those MX records here first, or email stops when nameservers move. This catches people out constantly.
Step 6 — Finish up
Once DNS resolves here:
- Run AutoSSL — cPanel → Security → SSL/TLS Status, select the domain,
www, and mail subdomains - Check the site URLs — Settings → General should read
https:// - Re-save permalinks — Settings → Permalinks → Save, which regenerates
.htaccess - Install LiteSpeed Cache — our servers run LiteSpeed and it is meaningfully faster here than generic caching plugins
- Set up SPF and DKIM — cPanel → Email Deliverability. Your old SPF record points at the old host and is now wrong
Step 7 — Keep the old account for two weeks
Do not cancel immediately. Some DNS resolvers cache aggressively, and a straggler may deliver mail or traffic to the old server days later. Two weeks is a safe window.
Common problems
- Mixed content warnings — images still loading over
http://. Run a search-replace across the database, then re-save permalinks - 404s on every page except the homepage —
.htaccessdid not carry over. Re-save permalinks - Site loads on the temp URL, not the domain — DNS has not propagated, or old nameservers remain
- Email stopped — MX records were not recreated before nameservers changed
Related articles
How to Install Free SSL on WordPress
Issue a free Let's Encrypt certificate with AutoSSL, move WordPress to HTTPS, and clear the mixed-content warnings that follow.
How to Back Up Your WordPress Site
What a complete WordPress backup actually contains, how to take one from cPanel or a plugin, and how to restore it when you need to.
Fix "Error Establishing a Database Connection"
The four causes of this WordPress error, how to tell them apart in a couple of minutes, and how to fix each one without losing content.
Was this article helpful?
Still stuck?
Our support team is available 24/7.