We Re-Tested 5 Chat Widgets in 2026 — Opening Intercom Downloads 833KB | GhostChat<br>Loading…
click costcrispcpuwhere we losesilent failuresmethodour bugssetup
Disclosure: we make GhostChat, one of the widgets in this test. So we published the parts that don't flatter us: our widget still costs your page real CPU and bytes, we had to exclude four widgets and couldn't explain two of them, and we spend a section correcting our own February results. Method below.<br>In February we benchmarked five chat widgets and published the numbers. Six months later we rebuilt the harness from scratch and re-ran it — partly to refresh the data, partly because we found three bugs in the original test.<br>One of them was ours, and it was embarrassing: the February harness measured GhostChat against our staging server while every competitor used their production CDN.<br>Every widget below was confirmed to actually render a chat bubble before its numbers were used. That sounds obvious. It is the single hardest part of this, and it is why four widgets aren't in the table.<br>The rebuilt test also measures something we've never seen anyone publish: what it costs when a visitor actually clicks the chat bubble. That turned out to be where the real story was.
Nobody measures the click<br>Every chat widget benchmark measures page load. But a chat widget has two costs: what it downloads to show you a bubble, and what it downloads when someone actually opens it. Most widgets lazy-load the entire chat interface on that click.<br>So we clicked every launcher and kept counting.<br>WidgetOn loadOn openTotalvs usGhostChat17.5 KB+1.4 KB18.9 KB—LiveChat43.5 KB+0 KB43.5 KB2.3×Crisp127.1 KB+140 KB267 KB14×Tawk.to462.4 KB+0 KB462.4 KB24×Intercom271.4 KB+833.3 KB1,104 KB58×
Total transferred, page load plus opening the chatMeasured August 2026. Lower is better.<br>On page loadExtra, when the visitor opens it<br>Intercom1.10 MB
271 KB on load, then +833 KB when opened
Tawk.to462 KB
Crisp267 KB
127 KB on load, then +140 KB when opened
LiveChat44 KB
GhostChat19 KB
18 KB on load, then +1 KB when opened
Intercom looks lighter than Tawk.to until someone actually clicks the bubble. Tawk.to and LiveChat front-load everything instead, so opening them is free.<br>Intercom downloads another 833KB the moment a visitor clicks the bubble — a 1.1MB round trip. On page load alone it looks mid-weight, lighter than Tawk.to. Then it quadruples the instant someone engages.<br>There are two opposite strategies here, and only the click test reveals them. Tawk.to and LiveChat front-load everything, so opening the panel is free. Intercom defers most of its weight to the click. If you only measure page load, you rank those three completely differently than a real visitor experiences them.<br>One widget doesn't load when Lighthouse is watching<br>Crisp measured 3.2KB under Lighthouse and 127KB in an ordinary browser. We assumed our harness was broken. It wasn't. Crisp's loader carries a hardcoded list of user agents it refuses to load for, and two of them are performance auditors:<br>agents: ["Trident","Googlebot","Bingbot","Slurp","DuckDuckBot",<br>"Baiduspider","YandexBot","GTmetrix","Lighthouse",<br>"Acunetix","Ahrefs","SemrushBot","SiteAuditBot",<br>"SplitSignalBot","HeadlessChrome"]<br>That is the live contents of client.crisp.chat/l.js— 7,637 bytes, no minification games. View-source it yourself.<br>To be fair to Crisp: skipping bots is normal and sensible. Googlebot, Bingbot and Ahrefs have no use for a chat widget, and loading one for them wastes everybody's bandwidth. We have no idea what their intent was in adding Lighthouse and GTmetrixto the same list, and we're not going to guess.<br>But the consequence is measurable and worth knowing: you cannot audit a Crisp installation with Lighthouse or GTmetrix. Run PageSpeed Insights on a site using Crisp and the widget is simply absent from the result. Every Lighthouse benchmark of Crisp ever published — including ours in February, which scored it 100 with 30ms of blocking time and called it genuinely lightweight — measured a widget that had declined to load. We got that wrong, and this is the correction.<br>CPU cost<br>Realistic content page, Slow 4G, Moto G Power emulation — Lighthouse's default mobile preset, median of five runs. Only widgets we confirmed rendered during the audit appear here.<br>WidgetPerfBlocking timeMain threadLong tasksNo widget (baseline)1000 ms101 ms0GhostChat990 ms124 ms0LiveChat990 ms243 ms0Intercom9982 ms348 ms2Tawk.to9925 ms476 ms2
Tawk.to defers essentially its whole payload, so Lighthouse's window catches roughly 330KB of the eventual 462KB. The CPU figures are for what loaded inside the audit.<br>LiveChat loaded 347KB across 20 requests here but only 44KB in our other test environment. We could not determine what triggers the difference, so treat its row as the heavier of two behaviours.
The thing most benchmarks won't tell you: the performance score is nearly useless for comparing chat widgets. Every widget here lands on 99. The score is...