Tileserver Subdomains

The a, b, and c tileserver subdomains are a historic feature that is no longer necessary.

Background

Older web browsers (prior to HTTP/2 support, which arrived in major browsers during 2015) had a restriction on the number of simultaneous requests to a single domain, typically 6 connections. This limit was designed to reduce the server-side overhead of having too many open TCP connections from a single client - a reasonable default for most sites. However, for a map tile service like ours, where the browser needs to fetch many small images to fill the visible map area, this limit could slow map display down considerably. It was particularly noticeable on high-latency networks, or where the maps occupied a large part of the screen.

To work around this, the convention was to create multiple subdomains - typically a, b, and c - all serving the same images. This effectively tripled the browser limits, since the browser could make 6 connections to each of the 3 domains simultaneously, to make up to 18 parallel requests.

https://a.tile.thunderforest.com/cycle/3/3/3.png?apikey=<insert-your-apikey-here>
https://b.tile.thunderforest.com/cycle/3/3/3.png?apikey=<insert-your-apikey-here>
https://c.tile.thunderforest.com/cycle/3/3/3.png?apikey=<insert-your-apikey-here>

Why subdomains are no longer needed

All modern browsers now support HTTP/2, which allows multiple requests to be multiplexed over a single connection. This makes the subdomain workaround completely unnecessary - the browser can efficiently request up to a hundred tiles in parallel from a single domain.

In fact, using subdomains with HTTP/2 can actually hurt performance, particularly on high-latency connections. Each subdomain requires a separate DNS lookup, TCP connection, and TLS handshake, adding latency before any tiles can be loaded. Switching to a single domain avoids this overhead and lets HTTP/2 work as designed.

How to upgrade

You can replace any subdomain-based tile URLs used on your site with our main api domain. For example:

Before:

https://{s}.tile.thunderforest.com/{style}/{z}/{x}/{y}.png?apikey={apikey}

After:

https://api.thunderforest.com/{style}/{z}/{x}/{y}.png?apikey={apikey}

If you are using a library such as Leaflet, simply remove the subdomains option and use the api.thunderforest.com URL. See our Leaflet tutorial for a full example.

The a, b, and c subdomains will continue to work indefinitely, so there is no urgency to migrate, but we recommend upgrading when convenient.

If you have any questions, please get in touch and we’ll be happy to help!