Loading Experience

Why Your cPanel Emails Keep Going to Spam (and How Google Workspace Split Delivery Fixes It Permanently)

Table of Contents

You send a quote to a client and it never arrives. You ask, and they find it in junk three days later. You check your website, your server, your password — everything looks fine. Nothing is broken, and that is exactly the problem.

Mail sent from a standard cPanel server lands in spam for reasons that have almost nothing to do with your message and almost everything to do with the IP address it left from. Below is what is actually happening, why the usual advice only buys you a few weeks, and how split delivery with Google Workspace removes the problem rather than postponing it.

Short version: shared hosting puts your mail behind an IP whose reputation is set by everyone else on the box. You cannot fix someone else’s spam. Split delivery lets Google take over sending and receiving for the mailboxes you move, while the legacy server keeps handling the rest — so you migrate gradually instead of gambling on one big cutover.

Why cPanel email ends up in spam

There are five causes behind nearly every case I see. Usually more than one is in play at the same time, which is why single fixes rarely stick.

1. You share a sending IP with strangers

On shared hosting your mail leaves through the same IP as every other account on the server. If one of those accounts runs a careless bulk campaign, or gets compromised and pumps out spam for a weekend, the IP picks up a bad reputation — and your perfectly ordinary invoice inherits it. You have no visibility into those neighbours and no control over what they send.

This is the root cause people most often miss, because every test they run on their own domain comes back clean.

2. SPF, DKIM and DMARC are missing or wrong

These three DNS records tell receiving servers that your mail is genuinely yours. A surprising number of cPanel setups have an SPF record that no longer matches reality, DKIM that was never enabled, and no DMARC at all. Gmail and Microsoft now treat unauthenticated mail far more harshly than they did a few years ago, and bulk senders are required to authenticate outright.

If you want the exact records and the order to publish them in, I wrote a separate walkthrough: SPF, DKIM and DMARC for Google Workspace.

3. Reverse DNS does not match your domain

Receiving servers check whether the sending IP resolves back to a hostname that makes sense. Shared servers typically present something generic along the lines of server217.hostingcompany.net. That mismatch alone will not bin your mail, but it adds to a score that is already working against you.

4. The local mail exchanger trap

This one catches almost everybody who has partially moved to a hosted provider. cPanel keeps its own routing setting, separate from DNS. If that setting is left on Local Mail Exchanger while your MX records point somewhere else, the server delivers mail to your domain into its own mailboxes and never sends it out at all.

The symptom is distinctive: people outside your company receive your mail normally, but messages between your own staff vanish, or land in a cPanel mailbox nobody has opened in months.

5. Your contact form sends as your visitors

Most WordPress contact forms are configured to send with the visitor’s address in the From field. Your server then sends mail claiming to be from @gmail.com or @yahoo.com, which it has no authority to do. That is a textbook spoofing signal, and it damages your domain’s standing every time the form is used.

Why the usual fixes stop working

The standard advice — tighten SPF, turn on DKIM, warm the IP, ask recipients to whitelist you — is not wrong. It is just incomplete, because it treats symptoms that sit downstream of the real issue.

Authentication records prove a message is genuinely from your domain. They do not make the sending IP trustworthy. If that IP is shared, its reputation keeps moving regardless of what you do, and you are back where you started the next time a neighbour misbehaves. You end up re-fixing the same problem every quarter.

The permanent fix is to stop sending from an IP you do not control.

What Google Workspace split delivery actually is

Split delivery — sometimes called dual delivery — means two mail systems serve one domain at the same time. Your MX records point at Google. Google accepts every message for your domain, delivers to any mailbox it knows about, and forwards anything it does not recognise to your old cPanel server.

That single arrangement solves the migration problem that stops most people from moving at all. You do not have to move forty mailboxes on a Saturday night and pray. You move the first five, confirm they work, then move the rest at your own pace. Anyone still on the legacy server keeps receiving mail throughout, and nobody outside the company notices anything.

How a message is routed

  1. A sender’s mail server looks up the MX records for your domain and finds Google.
  2. Google accepts the message and checks the recipient against your Workspace accounts.
  3. If the mailbox exists in Workspace, it is delivered there and the story ends.
  4. If it does not, your routing rule forwards the message to the legacy cPanel server, which delivers it the way it always has.

Outbound mail is where the spam problem disappears. Every mailbox you move sends through Google’s infrastructure, on Google’s IP reputation, signed with your DKIM key. Your old neighbours on the shared server stop being your problem.

