Cookie banner
Layouts, categories and consent
Small, async and measured.
Kukie.io loads one small script that never makes your page wait, with your settings built in. The only request before the banner shows is a short lookup of the visitor's region.
The short answer
It is a file your visitors did not download before, run by code that did not run before. The useful question is how much, where, and whether it lands on the part of the page your visitor is waiting for.
Each new visitor downloads the script once, then it is cached. The size matters least on office broadband and most on a mid-range phone with a weak signal, the visitor most likely to give up on a slow page.
A script that has to ask a server for its own settings cannot start that second request until the first has finished, so both delays add up. Bytes you can compress. Waiting time you cannot.
A banner that adds stylesheets to your page, or pushes your content down when it appears, hurts how the page feels rather than how it scores. Visitors notice content that jumps long before a slow number in a report.
There is also an effect in the other direction. For a visitor who refuses, a consent layer usually removes more requests than it adds, because the analytics and advertising tags it holds back never load. That is how script blocking works, not a promise about your site: the only way to know the net effect on yours is to measure it.
Specification
Almost every consent vendor calls its script lightweight, which is a word rather than a measurement. Here is ours, taken on the file your visitors receive.
| Measurement | Value | What it means for your page |
|---|---|---|
| Script, uncompressed | about 115 KB | The size on disk. Nobody downloads this; it is listed because quoting only the flattering number is how vendors avoid being checked. |
| Transferred with gzip | about 36 KB | What a visitor downloads on a connection that uses gzip. This is the figure to compare with other vendors. |
| Transferred with Brotli | about 31 KB | What a visitor downloads where the browser accepts Brotli, which most current browsers do. |
| Loading | async | The browser fetches it alongside your page instead of stopping to wait, so it never blocks rendering. |
| Settings requests before the banner | none | Your settings are inside your site's file. There is no settings endpoint left to call; the one request before the banner is the region lookup. |
| Region lookup | 2 fields, kept 24 hours | The visitor's country and region, nothing else. The browser keeps the answer for a day, so later pages on the same device skip it. |
| Delivery | your own file on a global CDN | Cached close to your visitors rather than fetched from one server on the other side of the world. |
| Styles | kept apart from your page | The only stylesheet added to your page is a small one for blocked-embed placeholders, and your theme does not restyle the banner. |
| Installation | one script tag | No build step and no package to keep up to date. Updates reach your site's file without a change on your side. |
Measured on 2 November 2026 on the shared script, before your settings are added: gzip at level 6 and Brotli at quality 11. KB here is 1,024 bytes.
The figures above are the shared script. Your site's file is that script with your settings written into it, so it is larger in proportion to your banner text, your languages and the cookies you list. More settings add bytes; they never add a request.
Software gains weight as it gains features, and the script has grown since August 2026. In October it lost 2 KB, when the report that only debug mode uses moved to a separate file, and again on 28 October, when its icons were redrawn in one icon family. Each time a measurement moved, the figures on our pages moved with it rather than keeping the old one.
Loading
This is the biggest difference between one consent script and another, and a size comparison does not show it. Most consent scripts are generic: every customer gets the same file, so on arrival it has to ask the vendor which settings belong to this site. Kukie.io gives each site its own file with the answer already inside.
The browser reads your HTML. The consent script carries async, so it downloads alongside your page and the browser never stops to wait for it.
Your site's own file comes from the CDN with your banner text, categories, cookies and region rules already in it. There is nothing to ask for.
If you use Google Consent Mode, its defaults are set straight away, denied wherever your region rules ask for consent first, and blocking switches on for the tags and embeds you hold back, before the script waits for anything.
A short request for the visitor's country and region, which the browser keeps for 24 hours. If it fails or takes more than 3 seconds, the banner applies your strictest rule instead of waiting longer.
It appears at a fixed position over your content, inside its own style boundary, so nothing you laid out moves and your theme does not restyle it.
The tags the visitor allowed are released at that moment. The ones they refused never load at all.
A generic script asks for its settings after it arrives, and that wait stacks on the first. The shape of the two sequences, not a measurement of time.
<script src="https://cdn.kukie.io/s/YOUR_SITE_KEY/c.js" async></script>
One line is the whole installation. The settings endpoint this product once had was removed in July 2026, so it cannot be called by accident, by an old cached script or by a future change.
Region rules work the same way. Every rule you write is in the same file and matched in the browser, so no region downloads a second set of settings. The one lookup is for the visitor's country, which your region rules need and a browser cannot supply on its own.
Core Web Vitals
Core Web Vitals are 3 measurements Google takes from real visits: how soon the main content appears, how much the layout moves while it loads, and how quickly the page answers when someone interacts with it.
Largest Contentful Paint
Good at 2.5 s or lessPoor above 4 s
An async script does not hold up your page, but it shares the visitor's connection with the hero image or headline that decides this measurement. The lever here is file size, which is why the number at the top of this page is stated rather than described.
Cumulative Layout Shift
Good at 0.1 or lessPoor above 0.25
Layout shift happens when something is inserted into a page and pushes what was already there. The banner is drawn over your content at a fixed position instead, so appearing does not move anything you laid out.
Interaction to Next Paint
Good at 200 ms or lessPoor above 500 ms
The busiest moment in a consent layer is the click on Accept all, when every held-back tag is released at once. On a page with many tags that is real work, worth checking on a mid-range phone rather than your laptop.
Google judges each metric at the 75th percentile of real visits, so a page passes when at least 3 visits in 4 meet the threshold. None of that adds up to a promise, and a consent vendor who offers one deserves a second look. Core Web Vitals belong to a page, not to a script: they are measured on your layout, your images, your hosting and your other third parties, on the devices your visitors use. That is why this page gives you a file size and the shape of the loading sequence instead of a score taken on somebody else's website.
Check it yourself
None of this needs a testing tool or a developer. These 4 checks in your browser confirm or contradict everything above, and they work as well on another vendor's banner as on ours.
Open your site and your browser's developer tools, choose the Network panel and reload. Find the consent script and read the Transferred column: that is what your visitors download, compression included. Developer tools count 1,000 bytes to the kB, so the gzip figure shows as about 38 kB.
View the page source and find the consent script tag. If it carries async, the browser downloads it in parallel and never pauses your page for it. If it carries neither async nor defer, your page is waiting.
In the same Network panel, look at what the consent script requests after it loads and before the banner appears. A settings request there is a second wait for your visitors on every first visit.
Test the page with the tool you already use, add the banner, and test again on the same device and connection. That comparison is worth more than any vendor's published figure, ours included.
While the Network panel is open, look at how much else your page loads. The Script audit lists the third-party scripts running on a public page of your site, and on most sites the consent script is far from the heaviest thing in the list.
When it matters
For a brochure site on a decent host, 36 KB is not what stands between you and a fast page. These are the cases where it is worth the attention.
A file that is invisible on office broadband is not invisible on a busy mobile network, and there the waiting time matters more than the size. Two requests in a row on a slow connection are noticeably worse than one.
If your Core Web Vitals sit close to the threshold, anything you add can tip them over. The answer is not to skip consent, which is rarely optional, but to add it knowingly and measure again afterwards.
Publishers and shops already carry the heaviest third-party load on the web. A consent layer changes the sums in both directions: one more file for everyone, and many fewer for every visitor who refuses.
An agency puts one decision in front of every client, and hears about it from every client whose developer spots a new script. A published measurement and a one-line embed answer that faster than a support ticket.
Every Kukie.io site loads this way, on every plan, because there is only one embed. What differs by plan is how many sites you can add, how many pages a scan covers and how long consent records are kept.
One async script with your settings already inside it, on every plan including Free.
What the script does once it has loaded, and what happens to the data afterwards.
Layouts, categories and consent
Tags wait for consent
EU storage, hashing, 2FA
Background reading on banners, Core Web Vitals and where a consent layer is hosted.
Kukie.io provides tools to collect and record consent. It is not legal advice, and using it does not by itself make a website compliant with any law.