GHL Logo Switcher
Rebranding a dozen sub-accounts by hand? Swap logos across all of them at once instead of clicking through each account.

White-label the sidebar per sub-account.
This tool generates a JavaScript snippet that automatically swaps the GoHighLevel sidebar logo based on which sub-account location is active - perfect for agencies running multiple client brands.
Used when no location mapping is found.
Add your sub-account Location IDs and the logo URL each should show.
<script>
/* ============================================================
Josh's Sub-Account Logo Switcher for GoHighLevel
Generated at: 2026-09-24
============================================================ */
(() => {
"use strict";
/** 1️⃣ Map: sub-account (location) ID → custom logo URL */
const MAP = {
"<location_id>": "<logo_url>"
};
/** 2️⃣ Default agency logo (used when no mapping found) */
const DEFAULT_LOGO = "<default_agency_url>";
/** 3️⃣ Sidebar logo selector (used in GHL's current UI) */
const SEL = "#sidebar-v2 .agency-logo-container img";
let lastId = "";
const getId = () => {
const parts = location.pathname.split("/");
const i = parts.indexOf("location");
return i > -1 ? parts[i + 1] : null;
};
function apply() {
const id = getId();
if (!id || id === lastId) return;
lastId = id;
const url = MAP[id] || DEFAULT_LOGO;
let tries = 0;
const t = setInterval(() => {
const img = document.querySelector(SEL);
if (img) {
img.src = url;
img.removeAttribute("srcset");
clearInterval(t);
} else if (++tries > 120) {
clearInterval(t);
}
}, 100);
}
const ps = history.pushState, rs = history.replaceState;
const onNav = () => setTimeout(apply, 0);
history.pushState = function () { ps.apply(this, arguments); onNav(); };
history.replaceState = function () { rs.apply(this, arguments); onNav(); };
window.addEventListener("popstate", onNav);
new MutationObserver(onNav).observe(document.documentElement, { childList: true, subtree: true });
apply();
})();
</script>Paste this into your GHL agency Custom Code section.
GoHighLevel logo switcher - common questions
Request your invite to my private GoHighLevel community
Over 1,700 agencies, beginners, and business owners sharing what actually works in GoHighLevel. Drop your email and I'll send your invite.
Whitelabel the HighLevel logo per sub-account
HighLevel lets you set one agency logo, but agencies that resell to multiple brands often want each sub-account to show its own. This generator produces a small custom-code snippet that swaps the logo based on the location currently open.
The snippet watches URL changes rather than a specific CSS class, so it keeps working through most HighLevel interface updates. Paste it into agency settings under custom code, and every sub-account you mapped shows the right brand.
Host the logo files somewhere stable and public - a CDN, your own site, or HighLevel media storage - and use https URLs so browsers do not block them.