Key takeaways
- Milan's three airports handled 59,455,325 passengers in 2025, 25.8% of Italy's total, on Assaeroporti figures summed for this report.
- Malpensa supplied about 97% of Milan's 2025 growth, while Bergamo lost 2.4% of its passengers (Assaeroporti; our arithmetic).
- In January–September 2026 Malpensa grew 0.9% while Linate grew 8.7% and Bergamo 7.4%, so Linate and Bergamo supplied about 89% of Milan's gain (Assaeroporti; derived).
- SEA, which runs Malpensa and Linate and is 54.81% owned by the City of Milan, is the largest shareholder in Bergamo's operator SACBO, with 30.98%.
- Ryanair carried 13,662,195 of Bergamo's 16,937,976 passengers in 2025, or 80.7%, and its decline made up 80% of the airport's loss (derived from SACBO's accounts).
- Linate is limited to 18 aircraft movements an hour, a figure the European Commission confirmed in 2022, and has no passenger cap.
- During Malpensa's runway closure from 16 March to 9 May 2026, Linate's limit was raised temporarily, and ENAC/SEA and Il Fatto Quotidiano give different figures for the increase.
- No source publishes how many passengers moved from Malpensa to Linate during the closure, how the three airports' catchments overlap, or why Malpensa barely grew in 2026.
Milan's three airports handled 59,455,325 passengers in 2025, on the airport association Assaeroporti's figures as republished by Italiavola & Travel, which include direct transit. That was 25.8% of all airport passengers in Italy and more than Rome's two airports handled. Malpensa supplied almost all of the year's growth. In the first nine months of 2026 the pattern reversed. Malpensa grew 0.9% while Linate grew 8.7% and Bergamo 7.4%, on Assaeroporti's January–September figures.
The three airports are less separate than their names suggest. SEA, the company that runs Malpensa and Linate, is also the largest shareholder in SACBO, the company that runs Bergamo, with 30.98% of its shares. Linate, the airport closest to the city, operates under a state limit of 18 aircraft movements an hour. Bergamo depends on one airline. Ryanair carried 80.7% of its passengers in 2025, on our arithmetic from SACBO's own accounts, and Ryanair's decline that year made up 80% of the airport's loss.
These facts matter to anyone choosing an airport, pricing a hotel near one or analysing Italy's air market. They also expose what the published data cannot answer. Malpensa closed one of its two runways from 16 March to 9 May 2026, and some flights moved to Linate under a temporary higher limit. No source publishes how many passengers moved, and two sources disagree on how high the limit went. No source explains Malpensa's flat 2026. This report sets out what each series shows, which figures conflict and which claims do not hold.
Three airports, three counts and one total
Milan's airport traffic is published in three ways, and the numbers differ slightly. The regulator ENAC counts arriving and departing passengers and leaves out direct transit passengers, who stay on board. Assaeroporti includes them. The two operators, SEA and SACBO, publish their own totals. Each count is correct on its own basis. This report uses Assaeroporti for tables that compare the three airports, because it is the only source that covers all three on one basis, and names the source for every other figure.
On Assaeroporti's 2025 table, as republished by Italiavola & Travel on 4 February 2026, Malpensa handled 31,385,585 passengers, up 8.6% on 2024. Bergamo Orio al Serio handled 16,937,976, down 2.4%. Linate handled 11,131,764, up 4.5%. Together they handled 59,455,325, up 4.5%, against 56,914,931 in 2024. Malpensa added about 2.48 million passengers. The system as a whole added about 2.54 million. Malpensa therefore supplied about 97% of Milan's growth in 2025, on our arithmetic.
| Airport | Passengers 2025 | Passengers 2024 | Change (%) | Share of Italy 2025 (%) |
|---|---|---|---|---|
| Milan Malpensa (MXP) | 31,385,585 | 28,910,368 | 8.56 | 13.64 |
| Bergamo Orio al Serio (BGY) | 16,937,976 | 17,353,573 | -2.39 | 7.36 |
| Milan Linate (LIN) | 11,131,764 | 10,650,990 | 4.51 | 4.84 |
| Milan system, three airports | 59,455,325 | 56,914,931 | 4.46 | 25.84 |
| Italy, 41 airports | 230,081,011 | 219,078,618 | 5.02 | 100.00 |
The operators' figures tell the same story with small differences. SEA reported 31.2 million passengers at Malpensa in 2025, up 9%, and 11.1 million at Linate, up 5%, a combined 42.3 million. Its board approved the accounts on 25 March 2026. ENAC gives Malpensa 31.2 million, up 8.7%, and Bergamo 16.9 million, down 2.4%. ENAC's 2025 traffic report as read gives no total for Linate, only its domestic passengers. SACBO's figure for Bergamo, 16,937,976, is identical to Assaeroporti's.
Each airport serves a different market. Malpensa is the long-haul gateway. SEA says international passengers made up 85% of its 2025 traffic and that long-haul flights carried about one-fifth. Low-cost airlines carried about 57% of its passengers and traditional airlines about 43%, according to SEA. Its Terminal 2 is used only by easyJet. Malpensa served 204 destinations in 2025, up from 198. Linate is a short-haul city airport. SEA reports that 43% of its passengers flew domestic routes, 45% European routes and 12% routes outside Europe. ITA Airways is its largest airline, with 44% of passengers in 2025. ITA gave up about 30 daily Linate slots to easyJet in summer 2025, according to SEA. Our report on ITA Airways and Lufthansa covers the airline's ownership change. Bergamo is a low-cost base, with Ryanair and Wizz Air its two largest airlines.
Cargo is concentrated at one airport. ENAC counted 764,000 tonnes at Malpensa in 2025, about 61% of Italy's air cargo. SEA's annual report gives 758,400 tonnes for Malpensa, and the definitions behind the two counts are not explained. Bergamo handled 24,531 tonnes, according to SACBO, which made it Italy's fifth cargo airport in ENAC's ranking. Bergamo's cargo rose 56.3% in January–September 2026, to 27,209.6 tonnes, on Assaeroporti's figures. No source read for this report explains the jump.
Malpensa's operator owns the largest stake in Bergamo
SEA is controlled by the City of Milan. The Comune di Milano held 54.81% of SEA's shares at the end of 2025 and 2i Aeroporti SpA held 45.01%, according to SEA's 2025 annual financial report. Small public and private holders own the remaining 0.18%. SEA reported revenue of €876.8 million in 2025 and net income of €190.6 million, up 11.7%.
SACBO's ownership is more fragmented. Its 2025 accounts list ten holders of its 3,543,750 shares at 31 December 2025. SEA holds 30.98%. Intesa Sanpaolo holds 17.90%, the Comune di Bergamo 13.84%, the Bergamo chamber of commerce 13.25% and the Provincia di Bergamo 10.20%. Banco BPM holds 6.96%, Heidelberg Materials Italia Cementi 3.27% and Confindustria Bergamo 0.59%. SACBO owns 3.00% of its own shares. A local flying club holds 0.01%. SEA's annual report lists SACBO as an associate company.
The result is a single largest shareholder across all three airports. SEA does not control Bergamo, because the other holders together own more than two-thirds of SACBO. It is still the biggest single owner of the other large low-cost airport serving Milan. The two companies publish separate accounts and separate traffic figures. Neither publishes any data on how their airports share the Milan market, such as catchment areas, overlap between passengers or routes moved from one airport to another.
Bergamo's finances are smaller. SACBO's group production value was just under €165 million in 2025, according to its board's release of 26 March 2026. Aviation revenue fell 4.7% to €53.0 million, and commercial revenue rose 3.2% to €72.8 million. SACBO SpA made a net profit of €8.6 million. The company reported 717 employees at the end of 2025. The two operators differ greatly in scale. SEA's 2025 revenue of €876.8 million was more than five times SACBO's group production value, a different but comparable measure of scale. SEA's two airports handled about 42.3 million passengers on its own count, against about 16.9 million at Bergamo. The shareholding links a large city operator with a smaller airport whose traffic depends on one airline's choices.
Linate's limit is 18 movements an hour, and it has no passenger cap
Linate's capacity is set by the state, and the operator does not set it. SEA's 2025 annual report states that Linate is capped at 18 movements per hour by ENAC decree 01-420/DG of 12 February 2001. A movement is one take-off or one landing. The decree itself was not available to read for this report. The European Commission confirmed the figure in its Implementing Decision (EU) 2022/1415 of 18 August 2022, which refers to Linate's "defined capacity limits of the airport, namely 18 hourly movements".
The same decision sets the shape of Linate's network. It approved an Italian rule that allows point-to-point flights from Linate with narrow-body aircraft to airports within 1,500 km, in the EU or in countries with a qualifying air agreement with the EU. It refused a further Italian proposal to stop airlines selling Linate tickets that connect at airports outside Milan. Long-haul flights therefore stay at Malpensa.
Linate has no passenger cap. The Commission's decision records that earlier limits on flight frequency, which depended on passenger volumes, were removed by a later Italian decree. Linate carried 11.1 million passengers in 2025, according to SEA. SEA reported 93,200 commercial movements at Linate in 2025, up 3%, an average of about 255 a day on our arithmetic. Growth at Linate now depends on fuller and larger aircraft, and on how the 18 hourly slots are used across the day. In January–September 2026 Linate's passengers rose 8.7% while its movements rose 5.7%, on Assaeroporti's figures. Passengers per movement rose from about 90 to about 93 on our arithmetic.
The limit moved once in 2026. Malpensa's runway 35L/17R was closed from 16 March to 9 May for rebuilding. ENAC and SEA said in a joint statement of 19 February, as republished by Italiavola & Travel, that ENAC had raised Linate's limit by up to eight additional movements an hour, on the operator's proposal and only temporarily. Only flights to Schengen destinations on narrow-body aircraft moved to Linate. SEA's annual report dates the increase from 29 March to 9 May. Il Fatto Quotidiano reported on 19 February that the Ministry of Infrastructure and Transport had granted a derogation lifting the maximum to 24 movements an hour.
The two accounts differ on the size of the increase, on the authority that granted it and on its start date. The act itself was not found. This report therefore gives no single figure for Linate's temporary limit. Neither ENAC nor SEA has published how many flights or passengers moved from Malpensa to Linate during the seven weeks of works.
Bergamo runs on one airline
Ryanair carries most of Bergamo's passengers. SACBO's 2025 accounts give Ryanair 13,662,195 passengers at Bergamo out of a total of 16,937,976. That is 80.7%, on our arithmetic, and the share was 80.6% in 2024. Ryanair's passengers fell by 332,427 in 2025. The airport's total fell by 415,597. Ryanair therefore accounted for 80% of the decline. All other airlines together fell 2.5%, from 3,358,951 to 3,275,781 passengers. SACBO reports Ryanair's average load factor at 90.3%.
The rest of the list is short. Wizz Air carried 1,601,824 passengers at Bergamo in 2025, up 3.1%, or 9.5% of the total. Pegasus carried 280,292. Volotea, Air Arabia, AJet, Flydubai, Air Arabia Egypt and Air Arabia Maroc each carried between 100,000 and 130,000. Neos carried 87,371, up 64.6%. SACBO's accounts say easyJet ceased operations at the airport during 2025. Most of the smaller airlines grew faster than the leader. Air Arabia rose 23.6%, AJet 36.2% and Flydubai 9.7%. Six airlines based in Turkey, the Gulf, Egypt and Morocco carried about 852,000 passengers, about half of Bergamo's traffic outside Ryanair and Wizz Air, on our arithmetic. Their combined volume is still small. The nine airlines listed after Ryanair carried about 2.67 million passengers in 2025, on our arithmetic from SACBO's table, less than a fifth of Ryanair's total.
SACBO's own explanation puts Ryanair first. The accounts say traffic slowed from the 2024–2025 winter season, first because of Ryanair, then because easyJet ceased operations and Wizz Air slowed for lack of aircraft. Passengers were down 6.2% at mid-year, according to SACBO. The second half improved, helped by renewed commercial agreements with Ryanair, which the company says should support growth over the next decade. The accounts give no terms or duration. Movements fell 4.8% for the year, to 104,665.
The press account in 2025 was sharper. Il Post reported on 22 August 2025 that Bergamo was the only medium-to-large Italian airport to lose passengers in the first half of the year, citing a 4% fall in ENAC data. It said Ryanair operated 80% of the airport's flights and had cut about 5% of them, around 2,000 flights. Il Post, citing an analysis by Leonard Berberi in Corriere della Sera, reported that SACBO had paid more than €500 million in airline incentives between 2009 and 2024, about €400 million of it to Ryanair according to SACBO sources. These are press figures, partly from unnamed sources. SACBO's 2025 accounts show €55,255,489 in incentives to all airlines that year, down 13.7%. They give no figure by airline.
The two mid-year figures for 2025 differ, at a 4% fall in ENAC data reported by Il Post and a 6.2% fall stated by SACBO. They may cover slightly different periods. The full-year figure is the same on every series, a fall of 2.4%. Il Post's 80% refers to flights, and SACBO publishes passengers by airline but not flights by airline. The two shares are consistent in size and measure different things.
Ryanair's own figures cover Milan as a whole and cannot be checked. In its release of 1 October 2026 the airline announced 33 based aircraft in Milan, 125 routes and 8.7 million winter seats, up 11%, including more than 640,000 extra seats at Malpensa, up 27%, and two more aircraft at Bergamo. Its earlier releases gave fleet counts that do not add up to that total. Ryanair has not published passenger numbers for Malpensa, and the Milan passenger totals in its releases have no defined scope. Wizz Air said in March 2026 that it would base a tenth aircraft at Malpensa from 25 October 2026. These are company statements about capacity. Seats are not passengers.
Ryanair also ties its Milan plans to a tax. It says the municipal surcharge on departing passengers, the addizionale comunale, can reach up to €7 per passenger at Bergamo and Malpensa. The 2025 budget law set a €0.50 increase from April 2025 on non-EU departures at airports with more than 10 million passengers, according to the airport association's position paper, which said in December 2025 that the implementing decree was still pending and argues for phasing the charge out. The surcharge is a different levy from the tourist tax charged per hotel night. Ryanair says that abolishing it nationally would bring 20 million more passengers a year. No government or ENAC estimate of its effect on traffic has been published.
In 2026 Linate and Bergamo grew while Malpensa barely moved
Assaeroporti's statistics page, read on 1 November 2026, gives January–September 2026 figures for every airport. Malpensa handled 24,087,446 passengers, up 0.9%. Linate handled 9,022,175, up 8.7%. Bergamo handled 13,871,761, up 7.4%. Italy as a whole handled 187,124,810, up 5.5%. Milan's three airports together handled 46,981,382 passengers, 25.1% of the national total, against 22.8% for Rome's two airports.
Working back from the published percentages, which are rounded to one decimal place, Malpensa added about 215,000 passengers. Linate added about 722,000 and Bergamo about 956,000. Milan's total rose about 1.89 million, or about 4.2%. Linate and Bergamo supplied about 89% of that gain. In 2025 Malpensa had supplied about 97%. Milan's airports handled a quarter of Italy's passengers in January–September 2026 and supplied about a fifth of the national growth. These are derived figures and approximate.
| Airport | Passengers Jan–Sep 2026 | Change Jan–Sep (%) | Approx. passengers added (derived) | Change Sep 2026 (%) | Change in movements Jan–Sep (%) |
|---|---|---|---|---|---|
| Milan Malpensa (MXP) | 24,087,446 | 0.9 | 215,000 | 4.5 | -1.2 |
| Milan Linate (LIN) | 9,022,175 | 8.7 | 722,000 | 5.7 | 5.7 |
| Bergamo Orio al Serio (BGY) | 13,871,761 | 7.4 | 956,000 | 6.9 | 8.0 |
| Milan system, three airports | 46,981,382 | 4.2 | 1,893,000 | 5.4 | 2.8 |
| Italy, 41 airports | 187,124,810 | 5.5 | 9,755,000 | 6.5 | 4.7 |
Malpensa's movements fell 1.2% while its passengers rose 0.9%, so each flight carried more passengers on average. The airport's cargo fell 6% over the same months. September looked different from the rest of the period. Malpensa's September passengers rose 4.5%, against 5.7% at Linate and 6.9% at Bergamo. Taking September out of the nine-month totals, Malpensa grew about 0.4% in January–August, Linate about 9.1% and Bergamo about 7.5%, on our arithmetic from the same Assaeroporti page.
Several events overlap with Malpensa's flat months. The runway closure ran from 16 March to 9 May, with intra-Schengen narrow-body flights moved to Linate. SEA's annual report said routes exposed to the conflict involving Iran accounted for 6% of the system's 2025 passengers. The same report said passengers across SEA's two airports had grown 7% in January and February 2026. None of these sources states how much of Malpensa's 2026 result each factor explains. Assaeroporti's statistics page carries monthly airport figures for September only, and the earlier months were not read for this report. The data cannot separate the runway works from other causes.
Some of Linate's gain is plausibly linked to the closure, since flights moved there by design. That link is an inference. No source quantifies it. Linate also grew in 2025, by 4.5%, before any works began. Bergamo's 2026 growth follows its 2025 fall and SACBO's account of renewed Ryanair agreements. SACBO said its passengers were up about 6% in January–April 2026. Ryanair's planned winter capacity at Malpensa will show in Assaeroporti's data from November onward. September is the only month of 2026 with airport figures on Assaeroporti's page. It shows Malpensa growing again, still more slowly than the other two airports. One month is too short to call a recovery.
The common pattern is that totals are published and causes are not. Assaeroporti publishes monthly passengers for each airport within weeks. SEA and SACBO publish annual accounts with traffic, airline mix and ownership. No public source measures the passengers moved by the runway closure, the overlap between the three airports' catchments, the share of residents and visitors at each airport, Ryanair's passengers at Malpensa or the effect of the municipal surcharge. Malpensa's masterplan, approved in December 2024 according to Milano Finanza, foresees about 40 million passengers in 2035. That would be about 28% above SEA's 2025 figure for Malpensa, on our arithmetic. Planning on that scale depends on figures nobody publishes.
Figures that do not survive a check
Several figures about Milan's airports circulate with the wrong period, the wrong unit or no source. The most consequential concerns Malpensa's 2026 growth. A Travelextra headline of 25 August 2026 said Malpensa grew 8.6% in the first half of 2026. That number is Malpensa's growth for the whole of 2025 on Assaeroporti's basis. The nine-month 2026 figure is +0.9%.
| Claim | Who said it | Verdict | What the source shows |
|---|---|---|---|
| Malpensa passengers up 8.6% in the first six months of 2026 | Travelextra headline, 25 August 2026 | FALSE | 8.6% is Malpensa's full-year 2025 growth (Assaeroporti). Assaeroporti January–September 2026: +0.9%. |
| Linate's limit was raised to 24 movements an hour in spring 2026 by a ministry derogation | Il Fatto Quotidiano, 19 February 2026 | CONTESTED | ENAC and SEA joint statement (19 February 2026): up to eight additional movements an hour, granted by ENAC. SEA annual report: 29 March to 9 May 2026. The act was not found. |
| Bergamo depends on Ryanair for 80% of its flights | Il Post, 22 August 2025 | UNIT NOT PUBLISHED | SACBO publishes passengers by airline, not flights. Ryanair carried 80.7% of Bergamo's 2025 passengers (our arithmetic from SACBO). |
| Bergamo passengers fell 4% in the first half of 2025 | Il Post, 22 August 2025, citing ENAC data | CONTESTED | SACBO's 2025 accounts give a 6.2% fall at mid-year. Full year: −2.4% on SACBO, ENAC and Assaeroporti figures. |
| SACBO paid more than €500 million in incentives in 2009–2024, about €400 million to Ryanair | Corriere della Sera analysis, reported by Il Post, 22 August 2025 | PRESS-REPORTED | Partly from unnamed SACBO sources. SACBO's 2025 accounts: €55,255,489 to all airlines in 2025, no split by airline. |
| The SACBO–Ryanair agreement expires in 2028 | Il Post, 22 August 2025 | POSSIBLY SUPERSEDED | SACBO's 2025 accounts refer to renewed agreements with Ryanair over the next decade, without terms or dates. |
| Abolishing the municipal surcharge would bring 20 million more passengers a year | Ryanair, 1 October 2026 | UNSOURCED | Company statement. No model, government estimate or ENAC analysis published. |
| Ryanair has 33 based aircraft in Milan | Ryanair releases, 2 October 2025, 20 January 2026 and 1 October 2026 | COMPANY CLAIM, INCONSISTENT | The releases give 31, then three more for a stated 33, then two more for a stated 33. No independent fleet count is published. |
What this means for travelers, businesses and analysts
Travelers can choose between three airports with different roles. Malpensa handles Milan's long-haul flights and most of its international traffic. Linate is the closest to the city and serves domestic and short-haul international routes within 1,500 km. Bergamo is a low-cost base where Ryanair carries about four in five passengers. Check which airport a Milan fare uses before booking, since the three airport codes are MXP for Malpensa, LIN for Linate and BGY for Bergamo. Our Milan travel guide and things to do in Milan help plan the city stay. Travelers heading to the lakes can start from the Lake Como travel guide or the Lake Garda travel guide. Runway works can move flights between airports at short notice, as Malpensa's closure in spring 2026 showed.
Tourism businesses and investors should note that SEA runs two of the three airports and is the largest single shareholder in the third, and that one airline carries four in five Bergamo passengers. Bergamo's traffic rises and falls with Ryanair's decisions, and Ryanair's 2025 decline produced 80% of the airport's loss on SACBO's figures. Linate cannot exceed 18 movements an hour except under a temporary increase, so its growth depends on how those slots are filled across the day and on fuller, larger aircraft. Malpensa's 2026 slowdown has no published explanation. Airport totals count arrivals and departures, so they are not visitor counts. Our reports on Milano Cortina 2026 and the 2026 tourism record watch track the visitor series.
Journalists and analysts can cite these figures with their series. The box above lists each figure with its series. Linate's limit is 18 movements an hour, confirmed by the European Commission in 2022. Do not repeat a Malpensa growth figure of 8.6% for 2026, a passenger cap at Linate or a single figure for Linate's 2026 temporary limit. Do not describe Il Post's 80% of flights as a share of passengers, or treat Ryanair's 20 million extra passengers as an estimate. The finding that recurs across this series holds in Milan. Rules and totals are published, and their effects are not measured.
Data & sources
Period covered: 2025 full year, with January–September 2026
- Assaeroporti, Statistiche (September 2026 report) · Airport association statistics page with September 2026 and January–September 2026 passengers, movements and cargo for Malpensa, Linate, Bergamo and Italy Accessed 1 Nov 2026.
- SEA, Annual Financial Report as of 31 December 2025 · Malpensa and Linate traffic, movements and airline mix; SEA shareholders; Linate's 18-movement limit and the temporary 2026 increase; SACBO as associate Accessed 1 Nov 2026.
- SEA, press release on the 2025 accounts (25 March 2026) · 2025 passengers, cargo, revenue and net income for the Milan airport system Accessed 1 Nov 2026.
- SACBO, Bilancio d'esercizio 2025 · Bergamo Orio al Serio passengers and movements 2025 and 2024, passengers by airline, shareholders at 31 December 2025, airline incentives and the operator's account of the 2025 decline Accessed 1 Nov 2026.
- European Commission, Implementing Decision (EU) 2022/1415 · EU approval of Italy's Linate traffic rule: narrow-body point-to-point routes within 1,500 km, within 18 hourly movements; refusal of the connecting-ticket ban Accessed 1 Nov 2026.
- ENAC, Dati di traffico 2025 (v.0.7) · Regulator's 2025 passenger and cargo figures for Malpensa and Bergamo, excluding direct transit Accessed 1 Nov 2026.
- ENAC and SEA statement on runway 35L/17R, via Italiavola & Travel (19 February 2026) · Republication of the joint statement on the Malpensa runway closure of 16 March to 9 May 2026 and the temporary increase of Linate's hourly limit Accessed 1 Nov 2026.
- Assaeroporti 2025 traffic table, via Italiavola & Travel (4 February 2026) · Republication of Assaeroporti's 2025 passenger figures for Malpensa, Linate, Bergamo and Italy's 41 airports Accessed 1 Nov 2026.
Methodology
This report compares Milan's three airports on Assaeroporti's series: its 2025 table as republished by Italiavola & Travel on 4 February 2026, its Consuntivo 2024 release and its statistics page for January–September 2026, read on 1 November 2026. Operator figures come from SEA's Annual Financial Report 2025 and its press release of 25 March 2026, and from SACBO's Bilancio d'esercizio 2025, which also supplies passengers by airline and the shareholder list. ENAC's Dati di traffico 2025 supplies regulator figures for Malpensa and Bergamo. The Linate rule comes from SEA's annual report and the European Commission's Implementing Decision (EU) 2022/1415. The 2026 runway closure and Linate's temporary limit come from the ENAC and SEA statement as republished by Italiavola & Travel, SEA's annual report and Il Fatto Quotidiano. Bergamo's 2025 context comes from Il Post. Airline figures come from Ryanair's and Wizz Air's releases.
Limitations: (1) Airport passenger counts record each arrival and departure, so a round trip counts twice and a connecting passenger counts at each airport; they are not visitor numbers. (2) ENAC excludes direct transit and Assaeroporti includes it, and the operators do not state their basis, so the series are not mixed in any single comparison. (3) Changes for January–September 2026 are published as percentages rounded to one decimal place, so passenger gains derived from them are approximate. (4) Assaeroporti's movement counts are not comparable with SEA's commercial movement counts, because the Assaeroporti figure for Linate appears to include general aviation. (5) Documents were read through a text-extraction tool, and the last part of SEA's annual report was not read. (6) The decrees behind Linate's limit and its 2026 increase were not read in their own text.
Contested figures are reported with both values, the basis of each and the value this report uses; where no basis allows a choice, as for Linate's temporary 2026 limit, no single figure is given. Claims that could not be verified are listed in Table 3 or the disclaimer and are not repeated as fact. Company and press statements are attributed by name. Derived figures are identified as such in the text, tables and disclaimer.
Notes on the data
(1) No source publishes airport passengers at Malpensa, Linate or Bergamo split into residents and visitors or by nationality, and none publishes catchment areas or passenger overlap between the three airports. No source publishes how many flights or passengers moved from Malpensa to Linate during the runway closure of 16 March to 9 May 2026, or measures the closure's effect on Malpensa's traffic. Ryanair does not publish passengers at Malpensa, and SACBO publishes passengers by airline but not flights by airline or incentives by airline. ENAC's 2025 report as read gives no Linate passenger total. Assaeroporti's statistics page carries monthly airport figures only for September 2026, and earlier months were not read. No official estimate of the municipal surcharge's effect on traffic exists in the documents read, and no official per-airport surcharge rate was found. ENAC decree 01-420/DG of 12 February 2001 and the 2026 act raising Linate's limit were not read; the 18-movement figure rests on SEA's annual report and EU Decision 2022/1415. (2) Contested figures: Linate's temporary 2026 limit is up to eight additional movements an hour, granted by ENAC, from 29 March to 9 May (ENAC and SEA statement; SEA annual report), or a maximum of 24 an hour under a ministry derogation (Il Fatto Quotidiano); this report gives no single figure. Bergamo's first-half 2025 change is −4% (Il Post, citing ENAC) or −6.2% at mid-year (SACBO); the full-year −2.4% is the same on all series. Malpensa's 2025 passengers are 31.2 million (SEA, +9%; ENAC, +8.7%) or 31,385,585 (Assaeroporti, +8.56%, including direct transit); Linate's are 11.1 million (SEA, +5%) or 11,131,764 (Assaeroporti, +4.51%). Malpensa's 2025 cargo is 758,400 tonnes (SEA annual report) or 764,000 tonnes (ENAC). ITA Airways' Linate share fell "14%" according to SEA, without saying whether in points or relative terms, so only the 44% level is used. (3) Claims that failed verification: a Travelextra headline of 25 August 2026 giving Malpensa +8.6% for the first half of 2026 (the figure is 2025 growth); Ryanair's Milan fleet counts, which do not add up across its releases. Two further claims checked for this report also failed: an annual passenger ceiling at Linate (the limit is per hour and no passenger cap exists in the texts read) and a description of Bergamo as a major express-cargo airport (ENAC ranks it fifth, with 24,000 tonnes against Malpensa's 764,000). (4) Derived figures: the Milan system totals, changes and shares in Table 1; Malpensa's 97% of the 2025 gain; Ryanair's 80.7% and 80.6% shares of Bergamo passengers, its 80% share of the 2025 decline and other airlines' −2.5%; Wizz Air's 9.5%; the 2.67 million passengers of Bergamo's other listed airlines and the 852,000 of six Turkish, Gulf, Egyptian and Moroccan airlines; the SEA-to-SACBO revenue ratio; the approximate January–September 2026 passenger gains, the Milan system's +4.2% and its September and movement changes in Table 2, Linate and Bergamo's 89% share of the gain and Milan's share of the national gain; the January–August changes; passengers per movement at Linate; Linate's average of 255 movements a day; the masterplan comparison (28%). Gains derived from percentages rounded to one decimal place are approximate. (5) Self-reported and press-reported figures: SEA's and SACBO's traffic, financial and airline figures are operator figures, and SACBO's account of the 2025 decline is the company's own; Ryanair's and Wizz Air's fleet, seat and surcharge figures and Ryanair's 20 million offer are company statements; the incentive totals for 2009–2024 and the 2028 contract date are press-reported by Il Post from a Corriere della Sera analysis, partly from unnamed sources; the masterplan's 40 million is press-reported by Milano Finanza; the 2025 Assaeroporti table is as republished by Italiavola & Travel; the Assaeroporti position paper on the surcharge is an advocacy document.
Frequently asked questions
How many airports does Milan have?
Milan is served by three commercial airports: Malpensa, Linate and Bergamo Orio al Serio. Together they handled 59,455,325 passengers in 2025, according to Assaeroporti figures summed for this report. SEA runs Malpensa and Linate, and SACBO runs Bergamo.
Which is the main international airport in Milan?
Malpensa. SEA reports that international passengers made up 85% of its 31.2 million passengers in 2025 and that long-haul flights carried about one-fifth. Linate is limited to narrow-body flights within 1,500 km under EU Decision 2022/1415.
What are the airport codes for Milan's airports?
Malpensa is MXP, Linate is LIN and Bergamo Orio al Serio is BGY. Check which code a ticket uses, because the three airports serve different airlines and routes.
Which Milan airport is closest to the city center?
Linate. It serves domestic and short-haul international routes within 1,500 km and handled 11.1 million passengers in 2025, according to SEA. It operates under a limit of 18 aircraft movements an hour, set by an ENAC decree of 2001, as SEA reports.
Is Bergamo airport part of Milan?
Bergamo Orio al Serio is in the province of Bergamo and is run by SACBO, a separate company. SEA, Milan's airport operator, owns 30.98% of SACBO, according to SACBO's 2025 accounts. Bergamo handled 16,937,976 passengers in 2025.
Which airlines fly from Bergamo airport?
Mostly Ryanair, which carried 13,662,195 of Bergamo's 16,937,976 passengers in 2025, or 80.7% on our arithmetic from SACBO's accounts. Wizz Air carried 1,601,824. SACBO says easyJet ceased operations at Bergamo in 2025.
Is there a passenger cap at Linate?
No. Linate is limited to 18 aircraft movements an hour, and the European Commission's Decision 2022/1415 records that earlier passenger-based frequency limits were removed. Linate carried 11.1 million passengers in 2025 (SEA).
Is Milan Malpensa still growing in 2026?
Barely. Assaeroporti counted 24,087,446 passengers at Malpensa in January–September 2026, up 0.9%, while Linate grew 8.7% and Bergamo 7.4%. September alone was up 4.5%. No source explains the slow nine months.
Why was Malpensa partly closed in 2026?
Runway 35L/17R was closed from 16 March to 9 May 2026 for rebuilding, according to ENAC and SEA. Intra-Schengen narrow-body flights moved to Linate, whose hourly limit was raised temporarily. No passenger count for the moved flights has been published.