Setting up split delivery, step by step

  1. Inventory every address first. Not just mailboxes — forwarders, autoresponders, distribution addresses and anything your website or billing system sends from. Addresses that only exist as forwarders are the ones most commonly lost.
  2. Create the Workspace accounts for the first group of users, and verify domain ownership. Nothing changes for live mail at this stage.
  3. Add the legacy server as a mail host in the Workspace admin console, under the Gmail routing settings. Point it at the cPanel server’s hostname rather than your domain, so it resolves independently of the MX records you are about to change.
  4. Create a default routing rule that applies to unrecognised addresses and routes them to that host. This is the piece that keeps everyone still on cPanel working.
  5. Pre-sync the mail history for the users you are moving, over IMAP, while the old server is still live and still receiving. This can run for hours or days without affecting anybody.
  6. Lower your MX TTL to five minutes a day before the switch, so the change propagates quickly and so you can reverse it quickly if you need to.
  7. Switch the MX records to Google. Mail begins arriving at Workspace within minutes.
  8. Set cPanel email routing to Remote Mail Exchanger. Miss this and the server will keep delivering your domain’s mail locally — the trap described above.
  9. Run a final delta sync to collect anything that reached the old server during the changeover.
  10. Publish SPF, DKIM and DMARC for Google, and confirm each one passes on a real message.

On timing: nothing in this sequence requires downtime. The only moment anything changes for users is the MX switch, and because both systems accept mail either side of it, the worst case is a message arriving a few minutes later than usual.

Settings that quietly break split delivery

SettingWrong valueWhat you see
cPanel email routingLocal Mail ExchangerInternal mail never leaves the server; staff stop receiving each other’s messages
Routing hostYour domain nameA mail loop — Google forwards to the MX, which is Google
SPF recordTwo separate SPF recordsAuthentication fails outright; more than one SPF record is invalid
SPF recordGoogle added, old host removed too earlyMail still sent by the legacy server starts failing SPF
DMARC policyp=reject from day oneLegitimate mail from systems you forgot about is silently destroyed
Catch-all addressLeft enabled on cPanelEvery unrecognised address is accepted, so nothing ever reveals a missed mailbox

The DMARC one deserves emphasis. Start at p=none, read the reports for a couple of weeks, find the systems you had forgotten were sending as you, and only then tighten to quarantine and reject.

Moving from split delivery to full Workspace

Split delivery is a bridge, not a destination. Running two mail systems indefinitely means two sets of accounts, two spam filters and two places to look when something goes missing.

Once the last mailbox has moved, remove the routing rule, delete the mailboxes from cPanel, and tighten your SPF record so it authorises Google alone. At that point every message your domain sends is going out on Google’s reputation and signed with your key, and the shared-IP problem is gone for good rather than managed.

Confirming your deliverability has actually recovered

  • Check the headers of a real message. Send to an outside address and look for SPF: PASS, DKIM: PASS and DMARC: PASS. All three, on a genuine message, not a test tool.
  • Read your DMARC reports. They will show every source sending as your domain, including the ones you did not know about.
  • Send from each system separately. Your mail client, your website contact form, your invoicing software and your CRM all send independently, and each needs to be authorised.
  • Check that nothing still routes through the old server. If an application is still using the legacy SMTP host, it is still sending on the old IP.

Frequently asked questions

Will moving to Google Workspace definitely stop my mail going to spam?

It removes the largest and least controllable cause, which is shared IP reputation, and it makes proper authentication straightforward. It is not a licence to ignore the rest: send to people who expect to hear from you, keep your lists clean, and do not let your contact form impersonate visitors. Reputation is earned by behaviour, and Google gives you a sound starting point rather than a permanent exemption.

Can I keep some mailboxes on cPanel permanently?

Technically yes — split delivery will run indefinitely. In practice it is worth finishing the move. Two systems means two places to administer and two sets of filtering rules, and the half still on cPanel keeps the original reputation problem alive.

Does my website have to move too?

No. Email and web hosting are separate records in DNS. A mail migration changes your MX records and a few mail-related TXT records; your website stays exactly where it is and keeps serving normally throughout.

How long will the whole thing take?

Setup and provisioning is typically a day. The mail sync depends on how much history there is, but it runs in the background before cutover, so its length does not become downtime. A full walkthrough of a real 45-mailbox move is here: migrating 45 mailboxes with zero downtime.

What does Google Workspace cost?

Google’s published rates are $7, $14 and $22 per user per month for Business Starter, Standard and Plus on an annual commitment. I supply the same licences below those rates — the current figures are on the Google Workspace pricing section.

Still fighting your spam folder?

Tell me how many mailboxes you have and where they are hosted now, and I will come back with a fixed quote and a migration window — split delivery included, so nobody loses access while the move happens.

See Google Workspace plans →
Share it
Still Got Stuck? Need Help
Got a Project in Mind?
Schedule a Meeting!