Skip to content

Guides

GoHighLevel Custom CSS: Where to Add It and How to Roll Back

Where to add GoHighLevel custom CSS and JavaScript, how to install a theme safely, test it on one sub-account, and roll it back or remove it in minutes.

By the GHL Dashboard Builder teamPublished 24 min read · 5,607 words

Where do you add custom CSS in GoHighLevel, and how do you roll it back?

In the agency view, open Settings, Company, Whitelabel and scroll to Custom Code: paste your stylesheet in Custom CSS and your script in Custom JavaScript, then save and hard-refresh. Before pasting, copy the existing code into a dated file. To roll back, paste that copy back, or clear both boxes to return to standard HighLevel.

Key takeaways

  • Dashboard-wide custom CSS and JavaScript go in the agency view under Settings, Company, Whitelabel, Custom Code. Funnels, forms and community groups have their own, separate CSS fields.
  • Agency-level code applies to every user in every sub-account as soon as it is saved, so a mistake reaches all clients at once. HighLevel describes custom code as unsupported.
  • The most useful rollback step happens before the install: copy whatever is already in both boxes into a dated file, so restoring takes two pastes instead of guesswork.
  • Hosted install lines (one CSS line and one JavaScript line that load the theme from a server) let later changes go live without pasting again, and let you switch a theme off without opening HighLevel.
  • Test a new look on one sub-account first by limiting the design to that sub-account's link or Location ID, then widen it to the whole agency.
  • Clearing the two Custom Code boxes removes a theme completely. It changes how HighLevel looks, not your data, so nothing in contacts, pipelines or settings is lost.
In this guide
  1. Where do you add custom CSS in GoHighLevel?
  2. What happens when you save code in HighLevel’s Custom Code boxes?
  3. Pasted stylesheet or hosted install lines: which install method is safer?
  4. How does GHL Dashboard Builder install a GoHighLevel theme?
  5. What should you prepare before installing a GoHighLevel theme?
  6. How do you install a GoHighLevel theme step by step?
  7. How do you test a theme on one sub-account before everyone sees it?
  8. How do you roll back a GoHighLevel theme?
  9. How do you remove a theme from GoHighLevel completely?
  10. Why doesn’t my change show after I install or deploy?
  11. What can go wrong, and what doesn’t a theme install change?
  12. Should you install the theme yourself or have it installed?
  13. What to do next
  14. Frequently asked questions

You found a theme you like, or a developer sent you a stylesheet, and now you need to put it into HighLevel without breaking anything your clients use every day. The questions come quickly. Which box does it go in? Will every sub-account change at once? What happens if a client logs in while it looks wrong? And if it does go wrong, how do you get back to how things were in under a minute?

This guide answers those questions for HighLevel (also called GoHighLevel or GHL). It shows where to add GoHighLevel custom CSS and JavaScript, how the two common install methods compare, how to install a theme step by step with HighLevel’s menu paths, how to test it on one sub-account first, and four ways to roll it back or remove it. It also covers why a change sometimes does not show, and what a theme install cannot change. GHL Dashboard Builder is an independent design service and is not affiliated with HighLevel; where our product helps, we say exactly what it does and which plan includes it.

Where do you add custom CSS in GoHighLevel?

Dashboard-wide custom CSS goes in the agency view under Settings, Company, Whitelabel, Custom Code, in the field called Custom CSS. Custom JavaScript goes in the field next to it. Code there styles the HighLevel app for every sub-account. Funnels, websites, forms and community groups have their own CSS fields, which only style those pages.

HighLevel’s agency company settings article places the custom code fields in the Whitelabel section of the agency’s company settings, alongside the logo, white-label domain and legal links, and describes custom CSS and JavaScript as powerful but unsupported. In some accounts the tab is labelled White Label rather than Whitelabel. The path at the time of writing:

  1. Switch to the agency view (the account switcher at the top of the sidebar).
  2. Open Settings, then Company.
  3. Open the Whitelabel tab.
  4. Scroll down to Custom Code. You will see Custom CSS and Custom JavaScript.

The most common install mistake is pasting dashboard CSS somewhere else. Here is where each kind of custom code lives, so you can rule that out.

