# 2024 Vuelta a España

The 2024 Vuelta a España was a three-week cycling race that took place in Portugal and Spain between 17 August and 8 September. It was the 79th edition of the Vuelta a España and the third and final grand tour of the 2024 men's road cycling season. The race departed from Lisbon and finished in Madrid.
The race was won by Primož Roglič of team Red Bull–Bora–Hansgrohe for a record-tying 4th time. Roglič took the lead in the general classification on stage 3 before relinquishing it to Ben O'Connor (Decathlon–AG2R La Mondiale), who wore the maillot rojo from stages 6 to 19. Roglič won stages 4, 8, and 19, and on stage 19 also regained the lead in the GC. O'Connor held onto second place, his best finish in a grand tour, while Enric Mas of the Movistar Team finished in third.
Wout van Aert (Visma–Lease a Bike) and Kaden Groves (Alpecin–Deceuninck) won three stages, with Groves winning the points classification after van Aert abandoned the race during stage 16 after crashing during a slippery descent. Groves finished with 226 points, a comfortable advantage over Roglič, his nearest opponent, who had 140. Van Aert had 291 points before abandoning.
Jay Vine and Marc Soler of UAE Team Emirates won the mountains classification and the combativity award, respectively. Their team also won the team classification. Mattias Skjelmose of Lidl–Trek won the young rider classification.

## Teams

22 teams took part in the race. All 18 UCI WorldTeams were automatically invited. They were joined by 4 UCI ProTeams: the two highest placed UCI ProTeams in 2023 (Lotto–Dstny and Israel–Premier Tech), along with Equipo Kern Pharma and Euskaltel–Euskadi who were selected by Amaury Sport Organisation (ASO), the organisers of the Vuelta.
Soudal–Quick-Step chose to compete under a different name from the rest of the season: they became T-Rex Quick-Step, using the name of a product made by Soudal, their normal sponsor.
UCI WorldTeams
* Alpecin–Deceuninck
* Arkéa–B&B Hotels
* Astana Qazaqstan Team
* Cofidis
* Decathlon–AG2R La Mondiale
* EF Education–EasyPost
* Groupama–FDJ
* Ineos Grenadiers
* Intermarché–Wanty
* Lidl–Trek
* Movistar Team
* Red Bull–Bora–Hansgrohe
* T-Rex Quick-Step
* Team Bahrain Victorious
* Team dsm–firmenich PostNL
* Team Jayco–AlUla
* Visma–Lease a Bike
* UAE Team Emirates
UCI ProTeams
* Equipo Kern Pharma
* Euskaltel–Euskadi
* Israel–Premier Tech
* Lotto–Dstny

## Route and stages

