Migrate

Migrate cPanel Email to Google Workspace (2026 Guide)

Move cPanel IMAP mailboxes to Google Workspace with shared-hosting throttling, folder maps, and DNS cutover steps tested across hosts.

AK

Alex Kerr

Lead Migration Engineer, Mailbox Taxi

Reviewed by Dan Okafor
· 11 min read
Code on a screen, representing cPanel administration and IMAP configuration

cPanel hosts power a huge share of small-business email globally, but the same shared infrastructure that makes them cheap also makes them slow to migrate from. IMAP throughput is unpredictable, simultaneous connection limits are aggressive, and the webmail-side configuration (filters, forwarders, autoresponders, contacts in Roundcube/Horde) lives outside the mailbox where IMAP can't reach. This guide treats cPanel generically — the host underneath might be Bluehost, HostGator, SiteGround, A2, or any other reseller, but the email stack is consistent enough that one playbook covers all of them.

Cpanel-imap
Google Workspace

Skip the manual setup — let Mailbox Taxi handle it

One desktop app, every IMAP provider, zero data leaving your machine.

What the cPanel email stack looks like

Almost every cPanel host runs the same components: Exim for SMTP, Dovecot for IMAP/POP, with Roundcube and Horde as webmail clients. SpamAssassin handles spam scoring. Mailboxes live on the filesystem in Maildir format under each cPanel account's home directory.

The implications for migration:

  • IMAP behaves predictably because Dovecot is the same everywhere.
  • Folder semantics are consistent: INBOX, INBOX.Sent, INBOX.Drafts, INBOX.Trash, INBOX.Junk by default, with custom folders nested under INBOX.
  • Filters configured in cPanel (Account-Level Filters and User-Level Filters) live in Exim config, not in the mailbox.
  • Forwarders are in /etc/valiases/ on the server — outside the mailbox.
  • Autoresponders are in /etc/cpanel/users/.
  • Roundcube contacts/calendars are in MySQL on the cPanel server.

None of the items outside the mailbox migrate via IMAP. Plan a parallel workstream for each.

The `INBOX.` prefix trap

By default, cPanel's Dovecot exposes folders with an INBOX. namespace prefix: INBOX.Sent, INBOX.Drafts, INBOX.Trash, INBOX.Junk. Some migration tools translate these to Google's Sent, Drafts, Trash, Spam labels. Others migrate them as literal labels named INBOX.Sent. Verify your tool's folder mapping in the pilot — if you see INBOX.Sent as a label on Google after the test, fix the map before bulk.

Pre-migration audit

Before touching anything, document what's there.

Mailbox inventory

From cPanel → Email Accounts, export the list. Note disk usage and quota per mailbox. Identify:

  • Active mailboxes (recent activity, large size, dedicated user).
  • Role mailboxes (info@, sales@, support@) — these may need different handling.
  • Forwarder-only addresses — entries that look like mailboxes but actually just forward elsewhere.
  • Catch-all addresses — see the warning below.

If any mailbox is over 25 GB, plan a Google Workspace Business Standard (2 TB) or higher tier. Business Starter's 30 GB is a tight fit when you're migrating data plus accommodating new mail flow.

Filter and forwarder inventory

From cPanel:

  • Forwarders → screenshot or export the table.
  • Email Filters (Account Level) → screenshot.
  • Each user's Email Filters → not in cPanel directly; access via Webmail → Filters → Configure. Easier to ask users.
  • Autoresponders → screenshot.

Document the rules in a spreadsheet so you can recreate them in Google as routing rules (org-wide) or Gmail filters (per-user).

Catch-all status

In cPanel → Default Address, check whether you have a catch-all. If you do, decide before migration whether you want it on Google or not. Most cPanel catch-alls are full of spam that you don't want migrated.

Provisioning Google Workspace

Tenant and users

Sign up at workspace.google.com. Verify your domain via TXT record. Do not change MX.

Bulk-create users via CSV import matching the cPanel email addresses exactly. Capitalization and punctuation count — Sales@Example.com and sales@example.com are different to the migration tool, even if SMTP is case-insensitive.