Where the field isWhat it stylesWho sees the result
Agency view: Settings, Company, Whitelabel, Custom CodeThe HighLevel app: sidebar, header, every page in every sub-accountYou, your team and your clients’ users
A funnel or website: its Settings, Custom CSSThat site’s published pagesVisitors to the site
A form, survey or quiz: Styles, Advanced, Custom CSSFields and buttons inside that formPeople filling in the form
A community group: Settings, Branding, Advanced OptionsOne community groupMembers of that group

Forms are the case that trips people up most. HighLevel’s guide to custom CSS for forms, surveys and quizzes explains that an embedded form loads inside an iframe, so CSS on the surrounding page cannot reach its fields. The same principle applies the other way: CSS in the agency Custom Code box never changes a funnel page or a form.

The rest of this guide is about the first row, because that is where a dashboard theme is installed and where a mistake reaches every client. If you want the wider picture of what CSS can change in the dashboard and how to write selectors that last, our complete guide to HighLevel custom CSS covers that in depth.

What happens when you save code in HighLevel’s Custom Code boxes?

Saved agency-level code loads for every user, in every sub-account, from the next page load. There is no draft, preview or staging step in that box. A rule that hides the wrong element, or a script with an error, affects all your clients until you change it, which is why the backup step before an install matters so much.

Three facts shape how you should install anything there.

It is global. The agency Custom Code fields load for your team and for your clients’ users in every sub-account. HighLevel has no built-in option in that box to apply code to one sub-account only. If you want a look for one client, the code itself has to detect which sub-account is open (we come back to this below).

It is unsupported. HighLevel describes custom code as unsupported, and its article on custom CSS and JavaScript for community groups states plainly that HighLevel does not provide guidance or support for writing, debugging or maintaining custom code. HighLevel also changes its interface regularly, and a change to the elements your CSS targets can stop a rule working. That is not a reason to avoid custom code; it is a reason to keep it maintainable and easy to roll back.

It can affect loading. HighLevel’s help article on CRM loading states and the impact of custom CSS and JS notes that custom code which conflicts with the app’s loader can stop it showing its normal states, and suggests testing in a private (incognito) window, then clearing site data and hard-refreshing, when pages seem stuck. Keep that article in mind for the troubleshooting section later.

It is worth noticing how HighLevel handles the same risk in community groups. There, custom CSS and JavaScript have a Test Preview button and a Live Mode switch, and adding customCode=false to a community’s address loads it without custom code for your session. The agency Custom Code box has none of that, so you have to build the same safety yourself: a backup, a test account and a quick way back.

Pasted stylesheet or hosted install lines: which install method is safer?

There are two ways to put a theme into HighLevel. You can paste the whole stylesheet and script into the two boxes, or paste two short lines that load the theme from a server. Pasted code is simple and fully visible; hosted lines make later changes and rollbacks faster, because you never edit HighLevel again after the first install.

A pasted stylesheet is what most free themes and many freelancers deliver: hundreds or thousands of lines of CSS, and sometimes a long script, pasted straight into Custom CSS and Custom JavaScript. Everything is in HighLevel, which you can read at any time. The downside is that every change, however small, means opening the box, finding the right rule, editing it in a field that is not built for editing code, and saving it live for every client at once.

Hosted install lines are one short line in Custom CSS that loads a stylesheet, and one short line in Custom JavaScript that loads a script. The theme itself lives on the provider’s server. You paste the lines once. When the theme changes, the same lines load the new version, so you never edit HighLevel again unless you want to remove the theme.

QuestionPasted stylesheetHosted install lines
What goes into HighLevelThe full CSS and JavaScriptOne CSS line and one JavaScript line
Can you read the code in HighLevel?Yes, all of itYou see the two lines; the code is on the provider’s server
Changing the theme laterEdit the code in the box and saveChange the design, publish it; the same lines load it
Rolling backPaste your saved copy of the old codePaste the old code back, publish the previous design, or switch the theme off at the provider
Removing itClear both boxesClear both boxes
Depends on an outside server?NoYes, the provider’s server must be reachable
Risk of a half-pasted or truncated editHigher, especially for long scriptsLow, the lines are short

