Skip to main content
Version: development

Performance benchmark

We know every millisecond counts. When someone visits your website, the browser starts rendering content while it loads the scripts it needs, including consent management. We want Lawwwing to do its job without adding unnecessary work or hurting the browsing experience.

To check that, we compared Lawwwing with nine other consent management platforms (CMPs) using Lighthouse 13.5.0. We measured each one on the same test page and included a version with no CMP as a baseline.

Results from a test environment

These figures come from Lighthouse tests in a controlled environment, not from real visits. Your website's performance can vary for many reasons, including images, fonts, other scripts, the device, and the connection. These measurements do not replace field data (CrUX or RUM) and they do not guarantee the same results on every website.

Results​

Mobile

98/100

Lighthouse score

Excellent performance in the mobile test scenario.

Desktop

100/100

Lighthouse score

Top score, with no loss against the baseline page.

Mobile

4 ms

Total Blocking Time

Very little main-thread blocking time.

Desktop

0 ms

Total Blocking Time

No measurable main-thread blocking during the test.

These results show that Lawwwing combines a high score with very low blocking time on the page we analyzed. To read the comparison, look at both the overall score and the metrics that make it up.

What these metrics measure​

Lighthouse summarizes lab performance in a score from 0 to 100. That score is a useful reference, but the individual metrics help explain what happens during page load.

MetricWhat it tells you about your siteHow to read it
Lighthouse scoreSummarizes several lab performance metrics.Higher is better.
LCPHow long it takes for the largest visible content element to appear.Lower is better.
FCPWhen the first content appears on screen.Lower is better.
TBTHow long long tasks block the main thread.Lower is better.
CLSHow much the page content shifts unexpectedly.Lower is better.
Speed IndexHow quickly the content is painted visually.Lower is better.

In our tests, every variant recorded a CLS of 0.000, so this metric does not distinguish between the CMPs on the page we analyzed.

The Lighthouse score weights the metrics differently: TBT accounts for 30% and LCP for 25%, while FCP and Speed Index account for 10% each. That is why two integrations with similar scores can behave differently during load.

Mobile comparison​

The Lighthouse mobile scenario makes differences between integrations easier to see, because it simulates more limited processing and network conditions.

Lawwwing scores 98/100 and records only 4 ms of TBT, the lowest value among the ten CMPs in this test. You can explore each solution's results in the charts below.

Mobile: Total Blocking Time
050100150200250300Lawwwing4 msCookiePal22 msUniConsent35 msEnzuzo36 msCookieFirst64 msDidomi82 msiubenda98 msTermly99 msCookiebot105 msAxeptio260 ms

Main-thread blocking time, from lowest to highest. Lawwwing records 4 ms in this test.

Mobile: Lighthouse score
020406080100Lawwwing98CookieFirst97UniConsent97CookiePal96Didomi96iubenda96Cookiebot94Axeptio94Enzuzo92Termly88

The page with no CMP scores 99. Lawwwing reaches 98/100 in the mobile scenario.

The “No CMP” row is the same page with no consent widget. We use it as a baseline to estimate the extra cost of each integration; it does not represent another vendor.

Absolute results on mobile. LCP, FCP, and Speed Index in seconds; TBT in milliseconds. Medians of the benchmark runs with Lighthouse 13.5.0.
VariantScoreLCPFCPTBTCLSSpeed Index
No CMP991.95 s0.78 s0 ms0.0000.78 s
Lawwwing982.40 s1.52 s4 ms0.0001.55 s
CookieFirst972.40 s1.60 s64 ms0.0001.60 s
UniConsent972.55 s1.55 s35 ms0.0001.67 s
CookiePal962.55 s1.70 s22 ms0.0001.70 s
Didomi962.65 s1.68 s82 ms0.0001.68 s
iubenda962.55 s1.78 s98 ms0.0001.78 s
Axeptio942.70 s1.78 s260 ms0.0001.68 s
Cookiebot942.70 s1.85 s105 ms0.0001.85 s
Enzuzo923.00 s2.29 s36 ms0.0002.29 s
Termly883.30 s2.54 s99 ms0.0002.54 s

To show the impact against the baseline page, we subtract the no-CMP median from each variant's median. This difference may not match the median of the differences between individual runs.

Differences against the no-CMP page on mobile. A higher value in LCP, FCP, or TBT means extra cost. We omit CLS because it is 0.000 in every case.
VariantΔLCPΔFCPΔTBTΔSIΔ score
Lawwwing+550 ms+740 ms+4 ms+770 ms−1
CookieFirst+450 ms+821 ms+64 ms+821 ms−2
UniConsent+601 ms+771 ms+35 ms+886 ms−2
CookiePal+600 ms+920 ms+22 ms+920 ms−3
Didomi+700 ms+905 ms+82 ms+905 ms−3
iubenda+600 ms+1000 ms+98 ms+1000 ms−3
Axeptio+748 ms+999 ms+260 ms+1678 ms−5
Cookiebot+750 ms+1070 ms+105 ms+1070 ms−5
Enzuzo+1051 ms+1514 ms+36 ms+1514 ms−7
Termly+1350 ms+1764 ms+99 ms+1764 ms−11

Desktop comparison​

On desktop, scores cluster between 99 and 100. Lawwwing reaches 100/100, with a TBT of 0 ms on the test page.

We also recorded an FCP of 0.44 s and an LCP of 0.60 s. Those are short times in this lab scenario; LCP stays below the 2.5 s threshold used as a “good” reference for field data, although a lab test does not replace that real-world measurement.

