Skip to content
Hosting Operations10 min read

cPanel to DirectAdmin Migration: 10 FAQs [2026]

Answer the 10 most common cPanel to DirectAdmin migration questions: account transfer methods, DNS cutover timing, and post-migration checks.

Written by Abdul AbrorTechnical Hosting Support Engineer
Employer dashboard showing application trends and key metrics.
On this page

TL;DR — Key takeaways

  • DirectAdmin's built-in User Backup feature accepts cPanel compressed backups for single-account migrations
  • DNS propagation takes 24-48 hours; lower TTL values to 300 seconds at least 48 hours before cutover
  • SSL certificates must be re-issued or manually imported after migration because private keys are excluded from most cPanel backups
  • Email accounts transfer with passwords intact via IMAP sync or DirectAdmin's restore process, but clients need new server settings
  • Post-migration validation requires testing each domain's web service, email flow, database connections, and cron job execution

Migrating from cPanel to DirectAdmin means moving accounts, databases, email, and DNS records to a new control panel with different file structures and configuration formats. The process is not a one-click operation.

Most migrations use DirectAdmin's built-in restore function to import cPanel backup archives, but SSL certificates, cron jobs, and DNS records often need manual intervention. I've handled dozens of these migrations in support tickets, and the questions below cover the issues that surface most often.

How do I handle DNS cutover without downtime?

Lower the TTL on all DNS records to 300 seconds at least 48 hours before migration. This tells DNS resolvers to cache records for only five minutes, speeding up propagation when you change nameservers or A records.

Replicate the DNS zone in DirectAdmin before cutover. Copy all A, CNAME, MX, TXT, and SPF records from the cPanel DNS zone editor into DirectAdmin's DNS management interface. Verify MX priority values match exactly to avoid email routing issues.

Update nameservers at your domain registrar to point to DirectAdmin's nameservers, or change the A record to the new server IP if using third-party DNS. Monitor the domain using dig @8.8.8.8 yourdomain.com to confirm when Google's public DNS resolver sees the new IP. Keep both servers online for 48 hours while propagation completes. Email and web traffic will gradually shift to the new server as caches expire.

Why do SSL certificates fail after migration?

cPanel backups exclude private keys by default for security reasons, so SSL certificates don't transfer automatically. Even if the certificate file appears in the backup, DirectAdmin can't use it without the matching private key.

Re-issue free Let's Encrypt certificates through DirectAdmin's SSL certificate manager immediately after migration. For paid or wildcard certificates, locate the private key from the old cPanel server (WHM → SSL Storage Manager) and manually import both the certificate and key into DirectAdmin under SSL Certificates → Paste.

  • Test HTTPS functionality after certificate installation using curl -I https://yourdomain.com
  • Check for mixed content warnings in the browser console if pages load over HTTP
  • Update any hardcoded http:// URLs in the database to https:// using wp search-replace or manual SQL queries

What happens to email during the migration window?

Email continues delivering to the old cPanel server until DNS propagation completes. MX records still point to the old server IP for 24-48 hours after you update DNS, depending on TTL and resolver cache behavior.

Set up email accounts in DirectAdmin before DNS cutover using the same usernames and passwords. This prevents delivery failures once MX records propagate. Messages sent during the transition window arrive at whichever server DNS resolvers consider authoritative at that moment.

For zero email loss, configure IMAP sync between old and new servers using tools like imapsync. This copies existing messages from cPanel to DirectAdmin mailboxes while both servers are active. Alternatively, instruct users to leave mail on the old server and configure DirectAdmin as a new account in their email client, then manually move folders after migration completes.

Can I migrate multiple cPanel accounts at once?

DirectAdmin does not include a bulk migration tool comparable to cPanel's Transfer Tool in WHM. You must restore accounts one at a time using the User Backup interface.

For servers with dozens of accounts, use command-line scripts to automate restoration. Generate cPanel backups for all accounts via WHM, transfer the archives to the DirectAdmin server using rsync or scp, then loop through them with DirectAdmin's CLI restore commands. This requires root access and familiarity with bash scripting.

Third-party migration services and scripts exist but introduce risk. They often modify DirectAdmin's database directly instead of using official APIs, which can corrupt account data if the script fails mid-process. Test any automated approach on a staging server with non-production accounts first.

Do cron jobs transfer automatically?

No. cPanel stores cron jobs in user-specific crontab files, but DirectAdmin's backup restore process does not parse or import them. You must manually recreate each scheduled task.

Before migration, document all active cron jobs by running crontab -l as the cPanel user or viewing them through cPanel's Cron Jobs interface. Note the schedule (minute, hour, day, month, weekday) and the full command path.

In DirectAdmin, navigate to Advanced Features → Cron Jobs and add each task with the same schedule and command. Pay attention to script paths—DirectAdmin uses /home/username/domains/domain.com/public_html/ instead of cPanel's /home/username/public_html/, so adjust paths in scripts that reference absolute file locations. Test each cron job by setting it to run one minute in the future and checking the output.

How do I verify the migration was successful?

Start by testing web service. Add a hosts file entry on your local machine mapping the domain to the DirectAdmin server IP, then browse the site. Check that all pages load, forms submit correctly, and image uploads work. Review the error_log in DirectAdmin's file manager for PHP warnings or database connection errors.

