How to Verify and Propagate Your Custom Domain in GoHighLevel
Setting up a custom domain in GoHighLevel is one of the first configuration steps you'll tackle when building funnels, websites, or client portals on the platform. Done correctly, it connects your branded URL to GoHighLevel's infrastructure so visitors reach your content without seeing generic platform subdomains. This guide walks you through the full process — from adding the domain to confirming propagation — and covers the most common issues you may encounter along the way.
Disclaimer: This site is an independent editorial and support resource. It is not affiliated with, endorsed by, or officially connected to HighLevel Inc. in any way.
Understanding How GoHighLevel Custom Domains Work
GoHighLevel uses a DNS (Domain Name System) record called a CNAME to point your custom domain (or subdomain) to its servers. When a visitor types your URL, their browser looks up that CNAME record, finds GoHighLevel's destination address, and loads your funnel or website.
A few important clarifications before you start:
- Root domains vs. subdomains: GoHighLevel recommends using a subdomain (e.g.,
go.yourdomain.comorfunnel.yourdomain.com) rather than a bare root domain (yourdomain.com) because CNAME records cannot technically be placed on root domains under standard DNS rules. Some DNS providers support workarounds (ALIAS or ANAME records), but behavior varies. - Propagation time: After you add or change a DNS record, it can take anywhere from a few minutes to 48 hours to propagate worldwide, depending on your domain registrar and TTL (Time to Live) settings.
- Plan availability: Custom domain features are available across GoHighLevel plans, but certain advanced options — such as branded client portals or white-label settings — may depend on your subscription tier. Check your current plan's feature list inside the platform.
Step 1 — Add Your Domain Inside GoHighLevel
- Log in to your GoHighLevel account and navigate to the sub-account where you want the domain to apply.
- In the left sidebar, click Settings.
- Select Domains from the settings menu.
- Click + Add Domain (or Add New Domain, depending on your interface version).
- Enter the full subdomain you want to use — for example,
go.yourdomain.com— and click Add. - GoHighLevel will display the CNAME target value you need to enter at your DNS provider. Copy this value exactly. It typically looks like a GoHighLevel-specific hostname (e.g., something ending in
.msgsndr.comor a similar platform address).
Do not close this screen until you have recorded both the Host/Name (your subdomain prefix, such as go) and the Value/Target (the CNAME destination GoHighLevel provides).
Step 2 — Create the CNAME Record at Your DNS Provider
This step happens entirely outside GoHighLevel, at the registrar or DNS host where your domain is managed (common examples include Cloudflare, GoDaddy, Namecheap, Google Domains/Squarespace Domains, and others). The interface differs per provider, but the logic is the same.
- Log in to your DNS provider's dashboard.
- Locate the DNS Management, Zone Editor, or DNS Records section for your domain.
- Click Add Record (or equivalent).
- Set the Type to CNAME.
- In the Host or Name field, enter only the subdomain prefix — for example,
go(not the fullgo.yourdomain.com; some providers add the root domain automatically). - In the Value, Points To, or Target field, paste the CNAME destination copied from GoHighLevel.
- Set the TTL to Auto or a low value like 300 seconds to speed up initial propagation.
- Save the record.
A Note on Cloudflare Users
If your DNS is managed through Cloudflare, make sure the proxy status for the CNAME record is set to DNS only (gray cloud icon), not Proxied (orange cloud). Proxying through Cloudflare can interfere with GoHighLevel's SSL certificate issuance and cause connection errors.
Step 3 — Verify the Domain in GoHighLevel
Once you've saved the DNS record, return to GoHighLevel:
- Go back to Settings → Domains.
- Find the domain you added and click Verify or Check DNS (button label may vary).
- If propagation is complete, the domain status will update to show a green checkmark or Verified label.
- If verification fails, wait 15–30 minutes and try again. Full propagation can take up to 48 hours in some cases.
After verification, GoHighLevel automatically provisions an SSL certificate for your domain. This process usually completes within a few minutes but can occasionally take longer. Your domain should be accessible via HTTPS once the certificate is active.
Troubleshooting Common Custom Domain Issues
Even with the correct steps, a few issues come up regularly. Here's how to approach them:
Domain shows "Not Verified" after several hours
- Use a tool like dnschecker.org or
digin your terminal to confirm the CNAME record is live and pointing to the correct destination. - Double-check that you entered the subdomain prefix correctly and didn't accidentally duplicate the root domain in the Host field.
SSL certificate not issuing
- Confirm your Cloudflare proxy is set to DNS only if applicable.
- Make sure no conflicting A records or other CNAME records exist for the same subdomain.
- Contact your DNS provider to verify there are no CAA records blocking SSL issuance from GoHighLevel's certificate authority.
Visitors see a browser security warning
- The SSL certificate may still be provisioning. Wait up to 30 minutes after domain verification before testing in a browser.
- Clear your browser cache or test in an incognito window.
The domain resolves but shows a blank page or wrong content
- Verify that the domain is assigned to the correct funnel, website, or page inside GoHighLevel. In your sub-account, go to the relevant funnel or website builder and confirm the domain is selected under its settings.
Root domain CNAME not working
- If you absolutely need a root domain, check whether your DNS provider supports ALIAS or ANAME records. Not all providers do, and behavior is not guaranteed. For cleaner results, redirect the root domain to the
wwwor custom subdomain at the registrar level and use the subdomain with GoHighLevel.
When GoHighLevel May Not Be the Right Fit
Custom domain setup in GoHighLevel is straightforward for subdomain-based configurations, but it requires comfort with DNS management. If your client or team has no access to DNS records, relies on a registrar with very limited DNS editing tools, or needs root-domain CNAME support that your provider doesn't offer, the process can become unnecessarily complex. In those scenarios, it's worth evaluating whether a dedicated hosting platform with simpler domain management might better serve that specific use case — particularly for users who are not technically inclined and don't have IT support available.
Once your custom domain is verified and SSL is active, you can assign it to any funnel, website, or portal within your GoHighLevel sub-account. Keeping a record of the CNAME value and your DNS provider credentials will save time if you need to replicate the setup for additional sub-accounts or domains in the future.
Still stuck?
If this walkthrough did not solve your case, describe your exact scenario. Every question we receive becomes a new tutorial here.
Send my question