Widget performance
How much does a live chat widget slow down your site?
Between 79KB and 749KB, depending entirely on which one you install. Here is every measured figure, where it came from, and how to check your own in about two minutes.
Last checked 1 September 2026
The short answer
How much weight does a live chat widget add to a page?
Mainstream live chat widgets download between 79KB and 749KB, measured by DebugBear. Tawk.to is the heaviest at 749KB, most of which is a single unused 500KB image. Intercom is 301KB, Zendesk 533KB, Crisp 155KB, and LiveAgent the lightest of the mainstream tools at 79KB.
Download size is only half of it. Zendesk spends 991ms of CPU time parsing and running its JavaScript, against 259ms for Zoho SalesIQ. The TGLiveChat widget is about 26KB gzipped in 3 requests.
| Widget | Download | JS execution | Note |
|---|---|---|---|
| TGLiveChat | ~26 KB | not tested by DebugBear | Our own measurement, method below |
| Tawk.to | 749 KB | Not published | DebugBear noted that most of the 749KB is a single 500KB SVG image that does n… |
| Zendesk Chat | 533 KB | 991 ms | The heaviest widget DebugBear measured for JavaScript execution. In their word… |
| Drift | 464 KB | Not published | |
| LiveChat | 385 KB | Not published | |
| Intercom | 301 KB | Not published | |
| Crisp | 155 KB | Not published | |
| LiveAgent | 79 KB | Not published | The lightest widget in DebugBear’s test. They noted it defers most of its code… |
Competitor figures are DebugBear's measurements, published 14 July 2019 and updated 10 November 2025. The TGLiveChat figure is our own, measured on 1 September 2026 against the published build, and the command to reproduce it is below. We do not measure other people's widgets and present the result as fact.
Why this number matters more than it looks
A chat widget is the last thing on the page and the first thing people forget to measure. It loads after your content, so it rarely shows up in the number everyone watches, and it is usually installed by pasting a snippet somebody sent over Slack. Nobody owns it and nobody checks it.
The cost lands somewhere specific: on a mid range Android phone over mobile data, which is exactly the visitor least likely to wait. Half a megabyte of JavaScript is a second or two of nothing happening, and the visitor does not attribute that to your chat widget. They attribute it to your site.
Weight is not a ranking factor on its own. What it does is push Largest Contentful Paint and Total Blocking Time in the wrong direction, and those are. If you are buying traffic to a landing page, you are paying for the delay twice.
Download size is not the same as slowness
Bytes have to arrive, and then they have to be parsed and executed, and the second part happens on the visitor device rather than on the network. That is why the ordering changes depending on which number you look at.
| Widget | JS execution | What they found |
|---|---|---|
| Smartsupp | 1000 ms | DebugBear measured about a second of JavaScript execution time. |
| Zoho SalesIQ | 259 ms | The fastest widget DebugBear measured for JavaScript execution, at 259ms. They noted it defers most of its code until the chat is opened. |
Zendesk downloads less than Tawk.to and costs the visitor more, because Tawk.to's bulk is a picture and Zendesk's is code. A picture is cheap to receive and free to ignore. Code has to run.
How we measured our own widget
The TGLiveChat figure is the only one on this page we produced ourselves, and here is exactly how, so you can disagree with it precisely rather than in general.
| File | Gzipped | What it is |
|---|---|---|
| w.js | 594 B | The loader in your script tag |
| index.mjs | 19,544 B | The widget itself |
| <theme>.mjs | 4,326 to 8,806 B | Exactly one of 32 themes, whichever you chose |
| Total | ~26 KB | Range of 24KB to 28KB depending on theme |
Measured with gzip -9 against the published build on 1 September 2026.
Reproduce the core figure with one command:
curl -s https://cdn.tglivechat.com/index.mjs | gzip -9 -c | wc -cTo measure any widget on any site, including ours on yours, open DevTools, go to Network, filter by the vendor domain and hard reload. Read the transfer column rather than the resource size column, because transfer is what crossed the wire after compression. Then look at the Performance tab for scripting time. That is the whole method, and it takes about two minutes.
What to do if your widget is heavy
You have three options and they are not equally good. The first is to defer it: load the widget on first scroll or behind a placeholder button rather than on page load. That works with any vendor and it is the biggest single improvement available, at the cost of the chat not existing for the first second.
The second is to check whether your vendor already defers. Zoho SalesIQ and LiveAgent both hold most of their code back until somebody opens the chat, which is why they measure well despite being full products. If yours does this, you may have no problem at all.
The third is to change vendor, which is worth it only if the weight is buying you nothing. A 300KB widget attached to a helpdesk your team lives in is a reasonable trade. A 749KB widget where 500KB is an unused image is not.
The bottom line
Measure yours before you decide anything. The published numbers here are a starting point, not your number, because your configuration and your theme change the answer.
If the widget is heavy and you are getting a helpdesk for it, keep it. If it is heavy and you are getting a chat bubble, defer it or replace it. The one thing not worth doing is leaving half a megabyte on every page because nobody owns the decision.
Frequently asked questions
How heavy is too heavy for a chat widget?
Does widget size actually affect Google rankings?
Why is download size not the whole story?
How is Tawk.to 749KB when it is a simple chat widget?
How do I measure my own widget?
How big is the TGLiveChat widget?
Does adding more themes make the widget heavier?
Should I lazy load the chat widget myself?
Sources and references
- DebugBear: How Do Different Chat Widgets Impact Site Performance? Published 14 July 2019, updated 10 November 2025. Source of every competitor figure on this page.
- Google: Core Web Vitals Definitions of Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift.
- Google: Total Blocking Time Why main thread work, rather than download size, is what a visitor feels as unresponsiveness.
- Chrome DevTools: Network reference The transfer versus resource size distinction used in the method above.
Competitor measurements belong to DebugBear and are cited for comparison. We measure our own widget and nobody else's.