GeoWebCache (GWC) tile formats available in GeoServer
GeoServer, as an open source mapping server compliant with OGC (Open Geospatial Consortium) standards, offers several types of web services for the distribution of geospatial data. One of the key components of this ecosystem is GeoWebCache (GWC), which enhances display performance by caching map tiles with a choice of image formats.

The classic options: jpeg or png?
The default formats are the two most commonly used: jpeg and png.
Use the JPEG (or JPG) format when :
- Data are of the “image” or “photo” type:
- Orthophotos, satellite images, aerial photographs…
- JPEG is ideal for images with lots of color and continuous detail.
- You don’t need transparency:
- JPEG doesn’t handle transparency, so avoid it if your layers have transparent areas (such as polygons on an empty background).
- You’re looking to optimize performance (speed and size):
- JPEG files are smaller than PNGs, so they load faster.
- Ideal if the map needs to be fast, for example for a background map.
- You want to limit server load and bandwidth:
- JPEG tiles consume less bandwidth than PNG tiles.
JPEG should not be used when :
- You have vector data with transparency, such as administrative boundary layers, roads, points or colored polygons without a background.
- You need graphic precision, e.g. with labels, sharp borders or sharp contrasts.
- You need to superimpose the layer on other layers: without transparency, the white JPEG background will hide what’s underneath.
This format is therefore particularly recommended when you have, for example, a background map with IGN orthophotos or a Google-like satellite view, or a georeferenced raster scan layer.
In GeoServer / GeoWebCache, you can propose several tile formats for the same layer (JPEG, PNG8, PNG32…), and let the client (e.g. Leaflet, OpenLayers…) choose as required.
Use PNG(or PNG8) format when :
Do not use the jpeg format!
- You have vector data with transparency, such as administrative boundary layers, roads, points or colored polygons with no background.
- You need graphic precision, for example with labels, sharp borders or sharp contrasts.
- You need to superimpose the layer on other layers: without transparency, the white JPEG background will hide what’s underneath.
Tile format comparison – GeoWebCache
Criteria | JPEG | PNG (8/24/32) |
---|---|---|
Transparency | ❌ No | ✅ Yes |
File size | Smaller (compressed, lossy) | Plus grande (sans pertes) |
Color quality | Good for photos | Excellent for vectors, solid colors |
Sharpness of lines/text | Peut être floue | Very sharp |
Recommended data type | Orthophotos, images raster | Vector data (boundaries, roads, points) |
Performance (loading) | Rapide | Plus lent (mais précis) |
Use as background map | Yes | Yes if PNG8 (optimized) |
Use JPEG for photo or raster backgrounds with no need for transparency.
Use PNG for vector layers with transparency or high visual precision.
When and why to use PNG8 instead of PNG (24- or 32-bit)
Use PNG8 when :
- You need transparency, but not complex gradients:
- PNG8 handles binary transparency (a pixel is either opaque or transparent).
- Sufficient for vector layers such as :
- Routes
- Area polygons
- Administrative boundaries
- Simple symbols
- The number of colors in the layer is limited (≤ 256 colors):
- PNG8 uses a palette of 256 colors maximum.
- Ideal if the symbology is simple (few classes or different colors).
- You want good compression without perceptible loss of visual quality:
- Tiles are lighter than PNG24/32, so they load faster.
- They often save 50% or more in weight.
- You want light transparency without the artifacts of JPEG:
- Unlike JPEG, PNG8 doesn’t generate smears or blurred effects.
PNG8 should not be used when :
- You have complex color gradients or visual effects (e.g. shading, warmth, blurred backgrounds).
- You need partial alpha transparency (e.g. semi-transparency, soft shadows).
- The layer contains many different colors, such as :
- Thematic maps with gradients
- Stylized raster
In the configuration of your tile formats in GeoWebCache, you can enable PNG8 as an output format, and even set it as the default format for single layers.
PNG8 vs PNG24/32 comparison
Criteria | PNG8 | PNG24/32 |
---|---|---|
Colors | 256 max (palette) | Millions of colors |
Transparency | Binary (0% or 100%) | Alpha (0% to 100%) |
File size | Smaller | Larger |
Performance | Very good | Less good |
Grades quality | Poor | Excellent |
Typical use case | Simple vectors, symbols | Grades, semi-transparency, images |
Vector tiles
The MVT format (for Mapbox Vector Tiles) is a powerful alternative to conventional raster tiles (PNG, JPEG). Here’s why you might want to use it in GeoWebCache / GeoServer:
Why use the MVT (Mapbox Vector Tiles) format?
- Tiles are vector, not raster
- Unlike PNG or JPEG tiles, MVT encodes geometry and attributes, not an image.
- Result: optimal visual quality at all scales (no blurring or pixelation when zoomed in).
- Network and client performance
- MVT files are very light (generally smaller than PNGs).
- Less bandwidth = faster loading, especially on mobile or 4G.
- Styling is applied client-side, enabling :
- Dynamic interaction (change of color, style, popup…)
- Ultra-fast rendering (no new server requests for each style).
- Smooth, multi-scale zooming
- As data is vector-based, the client (Leaflet, MapLibre, OpenLayers…) can :
- Dynamically adapt the style to the zoom level
- Display more or less detail as required
- Client-side reuse
- Once vector tiles have been received, the client can :
- Apply multiple styles without re-requesting data
- Dynamically show or hide layers
- Offer rich interactions (popups, rollovers, dynamic filters)
When to avoid MVT?
- If you’re working with a client that supports raster only
- If you want exact rendering controlled on the server side
- If you don’t have style control on the client side (e.g.: a frozen map background for printing)
Typical MVT use cases can be summarized as follows:
- Interactive maps on the web (OpenLayers, MapLibre, Leaflet with plugin)
- Multi-theme display with on-the-fly style changes
- Fluid navigation at multiple scales
- Visualization of large volumes of vector data
Configure MVT in geoserver
GeoServer 2.26 natively supports MVT via an extension. For the format to be available in the GeoWebCache configuration page and on the Layer tiling tab, you must activate support for vector tiling (MVT).
If you see application/vnd.mapbox-vector-tile in the list of vector layers in Geowebcache Settings, the extension is installed and activated.
If not, you’ll need to download the extension. At the time of writing, finding the right version of the extension for the version of Geoserver you have installed is complicated, to say the least.
If you have Geoserver version 2.26, use this link https://sourceforge.net/projects/geoserver/files/GeoServer/2.26.2/extensions/ and search for geoserver-2.26.x.vectortiles-plugin.zip.
Download this file, unzip it and copy the .jar files into the WEB-INF/lib folder of your Geoserver installation.
Check that application/vnd.mapbox-vector-tile is now available in the list of vector formats.
Don’t forget that:
-MVT layers are not styled in GeoServer, but in the web client (e.g. style.json in MapLibre).
-MVT only handles vectors (no images or rasters).