Neither method is wrong. A pasted stylesheet suits an agency with a developer who keeps the code in version control and pastes tested releases. Hosted lines suit agencies that want to change colors, menu wording or banners without touching code, and want a theme switch that does not require logging in to HighLevel’s settings. Either way, the cascade rule applies: when two CSS rules are equally specific, the one that appears later wins, as web.dev’s lesson on the CSS cascade explains. So if you keep extra rules alongside a theme, put them after the theme, or they may be overridden.

How does GHL Dashboard Builder install a GoHighLevel theme?

GHL Dashboard Builder is an independent design service that turns the standard HighLevel (GoHighLevel) dashboard into a branded platform: your colors, menu, login design, privacy mode and your clients’ language, installed with two lines of code. On every plan, the install is one CSS line and one JavaScript line in Custom Code, and we install and check it for you as part of the one-time setup fee.

The two lines load the version of your design that was last deployed, not the version you are editing. That is the part that makes installs and rollbacks calm. You can change the design, preview it, and ask a colleague to review it, while your clients keep seeing the current live version. When you are ready, you press Deploy to live. HighLevel shows the new version within a minute or two; refresh it then. Nothing is pasted into HighLevel again.

Two-line install in GHL Dashboard Builder, shown on HighLevel's real screens
The two install lines, one for Custom CSS and one for Custom JavaScript, ready to paste into HighLevel's Custom Code settings.See two-line install →

Here is what the install side of the product does, and which plan includes it.

FeatureWhat it does for your agency and clientsPlan
Two-line installOne CSS line and one JavaScript line in Custom Code, pasted onceStarter and up
Deploy to liveEdits stay private until you deploy; then the same two lines load the new versionStarter and up
Turn theme off and onKeeps the two lines in HighLevel but loads nothing, so the account looks like plain HighLevel, until you turn it on againStarter and up
Live preview on every deviceYour design on a live copy of HighLevel’s screens on desktop, tablet and phone, before anything is installedStarter and up
Whole agency or chosen sub-accountsEach design applies to the whole agency or only to sub-accounts you add by link or Location IDStarter and up (1 design); Pro up to 3; Agency up to 100
Installation and checkingWe install the design in your HighLevel, configure it and check every screenAll plans, one-time $100 setup fee
Full CSS and JavaScript filesDownload the complete files instead of the hosted lines, and add your own CSS and JavaScript on topAgency
Export and import design filesSave a design as a file and bring it back laterAgency

The theme loads as one stylesheet and one script, about 60 KB compressed, and the browser caches it after the first visit. It only changes how HighLevel looks and what its menu says, plus the features you switch on, such as the welcome banner or privacy mode; it does not read or send your data. The full list of 18 features is on the features page, and the two-line install page shows the install screen itself.

Infographic

Installing a themeby the numbers

2

lines to paste into HighLevel: one CSS, one JavaScript

(GHL Dashboard Builder)

5 min

about how long the install takes in Custom Code

(GHL Dashboard Builder)

60 KB

about the theme's compressed size, cached after the first visit

(GHL Dashboard Builder)

$100

one-time setup fee: we install it, configure it and check every screen

(GHL Dashboard Builder pricing)

Source: GHL Dashboard Builder product documentation and pricing page, November 2026.

GHL Dashboard Builder

The install on our side follows the same routine described in the step-by-step section below: back up what is already in the boxes, paste the two lines, save, hard-refresh and walk through the screens. If the theme does not apply correctly on your account, we fix it at no extra cost. To remove it, you clear the two boxes; there is nothing else to uninstall.

One honest trade-off: our install instructions tell you to replace whatever is in Custom CSS and Custom JavaScript with the two lines. If your Custom JavaScript box already holds other scripts, such as an analytics tag or a chat widget, save a copy and mention it before the install so we can plan for it. On the Agency plan you can add your own CSS and JavaScript on top of the generated theme.

What should you prepare before installing a GoHighLevel theme?

Prepare four things before you open Custom Code: a dated copy of the code already in both boxes, a test sub-account, a non-admin test user, and a quiet time to install. Ten minutes of preparation turns a broken install into a one-minute rollback instead of an evening of guesswork while clients send screenshots.

