Europe is small enough that almost any major city can serve the whole continent, and big enough that the wrong choice adds 30 or 40 milliseconds for some of your users. The right city depends on four things, in roughly this order: where your users are, where your data needs to stay, how well connected the city is, and price.
1. Start with your users
Network latency grows with distance. Light in optical fiber covers about 200 km per millisecond, so every 1,000 km between your server and a user adds roughly 10 ms to a round trip, plus whatever detours the route takes. For a website that is barely noticeable. For an API called dozens of times per page, a trading tool, voice chat or a game server, it adds up.
The table below estimates round-trip times from each city to population centers across Europe, using straight-line distance plus a typical routing overhead. Treat them as a guide for comparing cities, not a promise: actual numbers depend on the user's provider.
| Server in | UK | France | Germany | Netherlands | Spain | Italy | Poland | Nordics |
|---|---|---|---|---|---|---|---|---|
| Madrid | 23 | 16 | 26 | 24 | 3 | 22 | 35 | 39 |
| London | 5 | 10 | 13 | 8 | 21 | 21 | 23 | 22 |
| Paris | 10 | 5 | 12 | 9 | 18 | 16 | 21 | 24 |
| Amsterdam | 9 | 11 | 9 | 3 | 25 | 19 | 17 | 18 |
| Frankfurt | 14 | 11 | 5 | 8 | 24 | 14 | 14 | 19 |
| Zurich | 16 | 10 | 9 | 12 | 21 | 10 | 17 | 23 |
| Milan | 19 | 11 | 12 | 15 | 20 | 7 | 18 | 26 |
Two patterns stand out. Frankfurt and Amsterdam are within about 15 ms of most of western and central Europe, which is why they are the default for audiences spread across the continent. And the edges of Europe, Iberia, the UK and the Nordics, are best served from the closest city rather than the center.
2. Decide where the data should live
If you handle personal data of people in the EU, keeping the server inside the EU avoids questions about international data transfers. Frankfurt, Amsterdam, Paris, Milan and Madrid are all in the EU. London is in the UK and Zurich is in Switzerland, both outside the EU but with their own data protection laws. Some customers and contracts also ask for data to stay in one specific country. Our guide to keeping data in the EU covers this in more detail.
3. Look at connectivity
Every city here has a major internet exchange where networks meet and swap traffic: DE-CIX in Frankfurt, AMS-IX in Amsterdam, LINX in London, France-IX in Paris, SwissIX in Zurich, MIX in Milan and ESpanix in Madrid. Frankfurt and Amsterdam are the two busiest interconnection points in continental Europe, which tends to mean short, direct routes to many networks.
4. Then compare prices
The same hardware often costs a little more or less in different cities. Once you have narrowed it down to two or three locations that suit your users, compare them on the price grid, which shows the lowest monthly price for common configurations in every city.
Quick recommendations
- Users all over Europe: Frankfurt or Amsterdam.
- Mostly UK and Ireland: London.
- France and Belgium: Paris.
- Germany, Austria, Switzerland: Frankfurt, or Zurich if data should stay in Switzerland.
- Italy: Milan.
- Spain and Portugal: Madrid.
- Europe and North America: London or Amsterdam, which have short routes to the US East Coast, or a second server across the Atlantic.
Measure before you commit
Estimates are a starting point. Before ordering, ask a few real users to ping each candidate city's test IP, or run a traceroute from the data center to them with the looking glass. Ten minutes of measurement beats any map.