How to fix Kite charting and streaming lag on Zerodha
Kite uses WebSocket connections to deliver real-time streaming quotes to the browser and to update live candles on charts. Charting and streaming lag, frozen prices, delayed candle updates, or charts that do not load, can originate from Zerodha’s servers, your internet connection, your browser, or your device. Identifying the root cause is the essential first step.
Conflict-of-interest disclosure. This guide is published by WebNotes Editorial Team for informational purposes only. WebNotes has no commercial relationship with Zerodha.
Prerequisites
- An active Zerodha account logged in to Kite web or the Kite mobile app.
- A browser on desktop (Google Chrome, Mozilla Firefox, or Microsoft Edge, latest version) or the latest version of the Kite mobile app.
Step 1: Check the Kite platform status
Before adjusting your browser or network settings, confirm that Zerodha’s own infrastructure is healthy. Visit status.zerodha.com.
The status page shows the operational status of:
- Kite web
- Kite mobile app
- Streaming (WebSocket quotes)
- Order placement
- Console
- Kite Connect API
If a streaming or charting incident is active (status: Degraded or Outage), the lag you are experiencing is a platform-side issue. No client-side fix is possible. Monitor the status page and wait for Zerodha to resolve the incident. Zerodha also posts incident updates on their Twitter (X) handle @zerodhaonline.
If all systems show “Operational,” proceed to the subsequent steps.
Step 2: Test your internet connection
Speed test
Open fast.com or speedtest.net and run a speed test. Kite’s minimum requirement for smooth streaming is approximately:
| Metric | Minimum for basic streaming | Recommended |
|---|---|---|
| Download speed | 1 Mbps | 5 Mbps or above |
| Upload speed | 0.5 Mbps | 2 Mbps or above |
| Latency (ping) | Below 150 ms | Below 50 ms |
| Jitter | Below 50 ms | Below 10 ms |
High jitter (variable latency) causes intermittent quote freezes even when the average speed is adequate.
Ping test
Open a terminal or Command Prompt. Run:
ping api.kite.trade
Note the average round-trip time. Above 150 ms consistently indicates either high geographic distance from Zerodha’s servers (Mumbai-based) or network congestion.
Switch networks
If possible, switch from Wi-Fi to a wired Ethernet connection. If on mobile data, move to an area with stronger signal. If the lag disappears after switching networks, the original network (Wi-Fi router, ISP, or corporate proxy) is the cause.
Step 3: Hard reload and clear the browser cache
Kite caches JavaScript bundles, CSS, and charting library files in the browser. An outdated or corrupted cache can cause charts to fail or stream data inconsistently.
Hard reload (bypasses cache without deleting it).
- Chrome / Edge / Firefox on Windows or Linux: press Ctrl + Shift + R.
- Chrome / Safari on macOS: press Cmd + Shift + R.
Full cache clear. In Chrome: Settings (three-dot menu) > Clear browsing data > Cached images and files (time range: All time) > Clear data.
After clearing the cache, log in to Kite again and test charting.
Step 4: Check for browser extension interference
Certain browser extensions interfere with WebSocket connections, ad-blocking rules, or JavaScript execution:
| Extension type | Potential interference |
|---|---|
| Ad blockers (uBlock Origin, AdBlock Plus) | May block Zerodha’s analytics or streaming domains |
| VPN extensions | Route traffic through distant servers, increasing latency |
| Privacy Badger, Ghostery | May block third-party connections used by Kite |
| Script blockers (NoScript, uMatrix) | May block Kite’s JavaScript modules |
Test in incognito mode. Open Kite in a browser incognito or private window (Ctrl+Shift+N in Chrome). Incognito mode disables most extensions by default. If Kite performs well in incognito, a browser extension is the cause.
To identify the specific extension: open a regular window, disable all extensions (browser Extensions menu), test Kite, then re-enable extensions one at a time until the lag reappears.
Step 5: Reduce market watch instrument count
Kite’s WebSocket stream delivers tick data for each instrument on your market watch. Zerodha’s stream supports up to approximately 200 instruments per WebSocket connection. As the instrument count approaches this limit, the browser’s JavaScript engine must process a higher volume of incoming tick data, which can cause perceptible lag on slower devices.
Recommended action. Remove instruments from the market watch that you do not actively monitor. Go to Market Watch, hover over each instrument, and click the minus icon or Remove option.
For active traders who legitimately need large watch lists, the Kite Connect API with a dedicated streaming consumer is more efficient than the web interface for high-volume streaming.
Step 6: Check device resource usage
On desktop, open the Task Manager (Windows: Ctrl+Shift+Esc; macOS: Activity Monitor) and check:
- CPU usage: if the browser process is consistently using more than 80% CPU, the device is struggling to process the incoming data stream. Close other applications or browser tabs.
- RAM: if available RAM is below 1 GB, the browser may be swapping to disk, causing sluggishness. Close unnecessary tabs.
- Browser GPU process: Kite charts use WebGL for rendering. If the GPU process shows extremely high usage, try disabling hardware acceleration in browser settings (Settings > System > Use hardware acceleration when available → Off).
On mobile, check whether the Kite app is running in low-power mode or whether the device has enabled background app restriction for Kite. On Android, ensure Kite is excluded from battery optimisation.
Step 7: Update the browser or app
An outdated browser may lack WebSocket performance improvements or have known bugs in JavaScript engine or rendering. Update to the latest stable version of Chrome, Firefox, or Edge.
On mobile, update the Kite app through the Google Play Store or Apple App Store. Zerodha regularly releases performance improvements to the app.
Step 8: Use the alternative Kite mobile app if charting remains slow on web
If Kite web consistently shows charting lag on your device, the Kite mobile app uses a native rendering engine (not a browser) for charts and may perform better on the same network. This is particularly relevant on low-RAM laptops where the browser becomes a bottleneck.
What can go wrong
Lag only during market opening (9:15 AM to 9:20 AM). This is a known high-volume period when Zerodha’s streaming servers handle peak tick rates. Brief lag at open is common industry-wide and is not indicative of a persistent issue.
Chart candles load but live candles do not update. Historical candles are fetched via HTTPS (not WebSocket) and will load even if the WebSocket is disconnected. If only live candles are frozen, the WebSocket has disconnected. Reload Kite to re-establish the WebSocket connection.
Lag only for specific instruments. Some instruments have very high tick rates (Nifty index, Bank Nifty, highly active stocks). If charting lags for only one or two high-volume instruments, the device CPU may be the bottleneck, not the network.
Orders execute but quotes are frozen. Order submission uses a separate HTTPS API, not the WebSocket. It is possible for orders to go through while streaming quotes are lagged or disconnected.
Escalation path
If charting and streaming lag persists after all the above steps:
- Check status.zerodha.com for any ongoing incidents.
- Raise a support ticket at support.zerodha.com with: browser version, OS version, internet speed test screenshot, and a description of when the lag occurs (which instruments, time of day).
- For network-level issues at a corporate site, see How to whitelist Kite IPs on a corporate network.
Related guides
References
- Zerodha, “Kite Platform Status,” status.zerodha.com.
- Zerodha Support, “Kite streaming lag and chart issues,” support.zerodha.com.
- Zerodha Z-Connect Blog, “Kite 3.0 architecture and streaming,” zerodha.com/z-connect.
- IETF RFC 6455, “The WebSocket Protocol,” 2011.
- Google, “Chrome browser performance optimisation guide,” developer.chrome.com.