WhatsApp us

GoHighLevel Login Page with Custom CSS: Build a Branded Client Portal in 2026

GoHighLevel Login Page with Custom CSS

Last updated:

A GoHighLevel custom login page is configured in Agency Settings → Company → Whitelabel to replace GHL’s default branding with your agency’s colors, logo, and domain. The configuration takes 30 to 45 minutes and requires a subdomain you control, a CNAME record pointing to whitelabel.ludicrous.cloud, your logo, and optional custom CSS. Copy-paste CSS and a cross-browser testing tip are in the CSS section below.

Your clients are logging into a page that looks like someone else’s software.

The generic app.gohighlevel.com login page tells clients they are using GoHighLevel, not your agency’s product. A branded client portal, your domain, your colors, your logo, changes the perceived value of your service immediately.

This guide covers the complete setup: domain configuration, CSS injection, testing across devices, and the most common setup mistakes.

What a White-Label GHL Client Portal Requires

A branded GoHighLevel client portal is not just a CSS change, it is a combination of DNS configuration, GHL white-label settings, and custom CSS working together. Each part has its own setting and setup time, as the table below shows.

ComponentWhere It Is Configured (Settings → Company → Whitelabel tab)Time Required
Custom DomainDNS registrar (Cloudflare, GoDaddy, etc.)5 min setup + 30 min propagation
CNAME RecordDNS registrar → point to whitelabel.ludicrous.cloud2 min
Whitelabel Domain FieldAgency Settings → Company → Whitelabel5 min
Logo UploadAgency Settings → Company → Whitelabel2 min
Custom CSSAgency Settings → Company → Whitelabel → Custom CSS15 to 20 min

Where the GoHighLevel Custom Login Page Settings Live Now

HighLevel keeps every login page branding control on one screen. From the agency view, open Settings → Company and switch to the Whitelabel tab. Older guides still mention a separate “White Labelling” menu, but that menu no longer exists. The tab covers the logo, colors and custom CSS.

Here is what each setting on that tab changes:

  • Logo: appears on the login screen, the app header, notification emails and widgets. HighLevel recommends roughly 350 × 180 px and a file under 2.5 MB. A wide, transparent PNG works best on both light and dark backgrounds.
  • Whitelabel Domain: the subdomain your clients type to log in, such as app.youragency.com. This is what turns the generic login URL into your own.
  • API Domain: brands the links HighLevel generates for forms, surveys, calendars, payment and review links. It is separate from the login domain.
  • Privacy Policy and Terms URLs: shown as legal links on the branded login page. Add them before you share the URL with clients.
  • Custom Code: a Custom JavaScript field and a Custom CSS field. CSS added here loads across the whole agency app, including the login page.
  • Theme: a light or dark mode choice that applies to the agency dashboard only, not to sub-accounts.

HighLevel itself calls custom CSS and JavaScript unsupported. When the core interface changes, your selectors can stop matching, so recheck the login page after major platform updates.

New to GoHighLevel? Try it free for 30 days

Get HighLevel's official 30-day free trial and free Bootcamp through our partner link (the standard trial is 14 days). Prefer it done for you? We set up GoHighLevel from $499, with a free website.

Start 30-day free trialHave us set it up

Partner link: we may earn a commission at no extra cost to you. Disclosure

Whitelabel Domain vs API Domain vs Client Portal Domain

Three different HighLevel features use a custom domain, and agencies mix them up often. Only one of them controls the login page: the Whitelabel Domain. The API Domain brands links in emails and SMS, and the Client Portal Domain brands the portal where contacts open courses and communities.

Domain typeWhat it brandsWhere it is setCNAME target
Whitelabel DomainThe login page and web app URLAgency Settings → Company → Whitelabelwhitelabel.ludicrous.cloud
API DomainLinks in emails and SMS (forms, calendars, payment and review links)Agency Settings → Company → Whitelabel → Domains, or the sub-account Business Profilebrand.ludicrous.cloud
Client Portal domainThe separate Client Portal product inside a sub-accountInside the sub-account’s Client Portal settingsShown in the portal’s domain setup screen

The whitelabel domain is set once per agency. Every sub-account user logs in through that same branded URL. You cannot give each client its own login domain from this field.

If you want a client to see their own brand on a domain, use the Client Portal or their funnel and website domains. The main CRM login stays on your agency’s whitelabel domain.