Use this checklist. Every row exists because skipping it causes a recognizable problem later.

PrepareWhy it mattersHow to do it
A copy of the current codeIt is your rollback; without it, “go back” means rebuilding from memoryCopy both boxes into a text file named with today’s date
A list of other scripts in the boxesAnalytics, chat widgets or tracking tags can be lost when you replace the contentsRead the Custom JavaScript box line by line and note what each script is for
A test sub-accountYou need somewhere to look that is not a paying client’s busiest accountUse an internal or demo sub-account with some sample contacts and a pipeline
A non-admin test userMenus and pages differ by role; admins see more than clientsCreate or reuse a user with the same role your clients have
A preview of the lookYou should approve the design before it is live, not afterCheck the design on desktop, tablet and phone in a preview first
A quiet install timeIf something goes wrong, fewer clients see itInstall outside your clients’ busiest hours, and not before a holiday
A way to tell clientsA changed menu surprises peopleSend a short note: what changes, when, and who to contact

The backup row deserves emphasis. If the boxes are empty today, write that down too (“both boxes empty on 3 November”); knowing that the original state was empty is itself a rollback plan. If they hold code from a previous theme or developer, keep that file somewhere you will find it in six months, not on one person’s desktop.

The preview row is where most agencies save time. Our free builder shows your colors, logo, menu wording and language on a live copy of HighLevel’s screens, and never connects to your HighLevel account, so you can try several looks before anything touches a client.

Device preview in GHL Dashboard Builder, shown on HighLevel's real screens
A design previewed on desktop, tablet and phone on a copy of HighLevel's screens, before anything is installed.See device preview →

If you have not settled on a look yet, starting from a finished template is faster and less risky than starting blank, because the template has already been checked on HighLevel’s screens. The templates gallery has 27 designs, from dark technical looks to light, calm ones and industry versions with the menu wording already set. A familiar design such as the Atlas template, which keeps HighLevel’s blue and adds a warm sand accent on a slate sidebar, is a sensible first install for an agency that wants clients to notice the brand without having to relearn the screens.

How do you install a GoHighLevel theme step by step?

Back up the existing code, paste the CSS into Custom CSS and the JavaScript into Custom JavaScript, save, then hard-refresh and check the screens your clients use most as a non-admin user. The whole routine takes about ten minutes; pasting is the shortest part of it.

Infographic

Installing a GoHighLevel themein six steps

  1. 1

    Back up first

    Copy both Custom Code boxes into a dated file.

  2. 2

    Open Custom Code

    Agency view, Settings, Company, Whitelabel, Custom Code.

  3. 3

    Paste the code

    CSS into Custom CSS, JavaScript into Custom JavaScript.

  4. 4

    Save and refresh

    Save, then hard-refresh with Ctrl+Shift+R or Cmd+Shift+R.

  5. 5

    Check as a client

    Walk the main screens as a non-admin user.

  6. 6

    Check on a phone

    Open the web app in a phone browser and on a tablet.

GHL Dashboard Builder

Menu paths below are as HighLevel’s help center describes them at the time of writing. HighLevel moves settings from time to time, so if a label differs in your account, search the help center for “agency company settings”.

1. Back up what is already there

  1. Switch to the agency view and open Settings, Company, Whitelabel.
  2. Scroll to Custom Code.
  3. Select everything in Custom CSS, copy it and paste it into a text file.
  4. Do the same for Custom JavaScript, in the same file under a clear heading.
  5. Save the file with today’s date in its name, somewhere your team can find it.

2. Paste the new code

  1. Paste the new CSS into Custom CSS. With hosted install lines, replace the contents with the CSS line. With a pasted stylesheet, replace the old theme’s code, and keep any rules you deliberately want to add at the end.
  2. Paste the new JavaScript into Custom JavaScript, in the same way. If other scripts you want to keep are in the box, make sure they are still there and complete.
  3. Read both boxes once more. A missing closing brace in CSS, or a cut-off line in a script, is easy to spot now and hard to find later.
  4. Save. HighLevel may show a warning about adding third-party scripts; read it and continue only if you trust the code.