Stage characteristics and winners :
| Stage | Date | Course | Distance | Type | Type | Winner |
| 1 | 17 August | Lisbon (Portugal) to Oeiras (Portugal) | 12 km (7.5 mi) | | Individual time trial | Brandon McNulty (USA) |
| 2 | 18 August | Cascais (Portugal) to Ourém (Portugal) | 194 km (121 mi) | | Hilly stage | Kaden Groves (AUS) |
| 3 | 19 August | Lousã (Portugal) to Castelo Branco (Portugal) | 191.2 km (118.8 mi) | | Hilly stage | Wout van Aert (BEL) |
| 4 | 20 August | Plasencia to Pico Villuercas | 170.5 km (105.9 mi) | | Mountain stage | Primož Roglič (SLO) |
| 5 | 21 August | Fuente del Maestre to Sevilla | 177 km (110 mi) | | Flat stage | Pavel Bittner (CZE) |
| 6 | 22 August | Jerez de la Frontera to Yunquera | 185.5 km (115.3 mi) | | Mountain stage | Ben O'Connor (AUS) |
| 7 | 23 August | Archidona to Córdoba | 180.5 km (112.2 mi) | | Hilly stage | Wout van Aert (BEL) |
| 8 | 24 August | Úbeda to Cazorla | 159 km (99 mi) | | Medium-mountain stage | Primož Roglič (SLO) |
| 9 | 25 August | Motril to Granada | 178.5 km (110.9 mi) | | Mountain stage | Adam Yates (GBR) |
| | 26 August | Vigo | Rest day | Rest day | Rest day | Rest day |
| 10 | 27 August | Ponteareas to Baiona | 160 km (99 mi) | | Mountain stage | Wout van Aert (BEL) |
| 11 | 28 August | Padrón to Padrón | 166.5 km (103.5 mi) | | Medium-mountain stage | Eddie Dunbar (IRL) |
| 12 | 29 August | Orense to Estación de Montaña de Manzaneda | 137.5 km (85.4 mi) | | Hilly stage | Pablo Castrillo (ESP) |
| 13 | 30 August | Lugo to Puerto de Ancares | 176 km (109 mi) | | Mountain stage | Michael Woods (CAN) |
| 14 | 31 August | Villafranca del Bierzo to Villablino | 200.5 km (124.6 mi) | | Medium-mountain stage | Kaden Groves (AUS) |
| 15 | 1 September | Infiesto [es] to Valgrande-Pajares | 143 km (89 mi) | | Mountain stage | Pablo Castrillo (ESP) |
| | 2 September | Oviedo | Rest day | Rest day | Rest day | Rest day |
| 16 | 3 September | Luanco to Lagos de Covadonga | 181.5 km (112.8 mi) | | Mountain stage | Marc Soler (ESP) |
| 17 | 4 September | Arnuero to Santander | 141.5 km (87.9 mi) | | Medium-mountain stage | Kaden Groves (AUS) |
| 18 | 5 September | Vitoria-Gasteiz to Maeztu | 179.5 km (111.5 mi) | | Medium-mountain stage | Urko Berrade (ESP) |
| 19 | 6 September | Logroño to Alto de Moncalvillo | 173.5 km (107.8 mi) | | Hilly stage | Primož Roglič (SLO) |
| 20 | 7 September | Villarcayo to Picón Blanco | 172 km (107 mi) | | Mountain stage | Eddie Dunbar (IRL) |
| 21 | 8 September | Distrito Telefónica to Madrid | 24.6 km (15.3 mi) | | Individual time trial | Stefan Küng (SUI) |
| Total | Total | Total | 3,304.3 km (2,053.2 mi) | 3,304.3 km (2,053.2 mi) | 3,304.3 km (2,053.2 mi) | 3,304.3 km (2,053.2 mi) |

## Pre-race favourites

The main pre-race favourites to win the general classification were three-time Vuelta a España winner Primož Roglič, and 2023 Vuelta a España winner Sepp Kuss. Carlos Rodríguez, Mikel Landa, João Almeida, Thymen Arensman and Adam Yates were also mentioned as competitors for a podium finish.

## Classification leadership

