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.
Alex Kerr
Lead Migration Engineer, Mailbox Taxi
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.
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 likeserverNNN.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
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.
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, andAUTHENTICATIONFAILED. 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.
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.
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.8anddig MX yourdomain.com @1.1.1.1. Send a test message from an external account and confirm it lands in the Google mailbox.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.
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.
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.comat_dmarc.yourdomain.com. Monitor for a week before tightening.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.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.
Related reading
migrate
Migrate cPanel Email to Gmail: Generic Workspace Plan
Move any cPanel-hosted mailbox to Gmail or Google Workspace over IMAP. Generic guide with MX cutover, Email Routing fix, and DKIM steps.
migrate
Migrate cPanel Email to Office 365: Generic IMAP Plan
Move any cPanel-hosted mailbox to Office 365 over IMAP. Generic guide for IT admins covering MX, Email Routing, SPF, DKIM, and validation.
migrate
Migrate Bluehost Email to Google Workspace (2026 Guide)
Move Bluehost cPanel mailboxes to Google Workspace with IMAP, app passwords, and DNS cutover steps that preserve folders, sent mail, and aliases.
blog
Google Workspace Migration: A Complete Guide
A google workspace migration guide for IT admins: data migration service vs third-party, OAuth, label semantics, throttling, and cutover validation.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.