Every airport is three airports: the multi-airport search mindset
Ask someone the price of a flight from Paris to Marrakesh and they'll check one website, which quietly means one airport, and come back with one number. But "Paris" isn't an airport. It's Charles de Gaulle, Orly, and — if you're willing to stretch the definition the way Ryanair does — Beauvais, 85 kilometres away. Three different airports, three different airline ecosystems, three genuinely different prices for "the same" trip.
The habit of collapsing a city into its biggest airport is the quietest way people overpay for flights. Not dramatically, not on every trip — just a steady €20–60 leak on every booking where a secondary airport had the better fare and nobody looked.
Cities are sets, not points
The mental shift is small but it changes how you search: a city is a set of airports, and a route is every pairing between two sets. Paris to Marrakesh isn't one route; it's CDG→RAK, ORY→RAK and BVA→RAK, served by different carriers with different pricing logic. Orly is where Transavia and the Moroccan leisure traffic live; Beauvais is Ryanair's turf; CDG is Air France and partners. On any given week, any of the three can be cheapest.
Milan is the same story with Italian styling: Malpensa (big, far), Linate (close, premium) and Bergamo (Ryanair's Italian fortress, technically a different city, practically a Milan airport). Search Milan to Casablanca across all three and the spread between the cheapest and dearest airport on the same day is regularly the price of a decent dinner. Brussels has Zaventem and Charleroi. Even Oslo counts Torp, an hour and a half away. The pattern is everywhere once you see it.
The trade-offs are real, so price them
Secondary airports are cheaper partly because they're worse. Beauvais is €17 and 75 minutes by coach from Porte Maillot; that coach costs money and, more importantly, it costs certainty — miss it and the next one might not save your flight. My rule: a secondary airport needs to beat the primary by more than the ground-transport difference plus a personal annoyance premium. Mine is about €25; yours might be €10 or €50. The number matters less than having one, because the alternative is deciding by vibes at 11pm with a booking tab open.
The same arithmetic gets an entire article's worth of nuance for the most extreme case in Europe — London and its six airports — where the spread between airports can exceed the fare itself.
Destinations deserve the same treatment
Everyone eventually learns to check departure airports; almost nobody flips it around. Flying "to Morocco" doesn't have to mean Marrakesh — Rabat is routinely a fraction of the price and an hour from Casablanca by train. Flying "to Madeira" from the wrong city is a €730 mistake with a €58 solution. The set-mindset applies at every scale: airports within a city, cities within a region, and occasionally regions within a trip.
Doing this by hand means running six or eight searches instead of one, which is why almost nobody does. It's also why we built Flight Combinator's search to take airport sets on both sides and sweep every pairing in one pass — the tool exists because the mindset is right and the manual workflow is miserable. However you do it, stop asking "what does the flight cost". Ask "which of these nine flights is cheapest", because that's the actual question, and the answer is frequently not the one you'd have guessed.