For aliases, add them as alternate email addresses on the matching Google user. Test aliases after cutover by sending mail to each one and verifying it lands in the correct mailbox.

Aliases vs role mailboxes

cPanel often blurs the line: info@yourdomain.com might be a real mailbox, a forwarder to multiple people, or an alias on someone else's mailbox. On Google, you need to decide explicitly:

  • Real mailbox: separate licensed user.
  • Forwarder to multiple recipients: Google Group with members.
  • Alias on existing user: additional email address on that user.

Audit each role address and pick the right destination structure. This is the kind of detail that's easy to get wrong and creates "where did our info@ mail go?" tickets a week after cutover.

cPanel-side prep

Confirm IMAP settings

For each mailbox, in cPanel → Email Accounts → Connect Devices, the IMAP settings show:

  • Server: mail.yourdomain.com (or the shared server hostname like serverNNN.hostname.com)
  • Port: 993
  • Security: SSL/TLS
  • Username: full email address
  • Password: mailbox password

If mail.yourdomain.com doesn't have a matching certificate, you'll get a cert mismatch warning. Use the shared hostname instead — find it in cPanel → Server Information. Don't disable cert validation entirely; that opens you to MITM during migration.

Lower MX TTL

24 hours before cutover, in cPanel → Zone Editor, drop the MX record TTL to 300 seconds. The cPanel default is often 14400 (4 hours), which means stale resolvers can route mail to cPanel for up to 4 hours after you flip DNS.

Reset passwords if needed

If you don't know mailbox passwords (common when migrating after an employee departure), reset them from cPanel → Email Accounts → Manage. Store new passwords in a manager, then have users pick new passwords post-migration on Google.

Picking a migration tool

Three options, as with most IMAP-to-Workspace migrations.

Google Data Migration Service

Free, built into the Workspace admin console. Source: IMAP. Destination: Gmail. Works for cPanel because cPanel exposes plain IMAP.

DMS is a good default for organizations with under 50 mailboxes, mailbox sizes under 10 GB each, and no need for delta sync. It's single-threaded per mailbox and you can't pause/resume cleanly.

Desktop IMAP migration

A local tool runs IMAP-to-IMAP. Mailbox Taxi is built for this — desktop-first, concurrency-controlled, with detailed per-message logs and resumable syncs.

Desktop wins for cPanel migrations specifically because cPanel throttles aggressively and you need fine concurrency control. DMS doesn't expose that knob.

Hybrid

DMS for bulk, desktop for delta. The cost-free DMS run does most of the volume; the desktop delta sweeps the last few percent.

For organizations migrating from cPanel-based hosts, the Bluehost-specific guide and the HostGator guide cover the same fundamentals with host-specific notes; this generic walkthrough applies if your host isn't on either list.

