Chat widgets download a median of 512 kB before anyone clicks. We measured 19
We loaded the websites of 25 live chat vendors and weighed what their own widget downloaded without the visitor touching it: bytes, requests, JavaScript and servers contacted. From 11 kB to 2.0 MB.
The muro team
muro.chat
- Published
- Reading time
- 8 min

On this page
A chat widget sits in the corner of the page and does nothing until someone clicks it. Its download starts long before that. Most widgets fetch their chat application, fonts, sounds and configuration as soon as the page opens, for every visitor, whether or not they ever open the chat.
We measured how much. Same method as our chat widget privacy benchmark: each vendor's own website, a fresh browser, no clicks, 3 passes on 10 October 2026. We saw the vendor's widget on 19 of the 25 sites.
512 kB
median transferred by a chat widget before any click
1.2 MB
median JavaScript once unpacked, which the browser has to parse
10 of 19
widgets download more than half a megabyte
16
median number of requests a widget makes
How much each widget downloads
Data transferred by the chat widget, before any click
Compressed bytes over the network, median of three passes. Includes what loaded after the click on "accept" where a consent banner held the widget back.
View as table
| Data transferred by the chat widget, before any click | Note | |
|---|---|---|
| Olark | 2.0 MB | 32 requests to 6 hosts. |
| HubSpot | 1.3 MB | 31 requests to 10 hosts. |
| Chatwoot | 1.0 MB | 26 requests to 3 hosts. Loaded after "accept". |
| Intercom | 964 kB | 16 requests to 3 hosts. |
| Lime Connect (Userlike) | 928 kB | 14 requests to 4 hosts. |
| HelpCrunch | 863 kB | 13 requests to 4 hosts. |
| Re:amaze | 730 kB | 16 requests to 10 hosts. |
| Gorgias | 628 kB | 30 requests to 2 hosts. |
| Zoho SalesIQ | 540 kB | 17 requests to 4 hosts. Loaded after "accept". |
| Tidio | 512 kB | 8 requests to 1 host. |
| JivoChat | 381 kB | 13 requests to 4 hosts. |
| LiveChat | 369 kB | 24 requests to 4 hosts. |
| Chatra | 295 kB | 7 requests to 3 hosts. |
| tawk.to | 256 kB | 19 requests to 2 hosts. |
| Smartsupp | 175 kB | 11 requests to 4 hosts. |
| Crisp | 127 kB | 16 requests to 2 hosts. |
| Chaport | 90 kB | 15 requests to 2 hosts. |
| Help Scout | 49 kB | 5 requests to 2 hosts. |
| muro (ours) | 11 kB | 4 requests to 1 host. |
Source: Crawl of 25 vendor websites, 10 October 2026. Compiled by muro.
Olark tops the list at 2.0 MB, followed by HubSpot at 1.3 MB. At the other end, Chaport (90 kB), Help Scout (49 kB) and muro (11 kB) stay under 100 kB; muro is our own widget.
Unpacked, the JavaScript is about 3.0 times bigger
Network size is what the visitor downloads. Unpacked size is what the browser then has to parse and compile on the main thread, which is where a slow phone feels it. For the median widget, the scripts are 3.0 times larger once unpacked than on the network.
JavaScript loaded by the chat widget, unpacked
Decoded size of the widget's scripts, median of three passes.
View as table
| JavaScript loaded by the chat widget, unpacked | |
|---|---|
| Olark | 4.8 MB |
| Intercom | 4.3 MB |
| HubSpot | 2.9 MB |
| Lime Connect (Userlike) | 2.8 MB |
| Re:amaze | 2.2 MB |
| Zoho SalesIQ | 1.8 MB |
| HelpCrunch | 1.6 MB |
| JivoChat | 1.5 MB |
| Gorgias | 1.3 MB |
| LiveChat | 1.2 MB |
| Chatwoot | 1.1 MB |
| Tidio | 1.0 MB |
| Chatra | 932 kB |
| tawk.to | 580 kB |
| Smartsupp | 429 kB |
| Crisp | 302 kB |
| Chaport | 110 kB |
| Help Scout | 100 kB |
| muro (ours) | 27 kB |
Source: Crawl of 25 vendor websites, 10 October 2026. Compiled by muro.
The widget can be a large part of the page
On the vendors' own home pages, which are heavy marketing pages full of images and video, the widget still accounts for a large share of everything downloaded. On six sites it is 30% or more of the page: Olark (46%), HubSpot (32%), Chatwoot (44%), Lime Connect (Userlike) (33%), HelpCrunch (37%) and Re:amaze (37%).
Medians of three passes, except JivoChat (one pass: the site returned an error on the other two). "Share of the page" compares the widget with everything the same page downloaded in the same visit. Median servers contacted: 3.
Why the size varies so much
- Everything up front, or a loader first. Some widgets fetch a small loader and keep the chat itself for when the button is clicked; most download the full application, its fonts and its notification sounds on arrival.
- What the vendor switched on. These are the vendors' showcase sites: proactive messages, bots, product carousels and AI agents add code. Olark's 2.0 MB includes an AI chat kit from OpenAI.
- Real-time connections. Several widgets open a WebSocket immediately, which costs little in bytes but keeps a connection open for the whole visit.
- Frames. Widgets that run inside an iframe load a second document with its own scripts and styles.
What you can do about it
- Measure your own page. Open your browser's developer tools, filter the network panel by the widget's domain, and reload with the cache disabled. Our chat widget speed test gives a first estimate from a URL.
- Load the chat on interaction. Show a lightweight button and load the widget when the visitor clicks or hovers it. Ask your vendor whether its script can be loaded on demand.
- Switch off what you do not use. Proactive campaigns, bots and sounds all add weight.
- Check the third parties. A widget that pulls in a captcha or analytics script brings their weight, and their cookies, with it.
For transparency about our own product: muro is in this list, measured on go-to-agency.com, the site of the agency that builds it: 4 requests, 11 kB transferred, 27 kB of JavaScript unpacked. It loads a single script and talks to a single server; it also has fewer features than most widgets here, which is part of the difference.
Method and limits
- Where. Each vendor's own website, with the vendor's configuration, from France on 10 October 2026. The same widget on your site, with other settings, will weigh something else.
- What counts. Requests to the vendor's widget servers, requests started by widget scripts and requests from inside widget frames. The browser cache was disabled, so every visit is a first visit. A file fetched twice in the same phase is counted once.
- When. Everything loaded in the 15 seconds after the page finished loading, without interaction, plus what followed the click on "accept" on sites where a consent banner held the widget back. A widget that loads more later, or on scroll, is not fully counted.
- Bytes, not speed. We measured downloads and unpacked JavaScript, not CPU time, layout shifts or responsiveness, which depend on the device.
- Completeness. Site isolation was disabled so that requests from cross-site widget frames were captured, and the capture was checked against an independent count.
The per-vendor dataset is shared with the privacy benchmark, and every request is listed in the request log CSV.
Sources
- 1Olark: page measured (accessed 2026-10-10)
- 2HubSpot: page measured (accessed 2026-10-10)
- 3Chatwoot: page measured (accessed 2026-10-10)
- 4Intercom: page measured (accessed 2026-10-10)
- 5Lime Connect (Userlike): page measured (accessed 2026-10-10)
- 6HelpCrunch: page measured (accessed 2026-10-10)
- 7Re:amaze: page measured (accessed 2026-10-10)
- 8Gorgias: page measured (accessed 2026-10-10)
- 9Zoho SalesIQ: page measured (accessed 2026-10-10)
- 10Tidio: page measured (accessed 2026-10-10)
- 11JivoChat: page measured (accessed 2026-10-10)
- 12LiveChat: page measured (accessed 2026-10-10)
- 13Chatra: page measured (accessed 2026-10-10)
- 14tawk.to: page measured (accessed 2026-10-10)
- 15Smartsupp: page measured (accessed 2026-10-10)
- 16Crisp: page measured (accessed 2026-10-10)
- 17Chaport: page measured (accessed 2026-10-10)
- 18Help Scout: page measured (accessed 2026-10-10)
- 19muro: page measured (accessed 2026-10-10)