Classification leadership by stage :
| Stage | Winner | General classification | Points classification | Mountains classification | Young rider classification | Team classification | Combativity award |
| 1 | Brandon McNulty | Brandon McNulty | Brandon McNulty | not awarded | Mathias Vacek | UAE Team Emirates | not awarded |
| 2 | Kaden Groves | Wout van Aert | Kaden Groves | Stefan Küng | Mathias Vacek | UAE Team Emirates | Luis Ángel Maté |
| 3 | Wout van Aert | Wout van Aert | Wout van Aert | Luis Ángel Maté | Mathias Vacek | UAE Team Emirates | Xabier Isasa |
| 4 | Primož Roglič | Primož Roglič | Wout van Aert | Sylvain Moniquet | Antonio Tiberi | UAE Team Emirates | Pablo Castrillo |
| 5 | Pavel Bittner | Primož Roglič | Wout van Aert | Sylvain Moniquet | Antonio Tiberi | UAE Team Emirates | Ibon Ruiz |
| 6 | Ben O'Connor | Ben O'Connor | Wout van Aert | Sylvain Moniquet | Florian Lipowitz | Decathlon–AG2R La Mondiale | Ben O'Connor |
| 7 | Wout van Aert | Ben O'Connor | Wout van Aert | Sylvain Moniquet | Antonio Tiberi | Decathlon–AG2R La Mondiale | Xabier Isasa |
| 8 | Primož Roglič | Ben O'Connor | Wout van Aert | Primož Roglič | Antonio Tiberi | Decathlon–AG2R La Mondiale | Oier Lazkano |
| 9 | Adam Yates | Ben O'Connor | Wout van Aert | Adam Yates | Florian Lipowitz | UAE Team Emirates | Adam Yates |
| 10 | Wout van Aert | Ben O'Connor | Wout van Aert | Adam Yates | Florian Lipowitz | UAE Team Emirates | Wout van Aert |
| 11 | Eddie Dunbar | Ben O'Connor | Wout van Aert | Adam Yates | Carlos Rodriguez | UAE Team Emirates | Xandro Meurisse |
| 12 | Pablo Castrillo | Ben O'Connor | Wout van Aert | Adam Yates | Carlos Rodriguez | UAE Team Emirates | Pablo Castrillo |
| 13 | Michael Woods | Ben O'Connor | Wout van Aert | Wout van Aert | Carlos Rodriguez | UAE Team Emirates | Wout van Aert |
| 14 | Kaden Groves | Ben O'Connor | Wout van Aert | Wout van Aert | Carlos Rodriguez | UAE Team Emirates | Jhonatan Narváez |
| 15 | Pablo Castrillo | Ben O'Connor | Wout van Aert | Wout van Aert | Florian Lipowitz | UAE Team Emirates | Jay Vine |
| 16 | Marc Soler | Ben O'Connor | Kaden Groves | Jay Vine | Carlos Rodriguez | UAE Team Emirates | Marc Soler |
| 17 | Kaden Groves | Ben O'Connor | Kaden Groves | Jay Vine | Carlos Rodriguez | UAE Team Emirates | Xabier Isasa |
| 18 | Urko Berrade | Ben O'Connor | Kaden Groves | Marc Soler | Carlos Rodriguez | UAE Team Emirates | Marc Soler |
| 19 | Primož Roglič | Primož Roglič | Kaden Groves | Marc Soler | Mattias Skjelmose | UAE Team Emirates | Isaac del Toro |
| 20 | Eddie Dunbar | Primož Roglič | Kaden Groves | Jay Vine | Mattias Skjelmose | UAE Team Emirates | Marc Soler |
| 21 | Stefan Küng | Primož Roglič | Kaden Groves | Jay Vine | Mattias Skjelmose | UAE Team Emirates | not awarded |
| Final | Final | Primož Roglič | Kaden Groves | Jay Vine | Mattias Skjelmose | UAE Team Emirates | Marc Soler |
* ↑ On stage 2, Wout van Aert, who was third in the points classification, wore the green jersey, because first-placed Brandon McNulty wore the red jersey as the leader of the general classification and second-placed Mathias Vacek wore the white jersey as the leader of the young rider classification.
* ↑ On stage 2, Stefan Küng, who was fourth in the general classification, wore the blue polkadot jersey.
* ↑ On stage 4, Kaden Groves, who was second in the points classification classification, wore the green jersey, because first-placed Wout van Aert wore wear the red jersey as the general classification leader.
* ↑ On stages 14–15, Marc Soler, who was second in the mountains classification classification, wore the polkadot jersey, because first-placed Wout van Aert wore the green jersey as the points classification leader. For the same reason, Jay Vine wore the jersey on stage 16.

## Classification standings

Legend :
| Denotes the winner of the general classification | Denotes the winner of the young rider classification |
| Denotes the winner of the points classification | Denotes the winner of the team classification |
| Denotes the winner of the mountains classification | Denotes the winner of the combativity award |

### General classification

