Manage multiple GHL client domains by standardizing: use consistent subdomains (mail.clientdomain.com), create DNS record templates, maintain a tracking spreadsheet with domain status and credentials, and set up per-domain monitoring. Each client gets isolated SMTP credentials, their own authentication records, and dedicated reputation. Review all domains weekly for authentication and reputation health.
Managing Multiple Client Email Domains in GoHighLevel
The Multi-Domain Challenge
At 5 clients, managing email domains is simple. At 20, it's a process. At 50+, it's a system or it's chaos.
Every client domain needs:
- Sending subdomain configured
- SPF, DKIM, DMARC records in DNS
- SMTP credentials in the ESP
- Credentials configured in GHL
- Warmup completed
- Ongoing monitoring
Multiply that by 30 clients and you understand why most agencies get this wrong. See our multi-domain strategy guide and agency infrastructure guide for the framework.
Domain Naming Standards
Pick One Convention
Standardize your subdomain naming across all clients:
| Convention | Example | Best For |
|---|---|---|
| mail. | mail.clientdomain.com | General sending |
| send. | send.clientdomain.com | Marketing focus |
| notify. | notify.clientdomain.com | Transactional |
| marketing. | marketing.clientdomain.com | Clear purpose |
Pick one and use it everywhere. When troubleshooting at 2am, you don't want to remember which client uses "mail." and which uses "send."
Practitioner note: I use mail.clientdomain.com for every client unless they specifically need multiple sending streams. Consistency eliminates an entire category of mistakes. When I see a domain in logs, I instantly know the structure.
The Domain Tracking System
Minimum Viable Spreadsheet
Track every client domain with these columns:
| Column | Purpose |
|---|---|
| Client Name | Who it belongs to |
| Root Domain | clientdomain.com |
| Sending Subdomain | mail.clientdomain.com |
| ESP Provider | Mailgun / SendGrid / SES |
| SPF Status | Verified / Pending / Failed |
| DKIM Status | Verified / Pending / Failed |
| DMARC Status | p=none / p=quarantine / p=reject |
| DMARC RUA | Where reports go |
| Warmup Status | Complete / Week 2 / Not Started |
| Monthly Volume | Current average |
| GHL Sub-Account | Which sub-account uses it |
| Last Audit Date | When you last checked everything |
Update this after every client onboarding and during monthly reviews.
DNS Record Templates
For each new client, you're adding the same records with different values. Template them:
SPF (Mailgun):
mail.CLIENTDOMAIN.com. TXT "v=spf1 include:mailgun.org ~all"
SPF (SendGrid):
mail.CLIENTDOMAIN.com. TXT "v=spf1 include:sendgrid.net ~all"
DMARC:
_dmarc.mail.CLIENTDOMAIN.com. TXT "v=DMARC1; p=none; rua=mailto:[email protected]"
Note the DMARC rua points to your agency email so you receive reports for all clients centrally.
MX (Mailgun):
mail.CLIENTDOMAIN.com. MX 10 mxa.mailgun.org.
mail.CLIENTDOMAIN.com. MX 10 mxb.mailgun.org.
Client Onboarding Process
Step 1: Domain Access
Get DNS access for the client's domain. Options:
- Client adds you as a collaborator in Cloudflare/their DNS provider
- Client gives you credentials (less ideal)
- Client adds records themselves from your template (slowest)
Best approach: Have clients use Cloudflare and add your agency email as a member. This gives you direct DNS access without sharing passwords.
Step 2: Create Sending Domain in ESP
In Mailgun:
- Sending > Domains > Add Domain
- Enter mail.clientdomain.com
- Select region (US or EU based on client audience)
- Copy the required DNS records
Step 3: Add DNS Records
Add all records from your ESP to the client's DNS:
- SPF (TXT record)
- DKIM (TXT or CNAME records — typically 2)
- Tracking CNAME (for click/open tracking)
- MX records (for bounce handling)
Step 4: Verify Domain
Return to ESP dashboard and verify. All records should show green.
If verification fails:
- Wait 15-60 minutes for propagation
- Double-check for typos
- Confirm no conflicting records exist
- Use dig or nslookup to verify records are live
Step 5: Create SMTP Credentials
In Mailgun: Sending > Domain Settings > SMTP Credentials > New SMTP User
Create a dedicated credential for this client's domain. Don't reuse credentials across clients.
Step 6: Configure GHL Sub-Account
- Log into the client's GHL sub-account
- Settings > Email Services > Add SMTP
- Enter the client-specific SMTP credentials
- Test sending
Step 7: Warmup
Start the warmup process. New domains need 3-4 weeks of gradual volume increase.
Practitioner note: I batch client onboarding. Instead of setting up one client at a time, I do all DNS work for new clients on Monday, verify on Tuesday, configure GHL on Wednesday, and start warmup Thursday. Batching prevents context-switching and reduces errors.
Monitoring at Scale
Weekly Domain Review
Cycle through all client domains each week:
Monday-Tuesday: Check SMTP provider dashboards for each domain
- Bounce rate (alert if > 2%)
- Complaint rate (alert if > 0.1%)
- Delivery rate trends
Wednesday-Thursday: Check Google Postmaster Tools for each domain
- Domain reputation
- Spam rate
- Authentication pass rates
Friday: Review DMARC aggregate reports
- Authentication failures
- Unknown senders
- Policy compliance
Automated Alerting
Set up alerts in your SMTP provider for:
- Bounce rate exceeds 3% for any domain
- Complaint rate exceeds 0.1% for any domain
- Sending volume drops unexpectedly (may indicate broken automation)
- Sending volume spikes unexpectedly (may indicate compromised credentials)
Client Health Score
Create a simple scoring system:
| Metric | Good | Warning | Critical |
|---|---|---|---|
| Bounce Rate | < 1% | 1-3% | > 3% |
| Complaint Rate | < 0.05% | 0.05-0.1% | > 0.1% |
| GPT Reputation | High | Medium | Low/Bad |
| Auth Pass Rate | > 99% | 95-99% | < 95% |
Review scores monthly and prioritize intervention for clients in warning or critical status.
Common Multi-Domain Problems
DNS Record Conflicts
Multiple SPF records on the same domain break authentication. Ensure only ONE SPF record exists per (sub)domain.
Wrong:
mail.client.com. TXT "v=spf1 include:mailgun.org ~all"
mail.client.com. TXT "v=spf1 include:_spf.google.com ~all"
Right:
mail.client.com. TXT "v=spf1 include:mailgun.org ~all"
Client DNS Changes
Clients (or their web developers) sometimes modify DNS without telling you. A "helpful" change can break email authentication.
Prevention: Ask clients to notify you before any DNS changes. Better yet, manage DNS yourself through Cloudflare.
Credential Rotation
When team members leave your agency, rotate SMTP credentials for all domains they had access to.
Domain Expiration
Clients sometimes let domains expire. Set calendar reminders 60 days before expiration for every client domain you manage.
Practitioner note: I lost a client's email for three days because their domain expired on a Saturday and nobody noticed until Monday. Now I track every client domain expiration date and send reminders at 90, 60, and 30 days. A $12 domain renewal shouldn't take down an email infrastructure.
Client Offboarding
When a client leaves:
- Document their DNS records — Give them a list of what to keep or remove
- Remove domain from ESP — Delete SMTP credentials and domain
- Remove from GHL — Clear SMTP configuration in sub-account
- Update your tracking sheet — Mark domain as decommissioned
- Remove from monitoring — Stop tracking their domain
- Transition guide — If they're setting up their own email, provide guidance
If you need help building systems to manage email domains across your GHL client base, book a consultation. I'll set up the infrastructure, monitoring, and processes that scale with your agency.
Sources
- Cloudflare: Multi-User Access
- Mailgun: Domain Verification
- Google: Postmaster Tools Setup
- M3AAWG: Best Practices for Domain Management
v1.0 · April 2026
Frequently Asked Questions
How many email domains can I manage in GoHighLevel?
GHL has no hard limit on SMTP configurations across sub-accounts. Each sub-account can have its own SMTP credentials and sending domain. Agencies commonly manage 20-50+ client domains without issues.
Should every GHL client have their own sending domain?
Yes. Shared sending domains mean shared reputation. One client's bad list hygiene damages every other client using that domain. Per-client domains are more work to set up but prevent cross-contamination.
How do I track DNS records across multiple client domains?
Use a spreadsheet or project management tool tracking: client name, root domain, sending subdomain, ESP, SPF status, DKIM status, DMARC status, warmup stage, and weekly volume. Review and update monthly.
What naming convention should I use for client subdomains?
Pick one convention and use it everywhere: mail.clientdomain.com is the most common. Alternatives: send.clientdomain.com, email.clientdomain.com. Consistency makes management and troubleshooting faster.
What happens when a client leaves my GHL agency?
Remove the SMTP configuration from their sub-account, remove their domain from your ESP account, and document the DNS records they need to remove or update. Provide them with a transition guide if they're moving to another provider.
Want this handled for you?
Free 30-minute strategy call. Walk away with a plan either way.