We are constantly looking for ways to optimize the performance of the Web Widget (Classic), so that you can offer the best possible embedded customer support experience. Our goal is to do this with the smallest possible impact to your website.
What is the current package size of the Web Widget (Classic)?
The figures below represent the package size on first-time load of the Web Widget (Classic), subsequent loads will benefit from CDN caching, resulting in faster load-time (see “Are the Web Widget (Classic) assets cached?” below).
||Size (Brotli compressed)
|Web Widget (Classic) Core
||The web_widget.js and common_vendor.js assets required for the Web Widget (Classic) regardless of which Channels are available.
|With Talk Channel
||The assets required by the Web Widget (Classic) when the Talk Channel is enabled in an account. 55 KB represents the first-time load of the Talk Channel.
|With Chat Channel
||The assets required by the Web Widget (Classic) when the Chat Channel is enabled in an account.
|Per language support
||+~5 KB (avg.) per language
||The Web Widget (Classic) will only load languages based on the visitor's locale setting.
When I embedded the Web Widget (Classic) in my web page I noticed a slower load time. Could the Web Widget (Classic) be slowing my page down?
The Web Widget (Classic) architecture is optimized for caching, so once it has loaded on your website once for a visitor, on subsequent page loads, the Web Widget (Classic) will load much more quickly.
What is the best tool to monitor page load speed for my website?
We recommend using Google’s Lighthouse tool that is available by default in the audit tab of developer tools. Lighthouse has very good coverage of new features available in modern web browsers like Google Chrome. We rely on features like HTTP/2 multiplexing to optimize the Web Widget (Classic) and Lighthouse will take multiplexing into account when calculating the performance of a web page with the widget embedded.
Does it matter whether I put the Web Widget (Classic) script tag in the <HEAD> or <BODY> of my web page?
Do the Web Widget (Classic) assets get served from a CDN?
Yes, the Web Widget (Classic) assets are served from a Content Delivery Network (CDN) using HTTP/2 to reduce latency. All the assets are accessed via a single origin which means that browsers will only need to open a single TCP connection in order to download the Web Widget (Classic). Visit this page to learn more about the benefits of HTTP/2.
Are the Web Widget (Classic) assets compressed using Gzip?
Yes, the Web Widget (Classic) assets are compressed using Gzip.
Are the Web Widget (Classic) assets cached?
Yes, the Web Widget (Classic) assets are individually versioned and long-term cached for up to a year. They’re cached both privately on end-user browsers, and publicly on CDN edge servers. Some assets required for the widget are unlikely to change between widget versions, and will be cached independently. This means those assets will be retrieved faster from cache the next time the browser needs them. For example, the country code flag icons utilized in Talk, or the notification sounds associated with Chat.
What if I use a CSP?
If you use a Content Security Policy (CSP), you must use the latest snippet. For more information, see the developer documentation about CSP support.
Is there an equivalent page for the new Web Widget? I just installed it and am noticing new performance issues.
We don't have an equivalent page for the messaging Web Widget as yet but I would be keen to hear more about the performance issues you're experiencing. Would you mind sharing more details?
Why is it still the case after literally years of promising performance improvements that the Zendesk chat widget still adds nearly half a megabyte to every single page load? This accounts for a third of our total page size on some pages.
I understand that's valuable to Zendesk as a company to be gathering data from all clients, but all we want is to load the chat button locally with a couple of kb of simple code, then IF a customer chooses to click the chat, then it connects to Zendesk and starts a session. Surely that's not difficult to achieve?
Please sign in to leave a comment.