Final general classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Primož Roglič (SLO) | Red Bull–Bora–Hansgrohe | 81h 49' 18" |
| 2 | Ben O'Connor (AUS) | Decathlon–AG2R La Mondiale | + 2' 36" |
| 3 | Enric Mas (ESP) | Movistar Team | + 3' 13" |
| 4 | Richard Carapaz (ECU) | EF Education–EasyPost | + 4' 02" |
| 5 | Mattias Skjelmose (DEN) | Lidl–Trek | +5' 49" |
| 6 | David Gaudu (FRA) | Groupama–FDJ | + 6' 32" |
| 7 | Florian Lipowitz (GER) | Red Bull–Bora–Hansgrohe | + 7' 05" |
| 8 | Mikel Landa (ESP) | Soudal–Quick-Step | + 8' 48" |
| 9 | Pavel Sivakov (FRA) | UAE Team Emirates | + 10' 04" |
| 10 | Carlos Rodríguez (ESP) | Ineos Grenadiers | + 11' 19" |
Final general classification (11–135) :
| Rank | Rider | Team | Time |
| 11 | Eddie Dunbar (IRL) | Team Jayco–AlUla | + 14' 40" |
| 12 | Adam Yates (GBR) | UAE Team Emirates | + 15' 40" |
| 13 | Cristián Rodríguez (ESP) | Arkéa–B&B Hotels | + 19' 48" |
| 14 | Sepp Kuss (USA) | Visma–Lease a Bike | + 20' 25" |
| 15 | Guillaume Martin (FRA) | Cofidis | + 31' 34" |
| 16 | Lorenzo Fortunato (ITA) | Astana Qazaqstan Team | + 40' 43" |
| 17 | José Félix Parra (ESP) | Equipo Kern Pharma | + 51' 33" |
| 18 | Aleksandr Vlasov | Red Bull–Bora–Hansgrohe | + 55' 05" |
| 19 | Steven Kruijswijk (NED) | Visma–Lease a Bike | + 1h 01' 53" |
| 20 | Clément Berthet (FRA) | Decathlon–AG2R La Mondiale | + 1h 04' 13" |
| 21 | Quentin Pacher (FRA) | Groupama–FDJ | + 1h 09' 30" |
| 22 | Jack Haig (AUS) | Team Bahrain Victorious | + 1h 11' 45" |
| 23 | Mattia Cattaneo (ITA) | Soudal–Quick-Step | + 1h 13' 28" |
| 24 | Óscar Rodríguez (ESP) | Ineos Grenadiers | + 1h 16' 05" |
| 25 | Attila Valter (HUN) | Visma–Lease a Bike | + 1h 22' 31" |
| 26 | Mikel Bizkarra (ESP) | Euskaltel–Euskadi | + 1h 37' 38" |
| 27 | Einer Rubio (COL) | Movistar Team | + 1h 39' 22" |
| 28 | Louis Meintjes (RSA) | Intermarché–Wanty | + 1h 39' 37" |
| 29 | Felix Gall (AUT) | Decathlon–AG2R La Mondiale | + 1h 42' 00" |
| 30 | Matthew Riccitello (USA) | Israel–Premier Tech | + 1h 46' 37" |
| 31 | Nairo Quintana (COL) | Movistar Team | + 1h 49' 11" |
| 32 | Carlos Verona (ESP) | Lidl–Trek | + 1h 50' 59" |
| 33 | Sam Oomen (NED) | Lidl–Trek | + 1h 51' 52" |
| 34 | George Bennett (NZL) | Israel–Premier Tech | + 1h 52' 43" |
| 35 | Max Poole (GBR) | Team dsm–firmenich PostNL | + 1h 56' 35" |
| 36 | Isaac del Toro (MEX) | UAE Team Emirates | + 1h 57' 27" |
| 37 | Ion Izagirre (ESP) | Cofidis | + 1h 59' 25" |
| 38 | Giovanni Aleotti (ITA) | Red Bull–Bora–Hansgrohe | + 2h 00' 03" |
| 39 | Stefan Küng (SUI) | Groupama–FDJ | + 2h 01' 27" |
| 40 | Harold Tejada (COL) | Astana Qazaqstan Team | + 2h 09' 03" |
| 41 | Marc Soler (ESP) | UAE Team Emirates | + 2h 10' 37" |
| 42 | Urko Berrade (ESP) | Equipo Kern Pharma | + 2h 10' 47" |
| 43 | Roger Adrià (ESP) | Red Bull–Bora–Hansgrohe | + 2h 12' 41" |
| 44 | William Junior Lecerf (BEL) | Soudal–Quick-Step | + 2h 15' 24" |
| 45 | Valentin Paret-Peintre (FRA) | Decathlon–AG2R La Mondiale | + 2h 17' 55" |
| 46 | Jefferson Alexander Cepeda (ECU) | EF Education–EasyPost | + 2h 21' 31" |
| 47 | Simon Guglielmi (FRA) | Arkéa–B&B Hotels | + 2h 22' 12" |
| 48 | Gianmarco Garofoli (ITA) | Astana Qazaqstan Team | + 2h 22' 25" |
| 49 | Mauri Vansevenant (BEL) | Soudal–Quick-Step | + 2h 24' 54" |
| 50 | Jhonatan Narváez (ECU) | Ineos Grenadiers | + 2h 26' 46" |
| 51 | Gotzon Martín (ESP) | Euskaltel–Euskadi | + 2h 27' 06" |
| 52 | Robert Gesink (NED) | Visma–Lease a Bike | + 2h 34' 22" |
| 53 | Marco Frigo (ITA) | Israel–Premier Tech | + 2h 36' 15" |
| 54 | Brandon McNulty (USA) | UAE Team Emirates | + 2h 37' 44" |
| 55 | Xandro Meurisse (BEL) | Alpecin–Deceuninck | + 2h 38' 10" |
| 56 | Filippo Zana (ITA) | Team Jayco–AlUla | + 2h 39' 10" |
| 57 | Jay Vine (AUS) | UAE Team Emirates | + 2h 42' 13" |
| 58 | Pau Miquel (ESP) | Equipo Kern Pharma | + 2h 44' 50" |
| 59 | Louis Vervaeke (BEL) | Soudal–Quick-Step | + 2h 47' 05" |
| 60 | Torstein Træen (NOR) | Team Bahrain Victorious | + 2h 50' 48" |
| 61 | Mathias Vacek (CZE) | Lidl–Trek | + 2h 51' 36" |
| 62 | Tao Geoghegan Hart (GBR) | Lidl–Trek | + 2h 51' 50" |
| 63 | Martijn Tusveld (NED) | Team dsm–firmenich PostNL | + 2h 54' 38" |
| 64 | Pablo Castrillo (ESP) | Equipo Kern Pharma | + 3h 00' 12" |
| 65 | Luis Ángel Maté (ESP) | Euskaltel–Euskadi | + 3h 02' 34" |
| 66 | Filippo Baroncini (ITA) | UAE Team Emirates | + 3h 06' 20" |
| 67 | James Knox (GBR) | Soudal–Quick-Step | + 3h 07' 33" |
| 68 | Chris Hamilton (AUS) | Team dsm–firmenich PostNL | + 3h 08' 16" |
| 69 | Bruno Armirail (FRA) | Decathlon–AG2R La Mondiale | + 3h 09' 03" |
| 70 | Carlos Canal (ESP) | Movistar Team | + 3h 09' 06" |
| 71 | Mauro Schmid (SUI) | Team Jayco–AlUla | + 3h 10' 41" |
| 72 | Joan Bou (ESP) | Euskaltel–Euskadi | + 3h 11' 05" |
| 73 | Nelson Oliveira (POR) | Movistar Team | + 3h 11' 45" |
| 74 | Dylan Teuns (BEL) | Israel–Premier Tech | + 3h 12' 45" |
| 75 | Darren Rafferty (IRL) | EF Education–EasyPost | + 3h 12' 47" |
| 76 | Mathis Le Berre (FRA) | Arkéa–B&B Hotels | + 3h 23' 22" |
| 77 | Jonas Gregaard (DEN) | Lotto–Dstny | + 3h 25' 36" |
| 78 | Harry Sweeny (AUS) | EF Education–EasyPost | + 3h 27' 12" |
| 79 | Laurens Huys (BEL) | Arkéa–B&B Hotels | + 3h 27' 30" |
| 80 | Quinten Hermans (BEL) | Alpecin–Deceuninck | + 3h 27' 33" |
| 81 | Vito Braet (BEL) | Intermarché–Wanty | + 3h 32' 34" |
| 82 | Thomas Champion (FRA) | Cofidis | + 3h 36' 16" |
| 83 | Unai Iribar (ESP) | Equipo Kern Pharma | + 3h 37' 42" |
| 84 | Gijs Leemreize (NED) | Team dsm–firmenich PostNL | + 3h 37' 54" |
| 85 | Jesús Herrada (ESP) | Cofidis | + 3h 39' 38" |
| 86 | Eduardo Sepúlveda (ARG) | Lotto–Dstny | + 3h 39' 48" |
| 87 | Fran Miholjević (CRO) | Team Bahrain Victorious | + 3h 42' 50" |
| 88 | Thomas De Gendt (BEL) | Lotto–Dstny | + 3h 45' 35" |
| 89 | Łukasz Owsian (POL) | Arkéa–B&B Hotels | + 3h 45' 45" |
| 90 | Simone Petilli (ITA) | Intermarché–Wanty | + 3h 46' 39" |
| 91 | Arjen Livyns (BEL) | Lotto–Dstny | + 3h 51' 39" |
| 92 | Oier Lazkano (ESP) | Movistar Team | + 3h 52' 00" |
| 93 | Otto Vergaerde (BEL) | Lidl–Trek | + 3h 53' 02" |
| 94 | Reuben Thompson (NZL) | Groupama–FDJ | + 3h 55' 28" |
| 95 | Brandon Rivera (COL) | Ineos Grenadiers | + 3h 55' 58" |
| 96 | Juri Hollmann (GER) | Alpecin–Deceuninck | + 3h 57' 33" |
| 97 | Lorenzo Germani (ITA) | Groupama–FDJ | + 3h 59' 24" |
| 98 | James Shaw (GBR) | EF Education–EasyPost | + 4h 00' 47" |
| 99 | Jorge Gutiérrez (ESP) | Equipo Kern Pharma | + 4h 02' 04" |
| 100 | Kaden Groves (AUS) | Alpecin–Deceuninck | + 4h 05' 32" |
| 101 | Ibon Ruiz (ESP) | Equipo Kern Pharma | + 4h 06' 57" |
| 102 | Xabier Berasategi (ESP) | Euskaltel–Euskadi | + 4h 08' 31" |
| 103 | Felix Engelhardt (GER) | Team Jayco–AlUla | + 4h 09' 17" |
| 104 | Xabier Isasa (ESP) | Euskaltel–Euskadi | + 4h 09' 31" |
| 105 | Luca Vergallito (ITA) | Alpecin–Deceuninck | + 4h 11' 26" |
| 106 | Santiago Umba (COL) | Astana Qazaqstan Team | + 4h 11' 48" |
| 107 | Kim Heiduk (GER) | Ineos Grenadiers | + 4h 12' 43" |
| 108 | Geoffrey Bouchard (FRA) | Decathlon–AG2R La Mondiale | + 4h 15' 26" |
| 109 | Victor Lafay (FRA) | Decathlon–AG2R La Mondiale | + 4h 15' 45" |
| 110 | Sylvain Moniquet (BEL) | Lotto–Dstny | + 4h 18' 08" |
| 111 | Victor Campenaerts (BEL) | Lotto–Dstny | + 4h 19' 08" |
| 112 | Jorge Arcas (ESP) | Movistar Team | + 4h 21' 42" |
| 113 | Nadav Raisberg (ISR) | Israel–Premier Tech | + 4h 25' 35" |
| 114 | Antonio Jesús Soto (ESP) | Equipo Kern Pharma | + 4h 28' 52" |
| 115 | Pavel Bittner (CZE) | Team dsm–firmenich PostNL | + 4h 31' 33" |
| 116 | Edward Planckaert (BEL) | Alpecin–Deceuninck | + 4h 33' 11" |
| 117 | Sven Erik Bystrøm (NOR) | Groupama–FDJ | + 4h 34' 06" |
| 118 | Owain Doull (GBR) | EF Education–EasyPost | + 4h 36' 34" |
| 119 | Edoardo Affini (ITA) | Visma–Lease a Bike | + 4h 36' 53" |
| 120 | Kasper Asgreen (DEN) | Soudal–Quick-Step | + 4h 39' 48" |
| 121 | Jasha Sütterlin (GER) | Team Bahrain Victorious | + 4h 42' 07" |
| 122 | Arne Marit (BEL) | Intermarché–Wanty | + 4h 42' 18" |
| 123 | Riley Sheehan (USA) | Israel–Premier Tech | + 4h 45' 08" |
| 124 | Gleb Brussenskiy (KAZ) | Astana Qazaqstan Team | + 4h 45' 35" |
| 125 | Alessandro De Marchi (ITA) | Team Jayco–AlUla | + 4h 53' 56" |
| 126 | Maurice Ballerstedt (GER) | Alpecin–Deceuninck | + 4h 55' 15" |
| 127 | Casper Pedersen (DEN) | Soudal–Quick-Step | + 5h 01' 24" |
| 128 | Nicolas Vinokurov (KAZ) | Astana Qazaqstan Team | + 5h 02' 17" |
| 129 | Enzo Leijnse (NED) | Team dsm–firmenich PostNL | + 5h 02' 45" |
| 130 | Oscar Riesebeek (NED) | Alpecin–Deceuninck | + 5h 04' 06" |
| 131 | Julius van den Berg (NED) | Team dsm–firmenich PostNL | + 5h 04' 41" |
| 132 | Thibault Guernalec (FRA) | Arkéa–B&B Hotels | + 5h 04' 48" |
| 133 | Kamil Gradek (POL) | Team Bahrain Victorious | + 5h 14' 00" |
| 134 | Ide Schelling (NED) | Astana Qazaqstan Team | + 5h 19' 49" |
| 135 | Tim Naberman (NED) | Team dsm–firmenich PostNL | + 5h 21' 03" |

