KATLA FOR GHOST
Ghost cookie consent for your publication, in one snippet.
Add Katla to Ghost through Code injection in the site header, from a Google Tag Manager container, or headless behind a banner in your theme. The scan finds what your publication and its embeds set, and writes the cookie policy from that.
Code injection, site headerOr Google Tag ManagerOr a banner in your theme
Settings → Advanced → Code injection → Site headerHead, all pages
1. In Katla, add your Ghost site's domain and let the first scan run. 2. Install → Widget, and copy the snippet. 3. In Ghost: Settings → Advanced → Code injection → Site header. 4. Paste it into the head code for all pages, above any analytics or advertising code. 5. Publish, then open the site in a private window and check that the banner appears. For a banner you design yourself, load https://cdn.katla.app/YOUR-SITE-ID.js?headless=true instead: the guard and the API, no banner.
Code injection is part of Ghost Admin; if it is missing, check your Ghost(Pro) planWidget guide →
WHY GHOST SITES STRUGGLE WITH CONSENT
A Ghost site collects cookies from everything added to it.
THE PROBLEMAnalytics, embedded media and integrations on a Ghost publication set cookies of their own, and the cookie policy is a template somebody adapted once.
WITH KATLAKatla scans the published site as a visitor would, lists every cookie it finds with its vendor and purpose, and writes the cookie policy from that list.
THE PROBLEMTracking code in the site header runs as soon as a post loads, before any reader has chosen.
WITH KATLAThe cookie guard refuses cookies outside the consented categories and deletes any set before it started. Scripts you add yourself can wait for consent with data-katla-category.
THE PROBLEMPublications live on page speed, and a heavy banner costs it on every post.
WITH KATLAKatla's banner is 18 KB in one request, served from a CDN and cached at the edge.
SETUP
Three ways in, and an assistant if you want one.
- Widget: paste one snippetCopy the snippet from Install → Widget in Katla and paste it into Settings → Advanced → Code injection → Site header, in the head, for all pages, above any analytics code.
- Tag Manager: nothing to pasteIf your Ghost site already loads a Google Tag Manager container, connect Google in Katla and it writes its own tag there, on the Consent Initialization trigger.
- Your own banner: headlessLoad Katla with headless mode on and design the banner in Ghost. Its buttons call KatlaConsent.acceptAll(), rejectAll() or acceptCategories().
- Or ask your assistantConnect Claude or ChatGPT to Katla's MCP server and it adds the site, scans it and hands you the snippet. You paste it in Ghost; it then checks the live page for cookies set before consent.
BUILT FOR GHOST
What you get, whichever way you install.
Consent Mode v2Defaults and updates for GA4 and Google Ads come from the banner, so there is no gtag consent code to write or keep in step.
AI cookie scanningEvery cookie on the published Ghost site, classified by category and vendor, with a description in each language you serve.
A policy that keeps upThe cookie policy embeds on any page with a short snippet, is generated from the scan, and updates itself after every scan.
A way back to the choiceA floating icon, or a link calling katla.open(), lets visitors change or withdraw their choice from any page.
Global Privacy ControlVisitors whose browser sends GPC are recorded as refusing, or as opting out under the CCPA, before the banner asks anything.
Hosted in the EUKatla runs in AWS's eu-central-1 region, in Frankfurt.
CORE WEB VITALS
That's how the cookie crumbles. Except your SEO shouldn't.
A consent banner is the first third party on every page, and builder sites already carry plenty of script. Katla's banner is 18 KB over the wire, served from a CDN and cached at the edge, and headless mode is 4 KB.
How headless mode works →18 kBOver the wireBanner and your cookie data, brotli
0 msAdded LCPAgainst the same page without it
0Layout shiftThe banner reserves no space in flow
2RequestOne script, cached at the edge
Our own measurements, taken - how they were taken.
Questions Ghost teams ask
- Is there a Katla app for Ghost?
- No, and none is needed. Katla runs on Ghost as one snippet in the site-wide head code, from a Google Tag Manager container, or headless behind a banner you design.
- Does Katla block the cookies Ghost sets itself?
- The scan lists them. Cookies Ghost needs for sessions and security are necessary and stay. Any cookie the visitor has not allowed is removed when Katla starts and refused after that, but cookies set by Ghost's servers rather than by scripts on the page are outside what any banner script can reach.
- Can my AI assistant install it?
- Everything except the paste. Connected to Katla's MCP server, Claude or ChatGPT adds the site, runs the scan, gives you the snippet and where it goes in Ghost, and checks the live page once you have published.
- Where in Ghost does the snippet go?
- Settings → Advanced → Code injection, in the Site header field. Code there is output in the head of every page, so the guard starts before the rest of the page.
- Does it affect members and newsletters?
- Cookies Ghost needs for member sign-in are necessary and stay. The banner governs analytics and marketing cookies; consent for newsletter emails is outside what a cookie banner does.
Scan your publication, then paste one snippet.
The free plan scans your Ghost site and generates a cookie policy, without a card.