Absolute results on desktop. LCP, FCP, and Speed Index in seconds; TBT in milliseconds. Medians of the benchmark runs with Lighthouse 13.5.0.
VariantScoreLCPFCPTBTCLSSpeed Index
No CMP1000.44 s0.21 s0 ms0.0000.21 s
Lawwwing1000.60 s0.44 s0 ms0.0000.44 s
CookieFirst1000.63 s0.44 s0 ms0.0000.44 s
CookiePal1000.56 s0.46 s0 ms0.0000.46 s
Enzuzo1000.69 s0.64 s0 ms0.0000.64 s
iubenda1000.56 s0.50 s11 ms0.0000.50 s
UniConsent1000.70 s0.45 s0 ms0.0000.64 s
Axeptio990.45 s0.45 s4 ms0.0000.47 s
Cookiebot990.77 s0.55 s0 ms0.0000.55 s
Didomi990.78 s0.59 s6 ms0.0000.59 s
Termly990.73 s0.73 s0 ms0.0000.73 s
Differences against the no-CMP page on desktop, calculated by subtracting the medians of each variant and the baseline.
VariantΔLCPΔFCPΔTBTΔSIΔ score
Lawwwing+161 ms+229 ms0 ms+229 ms0
CookieFirst+190 ms+229 ms0 ms+229 ms0
CookiePal+120 ms+256 ms0 ms+256 ms0
Enzuzo+250 ms+430 ms0 ms+430 ms0
iubenda+120 ms+293 ms+11 ms+293 ms0
UniConsent+262 ms+242 ms0 ms+436 ms0
Axeptio+10 ms+240 ms+4 ms+260 ms−1
Cookiebot+325 ms+343 ms0 ms+343 ms−1
Didomi+340 ms+386 ms+6 ms+386 ms−1
Termly+290 ms+518 ms0 ms+518 ms−1

What these results mean​

With this benchmark, we wanted to measure how much work each integration adds to the same page. Lawwwing combines a score of 98/100 on mobile and 100/100 on desktop with blocking time of only 4 ms and 0 ms, respectively.

On mobile, where script cost is usually more visible, our TBT result shows very little blocking. On desktop, we reach the maximum Lighthouse score in the scenario we tested.

These measurements help us evaluate the performance of our integration, but they do not cover every possible situation. A real website can include images, fonts, analytics tools, marketing tags, and other resources that affect LCP, TBT, or CLS. We recommend measuring your own page as well, with and without Lawwwing, and complementing lab tests with real-user data when it is available.

How we ran the tests​

To compare the integrations under similar conditions, we used the same test page and measured each CMP with Lighthouse 13.5.0. We also ran the tests with no CMP at all so we had a baseline.

We integrated every solution with its default configuration, with no extra optimizations or tuning. That lets us observe their behavior in this specific scenario without introducing changes that would favor any vendor.

ConditionSetup
ToolLighthouse 13.5.0
Baseline pageThe same page, with no CMP
VariableEach CMP's script and integration
MobileMedian of the runs per variant across 500 runs.
DesktopMedian of the runs per variant across 500 runs.
ConfigurationDefault, with no extra tuning
Solutions testedLawwwing, iubenda, Cookiebot, CookieFirst, Axeptio, Termly, Enzuzo, UniConsent, CookiePal, and Didomi

Environment and Lighthouse configuration​

To keep the comparison consistent, we ran every test in the same Docker environment, using a shared HTML page for all solutions and changing only each CMP's integration.

Hardware and runtime environment​

CharacteristicSetup
ProcessorIntel Core i7-7700K at 4.20 GHz
Cores and threads4 cores and 8 threads
RAM32 GB
EnvironmentDebian GNU/Linux 13
BrowserChromium 154.0.8037.57
Lighthouse13.5.0
Node.js22.23.3
npm10.9.9

Test configuration​

We used Lighthouse 13.5.0 with its default mobile settings and the official desktop preset, without manually changing the CPU or network simulation parameters.

Chromium ran in headless mode, with no GPU acceleration and no extensions.

Differences against the no-CMP page are calculated by subtracting the medians of both variants.

Reproducibility

Although every solution was evaluated in the same environment, factors such as server load, network conditions, and the availability of external services can influence the results.

We share the benchmark scripts and configuration on GitHub so you can review our methodology and reproduce the tests in your own environment.

How to interpret the comparison​

This environment lets us observe relative differences between integrations, but it does not reproduce every condition of a production website. The test page is served from a local environment, while the widgets may load resources from their vendors' servers. The network, script versions, each CMP's configuration, and the page's own resources can all influence the result.

That is why we present this data as a lab comparison, not a performance guarantee for every website. If you want to understand how the scores are calculated, see the official Lighthouse documentation.

Explore the benchmark on GitHub​

We believe in transparency and want you to be able to check for yourself how we ran these tests. That is why we publish the project we used for our benchmark.

The repository includes the scripts, configuration, and test environment we used, so you can review our methodology and reproduce the measurements.

For licensing reasons, and because some CMPs require an account or a paid plan, we cannot include every vendor's integration scripts. If you want to reproduce the tests, you can clone the repository and add the corresponding snippets for each CMP.

This way, you have the same base we used in our tests so you can reproduce the benchmark and run your own comparisons.

Repository: CMP Performance Benchmark

Get started with Lawwwing​

Want to see how Lawwwing performs on your own website? Our installation and configuration guides will help you get started.

Get started with Lawwwing
Performance and compliance, together

At Lawwwing, we work to make consent management simple, without adding unnecessary complexity to your website. See how to integrate our solution and take advantage of all its features in our guides.