3. Refresh and check

  1. Open a sub-account in a new tab and hard-refresh: Ctrl+Shift+R on Windows and Linux, Cmd+Shift+R on a Mac. A normal refresh can show the old, cached theme.
  2. Walk the screens your clients use every day: Dashboard, Conversations, Calendars, Contacts, Opportunities, Payments and Settings.
  3. Open dropdowns, modals, date pickers and the search box. Text that is unreadable on a new background usually hides in pop-ups.
  4. Log in as your non-admin test user and repeat the walk. Some menus and pages differ by role.
  5. Narrow the browser window to tablet width, then open the web app in a phone browser.
  6. Keep the backup file until the theme has run for at least a week without complaints.

If something looks wrong in step 3, do not start debugging live code while clients are logged in. Roll back first (the next sections show how), then fix the problem calmly in a preview or on a test account. Our guide to why GoHighLevel custom CSS stops working walks through finding the cause once the pressure is off.

How do you test a theme on one sub-account before everyone sees it?

Because HighLevel’s Custom Code box applies to every sub-account, a test on one account needs code that checks which sub-account is open. With GHL Dashboard Builder, limit the design to chosen sub-accounts by pasting a sub-account’s link or Location ID; only that account changes, and everyone else keeps their current look.

The pattern is simple and worth using for every significant change, not only the first install:

  1. Set the design’s scope to only these sub-accounts and add your test sub-account, by its link or its Location ID.
  2. Install the two lines (or, if they are already installed, deploy the change).
  3. Check the test sub-account as an admin and as a non-admin user, on desktop and on a phone.
  4. Add one friendly client, if you want a real user’s opinion, and give them a few days.
  5. Switch the scope to the whole agency and deploy again.
Single sub-account in GHL Dashboard Builder, shown on HighLevel's real screens
A design limited to chosen sub-accounts by link or Location ID, while every other sub-account keeps its current look.See single sub-account →

The Location ID is the sub-account’s identifier in HighLevel. You will find it in your browser’s address bar when the sub-account is open, right after /location/. Pasting the whole link works too; the builder reads the ID from it. Our guide to GHL sub-account branding covers finding the Location ID and the edge cases in detail.

One mistake to avoid: if a design is set to chosen sub-accounts but none are listed, HighLevel looks unchanged everywhere, which can look like a failed install. Our install screen warns about this, but it is worth knowing if you see no change at all. And one limit to know: one design is shown in each sub-account. Starter includes 1 design, Pro up to 3 and Agency up to 100, each for the whole agency or for chosen sub-accounts. If you want a different look for many clients, talk to us about the setup first.

How do you roll back a GoHighLevel theme?

Roll back by putting HighLevel back in the state you saved before the install: paste the backed-up code into both boxes and save, or clear both boxes for the standard look. With hosted install lines you have two faster options that never open HighLevel’s settings: switch the theme off, or revert the design and deploy again.

Which one to use depends on what went wrong and how quickly you need it gone. Here are the four options side by side.

Rollback optionWhen to use itWhat clients see afterwardsTouches HighLevel’s settings?
Turn the theme off (hosted lines)Something is badly wrong and you need it gone nowPlain HighLevel, until you turn it on againNo
Revert the design and deploy (hosted lines)One setting is wrong, such as a color or a menu labelThe design with that setting fixedNo
Restore your saved copyYou want the exact previous theme or code backThe previous lookYes, two pastes
Clear both boxesYou want no custom code at allPlain HighLevelYes

The chart counts the steps in each procedure as written below, so you can see which is fastest under pressure.

Steps to roll back a GoHighLevel theme, by method
Turn the theme off3 steps
Revert and deploy4 steps
Clear both boxes5 steps
Restore saved copy6 steps

Source: Step counts from the rollback procedures in this guide.

Turn the theme off

This is the emergency switch. The two lines stay in HighLevel, but they load nothing, so every sub-account looks like plain HighLevel.

  1. Sign in to your GHL Dashboard Builder account and open Install links on the design.
  2. Press Turn theme off.
  3. Hard-refresh HighLevel and confirm the standard look is back.

When the design is fixed, press Turn theme on. You never had to open HighLevel’s settings. The same panel has Replace links, for the rare case where your install lines were shared somewhere they should not be.

Revert the design and deploy