The Complete Custom CSS for a Branded GHL Login Page

Paste this CSS in Agency Settings → Company → Whitelabel → Custom CSS (under Custom Code). Replace the variable values with your brand colors and adjust the logo URL. HighLevel does not publish its login page class names and treats custom CSS as unsupported, so confirm the selectors in Chrome DevTools first.

Community templates currently target login classes prefixed .hl_login. Agency custom CSS also loads across the whole dashboard. So the broad input, label and * rules will restyle more than the login page unless you scope them to the login classes you find.

/* =============================================
   GoHighLevel White-Label Login Page CSS
   AutogenCRM
   ============================================= */

/* Brand variables, edit these only */
:root {
  --brand-bg:      #0f172a;   /* Dark page background */
  --brand-card:    #1e293b;   /* Login card background */
  --brand-primary: #2563eb;   /* Button & accent color */
  --brand-text:    #f1f5f9;   /* Main text color */
  --brand-subtle:  #94a3b8;   /* Placeholder & label color */
  --brand-border:  rgba(255,255,255,0.10);
}

/* Page background */
body.auth-page {
  background: var(--brand-bg) !important;
  background-image: none !important;
}

/* Login card */
.auth-card, .login-card {
  background: var(--brand-card) !important;
  border: 1px solid var(--brand-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 25px 50px rgba(0,0,0,0.4) !important;
}

/* Input fields */
input[type="email"],
input[type="password"],
input[type="text"] {
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid var(--brand-border) !important;
  border-radius: 8px !important;
  color: var(--brand-text) !important;
  padding: 12px 16px !important;
}

/* Labels and helper text */
.auth-label, label {
  color: var(--brand-subtle) !important;
  font-size: 14px !important;
}

/* Primary button, with Safari z-index fix */
button[type="submit"],
.auth-submit-button,
.btn-primary {
  background: var(--brand-primary) !important;
  border: none !important;
  border-radius: 8px !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  padding: 14px 24px !important;
  position: relative !important;     /* Safari fix */
  z-index: 999 !important;           /* Safari click fix */
  cursor: pointer !important;
}

/* Hide GHL default logo if uploading your own */
.auth-logo-default,
img[src*="gohighlevel"] {
  display: none !important;
}

/* iOS 17 font rendering fix */
* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

Expected Error, CSS not applying after save: Your browser may be showing a cached copy of the page. After saving new CSS, hard-refresh your browser (Ctrl+Shift+R or Cmd+Shift+R) and test the login URL in a private/incognito window. If it still does not apply, your selectors probably no longer match the current login markup, so inspect the page and update them.

Critical Failure Points: White-Label Login Setup Mistakes

Failure Point 1, Using the Wrong CNAME Target: GHL’s white-label login domain requires the CNAME to point to whitelabel.ludicrous.cloud. Older tutorials list app.msgsndr.com or a gohighlevel.com address, and copying those causes SSL errors and broken login pages. On Cloudflare, set the record to DNS only (gray cloud), or SSL will not provision.

Check GHL’s current white-label documentation for the exact CNAME value as it may update with platform changes.

Failure Point 2, Not Testing on Safari and iOS: Custom CSS that changes backgrounds or button layering can render differently in Safari than in Chrome. So a login button that works on desktop Chrome may not respond on iOS. Always test on Safari on both macOS and iOS before distributing your portal URL to clients.

Troubleshooting a Branded Login URL That Will Not Load

Most broken custom login pages come down to DNS, and CSS is rarely the cause. Check the CNAME target, remove duplicate records and confirm SSL has provisioned before you change any code. The checks below run in order, starting with the most common cause.

  1. Confirm the CNAME target. The record must point exactly to whitelabel.ludicrous.cloud. Old tutorials list other targets that no longer work for the agency login domain.
  2. Keep one record only. A second CNAME, A record or AAAA record on the same subdomain can cause SSL errors.
  3. Turn off the Cloudflare proxy. Set the record to DNS only (gray cloud). A proxied orange-cloud record stops HighLevel from issuing the SSL certificate.
  4. Give it time. HighLevel suggests allowing up to 30 minutes for DNS to propagate. SSL is issued automatically after the record resolves.
  5. Re-save if you are migrating. If the domain was set up on an older target, delete it from the Whitelabel Domain field, click Update Company, then re-enter it and save again.
  6. Check the browser. The browser needs TLS 1.2 or 1.3. Old browsers on locked-down office machines can show certificate warnings even when the setup is correct.

If the page loads but looks unbranded, test it in a private window. If the logo shows but your colors do not, your CSS selectors probably no longer match the current login markup. Inspect the page in Chrome DevTools and update the class names.

The Consensus Break: The Portal URL Matters More Than the CSS

Most white-label login guides focus on the CSS. The CSS makes it look right. The URL makes clients trust it. A familiar subdomain such as app.youragency.com tells clients the login belongs to your agency and cuts down on support questions.

HighLevel supports one whitelabel login domain per agency, so every client signs in at the same branded URL. More portal setup guidance at our how it works page, and agency snapshot templates at AutogenCRM.

What a Custom Login Page Does Not Change

A branded login URL covers the web app. It does not rebrand everything a client might see, so set expectations before launch. Clients on phones still use the LeadConnector app unless you buy the white-label mobile app, and some other places keep default branding.

  • Mobile app: clients using a phone still log in through the LeadConnector app unless you buy HighLevel’s white-label mobile app. That app is a separate paid add-on on every plan except Enterprise.
  • Favicon: HighLevel has no agency-wide favicon setting. Favicons are set per asset, such as sites, the Client Portal and memberships.
  • System links: links inside emails and texts keep the default domain until you also set up an API Domain.
  • Session length: how long clients stay logged in is controlled separately, under Company → Advanced Settings → Session Timeout.

Covering these four points at handoff saves a round of “why does it still say LeadConnector?” support tickets.

Frequently Asked Questions

What GHL plan do I need for a white-label login page?

Every current HighLevel agency plan supports a branded login page. Starter ($97/mo), Unlimited ($297/mo) and Agency Pro ($497/mo, formerly SaaS Pro) all include a custom whitelabel domain and the white-label desktop app. Agency Pro adds SaaS mode and the SaaS Configurator. The white-label mobile app is a separate paid add-on on these plans and is bundled only with Enterprise.

Can I use a custom domain for the GHL client portal?

Yes. The white-label login page supports any custom domain you own. You configure it by adding a CNAME record at your DNS registrar pointing your custom subdomain (e.g. app.youragency.com) to whitelabel.ludicrous.cloud, then entering it in Agency Settings → Company → Whitelabel → Whitelabel Domain. HighLevel issues the SSL certificate automatically once the record resolves, so allow up to 30 minutes for DNS propagation. On Cloudflare, keep the record DNS only (gray cloud).

Does the white-label login page affect how clients access their CRM data?

No. The white-label login page is purely a visual and domain-level customization. Client data, sub-account configuration, workflows, and CRM records are unchanged. The login page change affects only what URL clients visit and how the page looks. All functionality remains identical to the standard GHL login, and sign-in is still handled by HighLevel’s own login system, regardless of what domain the client types.

What is the GoHighLevel login URL after white labeling?

Your clients log in at the subdomain you enter in the Whitelabel Domain field, for example app.youragency.com, instead of app.gohighlevel.com. The default URL still works for you as the agency owner. Once the CNAME resolves and SSL is issued, share only the branded URL with clients so they never see HighLevel branding.

Can each client have their own branded login domain in GHL?

No. HighLevel allows one whitelabel login domain per agency, and every sub-account user signs in through it. For client-specific branding, connect the client’s own domain to their funnels and websites or to the Client Portal. Those assets support separate custom domains, but the main CRM login stays on your agency domain.

Does the custom login page show in the GoHighLevel mobile app?

No. The whitelabel domain and custom CSS apply to the web app in a browser. On phones, clients use the LeadConnector app, which shows HighLevel’s standard branding. To put your own name and logo on the mobile login, you need the white-label mobile app, a paid add-on unless you are on Enterprise.

Do I need custom CSS to brand the HighLevel login page?

No. Uploading your logo, adding Privacy and Terms URLs and connecting a whitelabel domain already gives clients a branded login page. Custom CSS is optional. It only changes colors, backgrounds and button styles. Because HighLevel treats custom CSS as unsupported, keep it small and recheck it after platform updates.

Ready to Get Your GoHighLevel System Built?

We'll build your entire GHL setup for $499 and give you a free professional website.

Book a Free Call See Packages & Pricing

Or call +1 (681) 276-7045 · Mon–Fri, 9 AM–5 PM ET

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top