Send a test email to an account on the migrated domain and verify it arrives. Then send an outbound message from that account to an external address like Gmail to confirm SMTP is working. Check SPF and DKIM records in DirectAdmin's DNS zone match the old configuration to prevent deliverability issues.

Test database connectivity by triggering any database-dependent features (user login, search, checkout). Run a MySQL connection test from the command line using mysql -u dbuser -p and executing a simple SELECT query. Verify all cron jobs execute on schedule by checking /var/log/cron or DirectAdmin's cron log viewer. Monitor Apache or Nginx error logs for 48 hours post-migration to catch issues users might not report immediately.

What are the most common migration failures?

Database name mismatches cause the majority of post-migration errors. cPanel prefixes database names with the username (username_dbname), and DirectAdmin does the same, but if the username changes during account creation, all database connection strings in config files break. Check wp-config.php, Joomla configuration.php, or .env files and update DB_NAME values to match the new prefixed database name shown in DirectAdmin's MySQL management interface.

File permission problems surface when DirectAdmin sets ownership to a different user ID than cPanel used. Web applications that write to cache or upload directories fail with 'permission denied' errors. Run chown -R username:username /home/username/domains/domain.com/public_html/ to fix ownership, and verify that writable directories have 755 permissions while files have 644.

Missing PHP extensions break applications that rely on GD, mbstring, or curl. DirectAdmin's default PHP build may not include every extension cPanel had enabled. Check phpinfo() output on both servers, then install missing extensions using DirectAdmin's CustomBuild system (./build php with the appropriate options) or by enabling them in php.ini.

Should I keep the old cPanel server online after migration?

Yes. Keep it running for at least 7-14 days as a rollback option. If critical issues surface after DNS cutover, you can quickly revert by updating nameservers back to the old cPanel IPs.

During this window, the old server continues receiving email from resolvers that cached the old MX records. Log in periodically and forward any new messages to the DirectAdmin server manually, or set up a catch-all forwarder to relay everything automatically.

Once two weeks pass without issues, archive the cPanel server's data to offsite storage, then decommission it. This grace period has saved dozens of migrations I've handled when subtle application bugs or missing cron jobs only became apparent under production load.

Quick Reference: Migration Task Checklist

Below is a condensed checklist for tracking migration progress. Each task maps to a step detailed in the sections above.

  • Generate cPanel backup (full account archive, .tar.gz format)
  • Lower DNS TTL to 300 seconds 48+ hours before cutover
  • Create DirectAdmin user account with matching quotas
  • Upload and restore cPanel backup via DirectAdmin User Backup interface
  • Manually recreate cron jobs in DirectAdmin Cron Jobs interface
  • Re-issue or import SSL certificates for all HTTPS domains
  • Replicate DNS zone records in DirectAdmin DNS management
  • Update nameservers or A records at domain registrar
  • Configure email clients with new DirectAdmin server settings (IMAP 993, SMTP 587)
  • Test website functionality: page loads, form submissions, database queries
  • Verify outbound and inbound email delivery
  • Monitor error logs (Apache, PHP, MySQL) for 48 hours
  • Keep old cPanel server online for 7-14 days as fallback

Quick troubleshooting checklist

  • Generate full cPanel backup via WHM or user-level backup interface
  • Lower DNS TTL values to 300 seconds 48+ hours before migration
  • Document all active domains, databases, email accounts, and cron jobs
  • Create matching hosting packages in DirectAdmin before account restore
  • Upload cPanel backup archive to DirectAdmin via User Backup → Restore
  • Update nameservers or A records to point to new DirectAdmin server IP
  • Re-issue or import SSL certificates for all HTTPS domains
  • Configure email clients with new DirectAdmin server hostname and ports
  • Test website functionality, form submissions, and database connectivity
  • Verify all cron jobs are scheduled and executing correctly
  • Monitor error logs for 48 hours post-migration
  • Keep old cPanel server online for 7-14 days as rollback option

FAQ

Can DirectAdmin automatically import cPanel backups?

Yes, DirectAdmin's User Backup feature accepts cPanel compressed backups (the .tar.gz format generated by cPanel's backup interface). Upload the archive through DirectAdmin's Restore Backup function under the target user account. The process extracts website files, databases, email accounts, and forwarders. SSL certificates and some advanced configurations require manual setup after the automated import completes.

How long does DNS propagation take after changing nameservers?

DNS propagation typically takes 24 to 48 hours globally, though most resolvers update within 4-6 hours. Reduce your domain's TTL (Time To Live) to 300 seconds at least 48 hours before migration so changes propagate faster. After cutover, wait 48 hours before raising TTL back to 3600 or higher. Check propagation status using dig or nslookup commands from multiple geographic locations.

Do email passwords transfer during cPanel to DirectAdmin migration?

Yes, email account passwords transfer when you restore a cPanel backup in DirectAdmin. The backup includes hashed password data that DirectAdmin preserves. However, email clients need new server settings: update the incoming/outgoing server hostnames to your DirectAdmin server's hostname, and verify ports (IMAP 993, SMTP 587 with STARTTLS). Test each account by sending and receiving messages before directing users to update their clients.