Use this when one setting is wrong and the rest of the theme is fine: a color with poor contrast, a renamed menu item a client dislikes, a banner link that points to the wrong page.

  1. Open the design in the editor and change the setting back. Undo (Ctrl+Z, or Cmd+Z on a Mac) steps back through recent edits.
  2. Check the result in the preview.
  3. Press Deploy to live.
  4. After a minute or two, hard-refresh HighLevel and check.

Because edits stay private until you deploy, you can take your time over the fix. On the Agency plan, export the design file before a big change; importing it later brings the whole previous design back.

Restore your saved copy

This is the classic rollback, and it works for any theme from any source, as long as you made the backup.

  1. Open your dated backup file.
  2. In the agency view, go to Settings, Company, Whitelabel, Custom Code.
  3. Replace everything in Custom CSS with the CSS from the backup.
  4. Replace everything in Custom JavaScript with the JavaScript from the backup.
  5. Save.
  6. Hard-refresh a sub-account and check the screens you changed.

Clear both boxes

  1. In the agency view, go to Settings, Company, Whitelabel, Custom Code.
  2. Copy both boxes into a dated file, even now: you may want this version again.
  3. Delete everything in Custom CSS and Custom JavaScript.
  4. Save.
  5. Hard-refresh a sub-account and confirm the standard look is back.

Whatever method you use, tell the clients who reported the problem that it is fixed, and note what happened in the same place as your backup files. The next install will be faster for it.

How do you remove a theme from GoHighLevel completely?

Clear both Custom Code boxes in the agency view, save and hard-refresh. That removes the theme for every user at once. A theme only changes how the interface looks and what the menu says, so contacts, conversations, pipelines, automations and settings are untouched, before and after.

There is nothing else to uninstall. A dashboard theme installed through Custom Code does not add apps, users, workflows or fields to your account. What stays after removal is everything HighLevel’s own white-label settings control: your white-label domain, logo, favicon and legal links remain as you set them, because those are separate settings in the same Whitelabel tab, not part of the theme. Our guide to agency versus sub-account settings in GoHighLevel explains which branding settings live where, if you are not sure what a removal will leave in place.

A few things to check after a full removal:

  • Other scripts. If the Custom JavaScript box also held analytics or a chat widget, clearing the box removed those too. Paste back the scripts you want to keep from your backup.
  • Client expectations. If clients were used to renamed menu items, such as Patients instead of Contacts, the standard labels will come back. Tell them before you remove the theme, not after.
  • Help material. Videos and help articles you made with the theme will no longer match what clients see.
  • Your provider’s account. With hosted lines, clearing the boxes stops the theme loading even though your design still exists in your GHL Dashboard Builder account. You can install it again later by pasting the same two lines.

If you are removing a theme because it broke after a HighLevel update, consider whether a refresh of the theme is the better fix. Our plans include 12 months of updates that keep a theme working through HighLevel’s changes (lifetime on Agency), then optional updates at $99 a year.

Why doesn’t my change show after I install or deploy?

Usually because the browser is still showing a cached version, the code is in the wrong box, a syntax error stops the rest of the stylesheet, or the design is limited to sub-accounts that do not include the one you opened. Hard-refresh first, then test in a private window; most cases end there.

Work through the causes in this order, from most to least common.

What you seeLikely causeWhat to do
Nothing changed at allBrowser cacheHard-refresh with Ctrl+Shift+R or Cmd+Shift+R, or open a private window
Nothing changed in one sub-accountThe design is limited to other sub-accountsCheck the design’s scope and add that sub-account, then deploy
Nothing changed anywhere, design limited to sub-accountsNo sub-accounts listed in the scopeAdd a sub-account or choose the whole agency, then deploy
Change shows for you but not for a clientThe client’s browser has the old version cachedAsk them to hard-refresh, or wait for the cache to expire
Deployed a minute ago, still the old lookThe new version has not reached HighLevel yetWait a minute or two, then hard-refresh
Half the theme worksA syntax error, such as a missing brace, stops later rulesCheck the code where the working part ends
Some rules ignoredHighLevel’s own rules are more specific, or come laterMake the selector more specific, or place your rule after the theme
Pages stall or keep loadingCustom code conflicting with HighLevel’s loaderTest in a private window; if that loads, roll back and fix the code
Funnel or form unchangedAgency CSS does not style funnels or formsUse the funnel’s or form’s own CSS field