### Points classification

Final points classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Kaden Groves (AUS) | Alpecin–Deceuninck | 226 |
| 2 | Primož Roglič (SLO) | Red Bull–Bora–Hansgrohe | 140 |
| 3 | Max Poole (GBR) | Team dsm–firmenich PostNL | 118 |
| 4 | Pablo Castrillo (ESP) | Equipo Kern Pharma | 117 |
| 5 | Mathias Vacek (CZE) | Lidl–Trek | 110 |
| 6 | Pavel Bittner (CZE) | Team dsm–firmenich PostNL | 106 |
| 7 | Enric Mas (ESP) | Movistar Team | 102 |
| 8 | Mauro Schmid (SUI) | Team Jayco–AlUla | 100 |
| 9 | Stefan Küng (SUI) | Groupama–FDJ | 99 |
| 10 | Marc Soler (ESP) | UAE Team Emirates | 98 |

### Mountains classification

Final mountains classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Jay Vine (AUS) | UAE Team Emirates | 78 |
| 2 | Marc Soler (ESP) | UAE Team Emirates | 76 |
| 3 | Pablo Castrillo (ESP) | Equipo Kern Pharma | 43 |
| 4 | Primož Roglič (SLO) | Red Bull–Bora–Hansgrohe | 32 |
| 5 | Marco Frigo (ITA) | Israel–Premier Tech | 32 |
| 6 | Enric Mas (ESP) | Movistar Team | 28 |
| 7 | Filippo Zana (ITA) | Team Jayco–AlUla | 27 |
| 8 | Pavel Sivakov (FRA) | UAE Team Emirates | 26 |
| 9 | Aleksandr Vlasov | Red Bull–Bora–Hansgrohe | 25 |
| 10 | David Gaudu (FRA) | Groupama–FDJ | 24 |

