Mapbox GL JS reduces GeoJSON memory usage by 2-3x for larger, more responsive web maps
Mapbox GL JS now processes GeoJSON data more efficiently on the client, using 2–3x less memory for GeoJSON sources. This reduces the risk of browser tab crashes with large datasets and keeps maps smooth and responsive during loading and interaction, all without requiring any code changes.
Developers can use the memory savings to improve performance with existing datasets or support significantly larger custom GeoJSON datasets while maintaining a responsive map experience.
Scale data visualizations without hitting device limits
GeoJSON is the primary format developers use to add their own data to a map, from asset tracking to real estate listings, store locations to analytics data. As those datasets grow, memory becomes a limiting factor, especially on mobile devices and lower-end laptops. Large datasets potentially consume enough memory to slow the map or even crash the browser tab. With these improvements, GL JS can performantly handle much larger datasets
"I tested the new GeoJSON memory improvements in Mapbox GL JS with 240,000 US block groups rendered at full detail. This is the kind of dataset that used to crash Chrome. Now it just works, with no extra preprocessing needed."
Kyly Walker, @kyle_e_walker on X
Major updates to two libraries reduce GeoJSON memory usage
Two open-source libraries at the core of Mapbox GL JS handle much of the work behind GeoJSON:
- geojson-vt dynamically slices GeoJSON into map tiles.
- Supercluster efficiently groups large point datasets into clusters.
Mapbox released major updates to both libraries that significantly reduce memory usage. Instead of storing millions of small JavaScript objects, GL JS now uses compact typed arrays with integer coordinates. GL JS also reads tile geometry directly from this storage, eliminating the need to create temporary copies for each tile.
The result is the same map output with a much smaller memory footprint. Because both geojson-vt and Supercluster are open source, these improvements also benefit the broader ecosystem of mapping tools built on them.
2–3x less memory for GeoJSON sources
Across benchmark datasets, memory usage dropped by 45–75%. For a 205 MB dataset of US counties, the GeoJSON index now uses 103 MB instead of 241 MB.
Peak memory usage during processing dropped by as much as 79%. On the same counties dataset, a demanding workload now peaks at 456 MB instead of 1.9 GB, bringing previously crash-prone workloads comfortably within browser memory limits.

More efficient clustering at scale
For a dataset of 1.6 million real-world places, clustering memory dropped from 642 MB to 82 MB, an 87% reduction. Peak memory also fell from 990 MB to 470 MB.

Smoother map interaction.
Processing and tile generation now create far less temporary memory, reducing garbage-collection pauses and helping maps stay responsive while loading and moving.
Bigger datasets. Smaller footprint. Get started.
Performance and custom data visualization are a driving factor in why developers choose Mapbox. Mapbox continues to focus on optimizing GL JS performance, and these GeoJSON memory usage improvements are another example.By reducing the memory footprint of every GeoJSON source, these improvements make it possible to visualize more data, support more users, and deliver strong performance across a wider range of devices.
Update to GL JS v3.31 or later to take advantage of the improvements. No code changes or new configuration are required; existing GeoJSON sources and clustered layers automatically benefit.
Ready to get started?
Create an account or talk to one of our experts.