Step-by-step

  1. Pilot two mailboxes

    Pick one light (under 1 GB) and one heavy (over 5 GB if any exist). Run the full migration end-to-end. Validate folder mapping (specifically the INBOX. prefix handling), sent-item fidelity, and per-GB throughput.

    Time the heavy mailbox precisely. Your bulk window estimate depends on this number. cPanel hosts vary wildly in IMAP throughput — some give you 50 MB/min, others crawl at 10 MB/min on the same provider depending on which shared server you happen to be on.

  2. Run the bulk pre-sync

    48 hours before MX cutover. Cap concurrency at 2–3 threads per mailbox. Stagger mailbox starts by 5–10 minutes each to keep cumulative load low.

    Monitor logs for Too many simultaneous connections, Disconnected for inactivity, and AUTHENTICATIONFAILED. The first two indicate throttling; the third indicates a password or username issue (cPanel sometimes locks accounts after repeated auth failures — wait 15 minutes if you hit this).

    Bulk sync time for a 25-user organization with 5 GB average mailbox sizes is typically 24–36 hours from start to finish.

  3. Optional: set up forwarders 12 hours before cutover

    For each cPanel mailbox, create a forwarder to the matching Google address. From cPanel → Forwarders → Add Forwarder. This gives you belt-and-suspenders: any mail that arrives at cPanel before MX cuts over also goes to Google.

    Don't enable forwarders earlier than 12–24 hours before cutover, or you'll have duplicate mail (one copy via migration, one copy via forwarder) that takes time to dedupe.

  4. Cut MX records to Google

    At your cutover time, log into cPanel → Zone Editor → MX Records. Delete the existing cPanel MX entries and add Google's published values (the Workspace admin console shows the exact records for your tenant — always copy from there).

    Save. Wait 5–10 minutes for propagation. Verify with dig MX yourdomain.com @8.8.8.8 and dig MX yourdomain.com @1.1.1.1. Send a test message from an external account and confirm it lands in the Google mailbox.

  5. Run the delta sync

    48 hours after MX cutover, run a delta against each cPanel mailbox. Mail that landed during the propagation window will be on cPanel; the delta pulls it across with UID-based dedup so existing migrated messages don't duplicate.

    After the delta, no new mail should be landing at cPanel. Verify by checking cPanel webmail for any new mail in INBOX since the cutover time.

  6. Recreate filters and forwarders in Google

    Translate each cPanel filter into a Gmail filter or a Workspace routing rule. Most cPanel filters are simple: "from address contains X, move to folder Y". Gmail filters handle this directly.

    For org-wide rules (e.g., "all mail to support@ also goes to ticketing@") create a Workspace routing rule. Test each one with a real test message before declaring done.

  7. Update SPF, DKIM, DMARC

    SPF in cPanel Zone Editor: replace with v=spf1 include:_spf.google.com ~all. Remove any cPanel-specific includes.

    DKIM: enable in Workspace admin (Apps → Gmail → Authenticate email). Google generates the public key; paste the TXT record into cPanel Zone Editor at the prescribed selector (typically google._domainkey).

    DMARC: add v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com at _dmarc.yourdomain.com. Monitor for a week before tightening.

  8. Decommission cPanel email

    After 30 days of clean operation, disable the cPanel email service or delete individual mailboxes. Don't rush this; the 30-day buffer catches missed messages and gives users time to flag anything they can't find.

    If you're keeping cPanel for web hosting only, just disable Email in the cPanel admin and remove mailbox accounts one by one as users confirm migration completeness.

Test catch-all behavior on day one

If your domain has any catch-all behavior — either intentionally on cPanel or as a result of how aliases were set up — test it on Google immediately after MX cutover. Send mail to a deliberately-misspelled address and see where it lands. Catch-all surprises are the #1 cause of "missing mail" tickets in the first 48 hours.

Common errors and fixes

Too many simultaneous connections

cPanel hosts cap connections aggressively. Drop concurrency. Stagger mailbox starts. Don't retry-loop without backoff.

Cert mismatch on mail.yourdomain.com

The cPanel server's certificate covers the server hostname, not your domain. Connect via the server hostname instead. Don't disable cert validation entirely.

Folder names with INBOX. prefix

Default Dovecot config. Configure your tool's folder map to translate INBOX.Sent → Sent, INBOX.Drafts → Drafts, etc.

AUTHENTICATIONFAILED

Wrong username (must be full email address), wrong password, or temporary lockout after repeated failures. Wait 15 minutes, verify credentials from cPanel directly, retry.

Message too large for destination

Google's 35 MB inbound limit. Log oversize messages and decide per-message what to do.

Folder UTF-7 conversion errors

Modern tools handle UTF-7 encoded folder names (used for non-ASCII characters). Older tools and custom scripts don't.

Validation

Per-user:

  • Folder counts match.
  • Message count per folder within 1%.
  • Sent items present and chronologically correct.
  • INBOX.* prefix folders correctly mapped to Google labels.
  • Mobile clients pick up new account.

Per-tenant:

  • SPF updated, includes Google, excludes cPanel host.
  • DKIM signing outbound.
  • DMARC publishing reports.
  • All filters recreated and tested.
  • All forwarders recreated and tested.
  • Catch-all behavior verified or intentionally disabled.

If both pass, you're done. Wait 30 days. Then disable cPanel email.

Try Mailbox Taxi

Migrate your mailbox the easy way

Join the waitlist for early access and lock in launch pricing.

Related reading

Try Mailbox Taxi

Migrate your mailbox the easy way

Join the waitlist for early access and lock in launch pricing.