### Young rider classification

Final young rider classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Mattias Skjelmose (DEN) | Lidl–Trek | 81h 55' 07" |
| 2 | Florian Lipowitz (GER) | Red Bull–Bora–Hansgrohe | + 1' 16" |
| 3 | Carlos Rodríguez (ESP) | Ineos Grenadiers | + 5' 30" |
| 4 | Matthew Riccitello (USA) | Israel–Premier Tech | + 1h 40' 48" |
| 5 | Max Poole (GBR) | Team dsm–firmenich PostNL | + 1h 50' 46" |
| 6 | Isaac del Toro (MEX) | UAE Team Emirates | + 1h 51' 38" |
| 7 | Giovanni Aleotti (ITA) | Red Bull–Bora–Hansgrohe | + 1h 54' 14" |
| 8 | William Junior Lecerf (BEL) | Soudal–Quick-Step | + 2h 09' 35" |
| 9 | Valentin Paret-Peintre (FRA) | Decathlon–AG2R La Mondiale | + 2h 12' 06" |
| 10 | Gianmarco Garofoli (ITA) | Astana Qazaqstan Team | + 2h 16' 36" |

### Team classification

Final team classification (1–10) :
| Rank | Team | Time |
| 1 | UAE Team Emirates | 245h 12' 58" |
| 2 | Red Bull–Bora–Hansgrohe | + 33' 53" |
| 3 | Decathlon–AG2R La Mondiale | + 1h 23' 09" |
| 4 | Visma–Lease a Bike | + 1h 53' 33" |
| 5 | Groupama–FDJ | + 2h 16' 51" |
| 6 | Soudal–Quick-Step | + 2h 28' 28" |
| 7 | Movistar Team | + 2h 47' 49" |
| 8 | Lidl–Trek | + 2h 47' 58" |
| 9 | Equipo Kern Pharma | + 2h 55' 08" |
| 10 | Ineos Grenadiers | + 3h 18' 42" |