Moving a website to a new host is usually straightforward when you plan the transfer in the right order. The safest approach is to copy the files and database first, verify the site on the new hosting account, and only then update DNS so visitors are switched over with minimal downtime. If your website uses a control panel such as Plesk, the process is often even easier because you can manage files, databases, email settings, and domain records in one place.
This guide explains how to move a website to a new host, what to check before the migration, how to transfer files and databases, how to update DNS, and how to confirm that everything is working after the move. It is written for full website migration scenarios, including single-site moves and larger transfers involving multiple hosting services.
What you should check before starting the migration
Before moving any website, make sure you know how the current site is built and what it depends on. A complete migration usually involves more than copying a few files. You may need to move the web root, one or more databases, email mailboxes, SSL certificates, cron jobs, and custom DNS records.
Identify the website stack
Confirm whether your site uses:
- WordPress, Joomla, Drupal, Magento, or another CMS
- A custom PHP, Node.js, Python, or static site setup
- One database or multiple databases
- Additional services such as Redis, Memcached, or background workers
- Third-party integrations, API keys, or external payment gateways
Check current hosting details
Review the current hosting account for:
- Document root location
- Database name, username, and host
- PHP version and extensions
- Custom server rules in
.htaccess,web.config, or Nginx configuration - Email accounts attached to the domain
- DNS records currently in use
Lower the DNS TTL in advance
If you manage DNS yourself, reduce the TTL value for key records 24 to 48 hours before the migration. A shorter TTL helps the new IP address propagate faster after the switch. This is one of the most effective ways to reduce visible downtime during a website transfer.
Choose the right migration method
The best method depends on the size of the website and the tools available on both hosting platforms. In many managed hosting environments, you can perform the move manually through the control panel or use a migration tool.
Method 1: Manual migration
Manual migration gives you full control. It is usually the right choice when you need to move files, databases, and custom settings in a precise way. This method is common for shared hosting, VPS hosting, and managed hosting accounts that use Plesk or another control panel.
Method 2: Control panel backup and restore
If both hosts use compatible control panels, you may be able to create a full backup on the old host and restore it on the new one. This can include website files, databases, mailboxes, and settings. In Plesk, for example, backup and restore tools can simplify full account migration.
Method 3: Migration plugin or clone tool
For CMS platforms such as WordPress, a migration plugin can copy the site files and database together. This is often quicker for small and medium sites, but you still need to verify DNS, SSL, email, and any custom configuration after the transfer.
Step-by-step website migration process
The safest migration workflow is: prepare the new host, copy the site, test it, then update DNS. Following this order reduces the risk of broken pages, missing assets, or database errors.
1. Set up the new hosting account
Start by creating the domain or subscription on the new host. Make sure the target environment matches the site’s requirements.
- Choose the correct PHP version
- Create the needed database and database user
- Set file permissions correctly
- Enable required extensions and modules
- Add the domain to the control panel if needed
If you are using Plesk, confirm that the domain points to the correct subscription, the document root is correct, and the hosting type is set properly for the site.
2. Copy the website files
Download the site files from the current host and upload them to the new hosting account. Depending on the size of the site, use SFTP, SSH, file manager, or a backup archive.
Typical paths to check include:
- Web root directory such as
httpdocs,public_html, or a custom document root - Media uploads directory
- Theme and plugin folders for CMS sites
- Configuration files such as
wp-config.phpor application-specific settings files
After the upload, confirm that hidden files such as .htaccess were transferred too, since these often contain rewrite rules, redirects, or security settings.
3. Export and import the database
If your website uses a database, export it from the old host and import it into the new one. This step is essential for dynamic websites because the database often stores content, users, settings, and product data.
- Export the database using phpMyAdmin, the control panel database tools, or
mysqldump - Create a new database on the destination host
- Import the SQL file into the new database
- Update the application configuration to use the new database credentials
After import, check for any errors related to table prefixes, character sets, or collation. For websites that need special character support, make sure the database uses the correct encoding.
4. Update configuration files
Once the files and database are in place, update the site configuration so it points to the new database and, if necessary, the new host settings.
Common items to change include:
- Database name
- Database username and password
- Database host, if it is not
localhost - Site URL or base URL values
- Cache paths or storage locations
For WordPress, this may involve wp-config.php and, in some cases, checking the site URL in the database. For custom applications, review environment files and connection strings carefully.
5. Test the site before changing DNS
Before you switch visitors to the new host, test the website on the new server. Use a temporary URL, hosts file override, or preview link if your hosting platform provides one.
Check the following:
- Home page loads correctly
- Internal links work
- Images, CSS, and JavaScript load without errors
- Forms submit successfully
- Login, checkout, or other critical functions work
- No broken database connection errors appear
This test stage is especially important for eCommerce sites, membership sites, and sites with dynamic content.
6. Move email if it is hosted with the website
If the domain’s email accounts are part of the migration, recreate the mailboxes on the new host before switching DNS. Then move existing messages if needed.
- Create the same email addresses on the new hosting account
- Set passwords and mailbox limits
- Migrate mail data using IMAP copy tools or mail backup export/import
- Update MX records and related DNS records if the email service is changing
If you do not migrate email before the DNS switch, users may experience delivery issues or see missing mail in their inboxes.
7. Update DNS to point to the new host
When everything is ready and tested, update the domain’s DNS records. Usually this means changing the A record to the new server IP address and, if needed, updating AAAA, CNAME, MX, SPF, DKIM, and DMARC records.
Important DNS records to review:
- A record for IPv4 hosting
- AAAA record for IPv6 hosting
- CNAME for www or subdomains
- MX records for mail delivery
- TXT records for SPF, DKIM, verification, and DMARC
If your DNS is managed separately from the hosting account, update it at the DNS provider. If DNS is hosted in the control panel, update the zone file there and allow propagation to complete.
8. Keep the old host active for a short period
Do not cancel the old hosting account immediately. Keep it active for at least a few days, and preferably until you are sure all traffic and email are reaching the new host. This helps if some visitors still resolve the old IP due to DNS caching.
How to avoid common migration problems
Most migration issues are caused by incomplete transfers, mismatched server settings, or DNS records that were missed during the switch. A careful checklist prevents most of these issues.
Broken links and missing assets
If CSS, images, or JavaScript files fail to load, check file paths, permissions, and rewrite rules. Also confirm that the document root on the new host matches the site’s expected structure.
Database connection errors
These usually mean the database name, user, password, or host value is incorrect. Confirm that the new database user has the right privileges and that the application config has been updated after import.
Permission problems
If the site cannot write uploads, cache, or logs, check ownership and file permissions. Managed hosting platforms and control panels often set these automatically, but manual uploads may require adjustment.
Redirect loops or wrong URLs
Redirect issues can happen if the site still points to the old domain or a temporary preview URL. Review application URL settings, SSL settings, and any redirect rules in .htaccess or Nginx configuration.
SSL certificate warnings
After migration, install or reissue the SSL certificate on the new host. Make sure the certificate covers both the root domain and www if both are used. Also confirm that the browser is not loading mixed content from insecure URLs.
How migration works in Plesk
If your hosting platform uses Plesk, a full website migration can often be handled more efficiently because the control panel centralizes domain hosting, databases, mail, and SSL management.
Typical Plesk migration steps include:
- Adding the domain or subscription on the destination server
- Using backup manager or migration tools to transfer files and databases
- Restoring mailboxes if mail is included in the move
- Checking PHP settings and extensions for compatibility
- Updating DNS after testing
In Plesk, also verify the hosting settings for the domain, since incorrect document root or PHP handler selection can make the site appear broken even when the files are present.
Checklist before switching traffic
Use this final checklist before you update DNS or cut over traffic:
- Website files copied completely
- Database exported, imported, and connected
- Configuration files updated
- SSL certificate installed on the new host
- Email accounts recreated if needed
- DNS records reviewed and updated
- Temporary test confirmed on the new server
- Backup of the original site kept safely
When a full migration is better than a partial move
A full website migration is the better choice when the site depends on multiple components that must stay in sync. This includes content-heavy CMS sites, online shops, sites with custom code, and websites that use email hosted alongside web files.
Choose a full migration if you need to move:
- Files and databases together
- Emails and mailboxes
- SSL settings and domain configuration
- Cron jobs or scheduled tasks
- Application-specific server rules
For smaller sites, a simple file copy may be enough, but most production websites are safer when moved as a complete package.
FAQ
How long does it take to move a website to a new host?
The file transfer itself may take minutes or hours depending on site size, but the full migration can take longer because of testing and DNS propagation. Small sites are often completed the same day, while larger or more complex sites may need a staged transfer.
Will my website go offline during the move?
It does not have to. If you copy the site first, test it on the new host, and switch DNS only after everything works, downtime can usually be kept very low. Some changes made during the final sync window may still need careful handling.
Do I need to move my email too?
Only if your email is hosted with the same provider or you want to keep the same mailbox setup. If email is moving, recreate the mailboxes and update MX records before or at the time of the DNS switch.
What is the safest way to migrate a WordPress site?
The safest way is to back up the files and database, restore them on the new host, test the site, and only then point DNS to the new server. Migration plugins can help, but manual verification is still important.
What if the domain uses external DNS?
If DNS is managed elsewhere, you must update the records at that provider rather than in the hosting control panel. In that case, confirm the new host’s IP address and required mail or verification records before making the change.
Should I keep the old host after migration?
Yes, at least temporarily. Keeping the old account active gives you a fallback if DNS propagation is slower than expected or if you need to compare data during the transition.
Conclusion
Moving a website to a new host is safest when you treat it as a full migration: prepare the new environment, transfer files and databases, test the site thoroughly, and then update DNS. For control panel-based hosting such as Plesk, the process is often easier because most components can be managed in one place. With the right checklist, you can move a website with minimal disruption and keep email, SSL, and application settings working correctly after the switch.