The last two rows come straight from HighLevel’s own help center. The loading-states article recommends a private window first, then clearing site data and cookies and hard-refreshing, and it names custom CSS and JavaScript as a possible cause of loader problems. If the private window loads normally, the cause is likely in the cache or in custom code, and a rollback will confirm which.

For the “some rules ignored” row, remember the cascade: between two equally specific rules, the later one wins, as the web.dev lesson on the cascade explains. Our guide to fixing GoHighLevel custom CSS that is not working goes deeper into specificity and HighLevel’s changing selectors.

What can go wrong, and what doesn’t a theme install change?

Custom code is unsupported by HighLevel, so a large HighLevel update can require a theme refresh, and agency-level JavaScript runs for every user. A theme changes the web app in the browser; it does not change HighLevel’s mobile app, system emails, permissions or data. Know these limits before you promise clients anything.

HighLevel updates. HighLevel changes its interface regularly and describes custom code as unsupported. A rule that targets an element HighLevel renames or rebuilds can stop working. With your own code, plan to check the theme after major releases. With GHL Dashboard Builder, updates for 12 months (lifetime on Agency) cover keeping the theme in step with HighLevel’s changes.

Script safety. Agency-level JavaScript runs in every user’s browser with that user’s access. The OWASP guide to managing third-party JavaScript names the main risks of loading scripts from outside providers: loss of control over what runs, code that executes with the user’s privileges, and information sent to third parties. In practice: install only code you wrote, code you can read, or code from a provider that states plainly what it does, and remove scripts you no longer use. Our installed code does not read or send your data, and if your install lines were ever shared where they should not be, you can replace them.

The outside server. Hosted lines depend on the provider’s server. If it were unreachable, the theme would not load and HighLevel would show its standard look; your account and data would keep working. That is the trade-off for being able to change and switch off the theme without opening HighLevel’s settings.

What a theme does not change:

  • The mobile app. The design restyles HighLevel in a browser, including a phone’s browser. HighLevel’s own app, and the white-label app add-on, are not changed by Custom Code.
  • System emails and HighLevel’s own text. Emails follow HighLevel’s templates, and text inside HighLevel’s pages and builders follows HighLevel’s language settings, even when the menu is translated.
  • Permissions. Hiding a menu item with a theme hides it; it does not stop a user opening that page by a direct link. Use HighLevel’s user roles and feature settings to control access.
  • The login page, through Custom Code. The installed code does not change HighLevel’s login page. From our Pro plan, we design the branded login page with you as a separate step.
  • Funnels, websites and forms. These have their own CSS fields, as covered at the start.

Existing scripts. Replacing the contents of Custom JavaScript removes anything else that was there. This is the most common cause of “our chat widget disappeared after the new theme”. The backup step prevents it.

None of these is a reason to avoid a theme. They are the reasons to install one with a backup, a test account and a rollback plan, which is the whole point of this guide. The white-label checklist for GoHighLevel is a useful pass before you roll a new look out to every client, and the hub guide to GoHighLevel dashboard customization shows everything else a theme can change once it is installed.

Should you install the theme yourself or have it installed?

Install it yourself if you are comfortable with HighLevel’s settings and have made the backup; the paste takes minutes. Have it installed if you would rather not touch code that affects every client, or if your Custom JavaScript box already holds scripts you need to keep. Either way, the backup and the test are what make it safe.

Here is how the three common routes compare for the install and the years after it.

RouteWho pastes the codeChanging the look laterRollbackUpkeep after HighLevel updates
Free theme, pasted yourselfYouEdit the code in HighLevelPaste your backupYou find and fix breaks
Freelance developerThe developer, or you with their filesAnother request to the developerDepends on their processPaid per fix, or a retainer
GHL Dashboard BuilderWe install it (one-time $100 setup fee), or you paste two linesChange the design, press Deploy to liveTurn the theme off, revert and deploy, or clear two boxes12 months included, lifetime on Agency

