Articles on: Troubleshooting

How is Crisp optimised to not slow down your website's loading

Understand how the Crisp chatbox is optimized for website performance and what to check when automated tools report warnings.


Crisp is built to load asynchronously and keep the chatbox lightweight. Automated performance tools can still report warnings because they do not always account for compression, caching, HTTP/2, delayed loading, and user experience context.



How Crisp loads on your website


The Crisp chatbox is designed to avoid blocking your main page content. It loads asynchronously after your website content starts loading, so it should not prevent your page HTML, stylesheets, or core scripts from rendering.


Crisp also avoids heavy frameworks in the chatbox code and uses a caching strategy that pulls only what is needed.


Approximate compressed asset sizes:

  • Scripts → about 90KB
  • Stylesheets → about 35KB
  • Images → included in stylesheets to reduce visual glitches during loading
  • Fonts → about 10KB per Latin font group; other alphabets may vary


These figures are approximate and can change as Crisp ships updates, but the chatbox is intentionally kept lightweight.



What Crisp does to optimize performance


Asynchronous loading


Crisp loads asynchronously so the chatbox does not block your website's main rendering path.


Long-duration caching


Chatbox scripts, stylesheets, and assets are cached by the browser. When Crisp updates the chatbox, a lightweight cache check allows visitors to pull updated assets.


Low-latency chat servers


Crisp uses regional chat servers so visitors connect to an endpoint close to them. The chatbox establishes its WebSocket connection after assets are loaded.


Distributed CDN and modern HTTP


Crisp serves assets through a distributed CDN and modern HTTP protocols. This reduces connection overhead compared with older request models.


Compression


Crisp compresses JavaScript and CSS using modern compression methods when available, along with minification to reduce transferred bytes.


Optimized fonts


Instead of loading one large font containing every character set, Crisp loads only the required UTF-8 sub-ranges for the language in use.


On-demand feature loading


Crisp does not load heavier feature libraries such as MagicBrowse or calls by default. They are loaded only when needed.



How to read automated performance reports


Tools such as Lighthouse, GTmetrix, and similar scanners can be useful, but they can also overstate the impact of third-party widgets.


Common reasons reports look worse than real usage:

  • Uncompressed size display → tools may show raw file size instead of compressed transfer size
  • HTTP/1.1 assumptions → tools may count requests differently from real HTTP/2 behavior
  • Vanity metrics → a single score may not reflect real user experience or business outcomes
  • Third-party timing → a delayed widget can still appear in the report even when it does not block page content


Use automated scores as diagnostics, not as the only measure. Real-user metrics, conversion data, and interaction speed matter more than a standalone score.



Defer chatbox loading manually


If you still want every website resource to load before Crisp, you can load the Crisp script after the page event you choose. This is usually not necessary, but it can satisfy strict performance requirements.


Example deferred loading snippet:

document.addEventListener("DOMContentLoaded", function() {
window.$crisp=[];
window.CRISP_WEBSITE_ID="YOUR_WEBSITE_ID";

(function(){
d=document;
s=d.createElement("script");
s.src="https://client.crisp.chat/l.js";
s.async=1;
d.getElementsByTagName("head")[0].appendChild(s);
})();
});


Deferring Crisp further can make the chatbox appear later for visitors. Use it only if you understand the trade-off and have measured that it helps your specific website.


Updated on: 03/05/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!