Our plans are one-time payments with no monthly fees: Starter $280 for 1 design, Pro $480 for up to 3 designs with the menu editor, login page and 15 languages, and Agency $880 for up to 100 designs, a look designed by our team, your own custom code and lifetime updates. Every plan adds a one-time $100 setup fee, for which we install and configure the design in your HighLevel and check every screen. Starter and Pro include 12 months of updates, then optional updates at $99 a year; without them the theme keeps working as it is. The pricing page has the full plan contents.

If you write your own CSS and want the install benefits without hand-editing selectors, our GHL custom CSS page explains how the builder writes the CSS and JavaScript for you, and the GoHighLevel theme builder page shows the design side.

What to do next

  1. Back up today. Open Settings, Company, Whitelabel, Custom Code in the agency view and copy both boxes into a dated file, even if you are not changing anything yet.
  2. List your scripts. Note every script in Custom JavaScript and what it does, so a future install does not remove one by accident.
  3. Pick a test sub-account and user. Choose an internal sub-account and a non-admin user you will use to check every future change.
  4. Try the look first. Put your colors, logo and menu wording together in the free builder and check it on desktop, tablet and phone.
  5. Install on one sub-account, then widen. Limit the first install to your test sub-account, walk the screens, then switch it to the whole agency and deploy.

Explore GHL Dashboard Builder

Frequently asked questions

Where is Custom Code in GoHighLevel?

Switch to the agency view and open Settings, then Company, then the Whitelabel tab (some accounts label it White Label). Scroll to Custom Code, where you will find two fields: Custom CSS and Custom JavaScript. This agency-level code styles the HighLevel app for every sub-account. Funnels, websites, forms and community groups have separate CSS fields that only style those pages.

Can I add custom CSS to only one GoHighLevel sub-account?

HighLevel's Custom Code boxes are agency-level, so code there loads for every sub-account. To limit a look to one client, the code itself has to check which sub-account is open. GHL Dashboard Builder does this for you: limit a design to chosen sub-accounts by pasting their link or Location ID, and the others keep the agency-wide look or plain HighLevel.

How do I remove a theme from GoHighLevel?

Open Settings, Company, Whitelabel, Custom Code in the agency view, delete everything in Custom CSS and Custom JavaScript, and save. Hard-refresh HighLevel with Ctrl+Shift+R (Cmd+Shift+R on a Mac). The standard look returns at once for every user. Your contacts, pipelines and settings are not affected, because a theme only changes how the interface looks.

Why doesn't my GoHighLevel custom CSS show after I save it?

The usual causes are a cached old version in your browser, code pasted into the wrong box, a syntax error such as a missing brace, a rule less specific than HighLevel's own, or a design limited to sub-accounts that does not include the one you opened. Hard-refresh first, then test in a private window, then check each cause in turn.

Do I need to paste the code again every time I change my theme?

With a pasted stylesheet, yes: every change means replacing the code in HighLevel. With hosted install lines, no. The two lines load the latest deployed version, so with GHL Dashboard Builder you change the design, press Deploy to live, wait a minute or two and refresh HighLevel.

Will installing a theme slow down GoHighLevel?

A well-built theme adds little. GHL Dashboard Builder's theme loads as one stylesheet and one script, about 60 KB compressed, cached by the browser after the first visit. HighLevel's own help article on loading states notes that custom code which conflicts with its loader can cause loading problems, so test in a private window if pages stall after an install.

Is custom JavaScript in GoHighLevel safe?

It is as safe as the code you paste. Agency-level JavaScript runs for every user in every sub-account with the same access as that user. Use code you wrote, code you can read, or code from a provider that states plainly what it does, and remove scripts you no longer need. GHL Dashboard Builder's installed code does not read or send your data.

Can I undo a GoHighLevel theme if a client complains?

Yes. Paste back the copy of the previous code you saved before installing, or clear both boxes for the standard look. With GHL Dashboard Builder you can also turn the theme off from your account, which keeps the two lines in HighLevel but loads nothing, then turn it on again once the design is fixed.

Sources and further reading

GHL Dashboard Builder is an independent design service and is not affiliated with HighLevel.

Ready to make HighLevel look like your own platform?

Try the builder free, then choose a plan to get your install code.