# 2023 Giro d'Italia

The 2023 Giro d'Italia was the 106th edition of the Giro d'Italia, a three-week Grand Tour cycling stage race. The race started on 6 May in Fossacesia and finished on 28 May in Rome. There were 3 individual time trial stages and 6 stages longer than 200 km. The race was won by Primož Roglič of Team Jumbo–Visma, taking his fourth Grand Tour victory and becoming the first Slovenian to win the Giro.

## Teams

UCI WorldTeams
* AG2R Citroën Team
* Alpecin–Deceuninck
* Astana Qazaqstan Team
* Arkéa–Samsic
* Bora–Hansgrohe
* Cofidis
* EF Education–EasyPost
* Groupama–FDJ
* Ineos Grenadiers
* Intermarché–Circus–Wanty
* Movistar Team
* Soudal–Quick-Step
* Team Bahrain Victorious
* Team DSM
* Team Jayco–AlUla
* Team Jumbo–Visma
* Trek–Segafredo
* UAE Team Emirates
UCI ProTeams*
* Eolo–Kometa
* Green Project–Bardiani–CSF–Faizanè
* Israel–Premier Tech
* Team Corratec–Selle Italia
*Both Lotto–Dstny and Team TotalEnergies held guaranteed wildcards but declined to take part

## Pre-race favourites

Remco Evenepoel, Geraint Thomas and Primož Roglič were said to be favoured by the 2023 course. Remco Evenepoel won two stages and took over the pink jersey, but had to retire after stage 9 being tested positive for COVID-19.

## Route and stages

Stage characteristics and winners :
| Stage | Date | Course | Distance | Type | Type | Winner | Ref |
| 1 | 6 May | Fossacesia to Ortona | 19.6 km (12.2 mi) | | Individual time trial | Remco Evenepoel (BEL) | |
| 2 | 7 May | Teramo to San Salvo | 202 km (126 mi) | | Flat stage | Jonathan Milan (ITA) | |
| 3 | 8 May | Vasto to Melfi | 213 km (132 mi) | | Intermediate stage | Michael Matthews (AUS) | |
| 4 | 9 May | Venosa to Lago Laceno | 175 km (109 mi) | | Intermediate stage | Aurélien Paret-Peintre (FRA) | |
| 5 | 10 May | Atripalda to Salerno | 171 km (106 mi) | | Hilly stage | Kaden Groves (AUS) | |
| 6 | 11 May | Naples to Naples | 162 km (101 mi) | | Hilly stage | Mads Pedersen (DEN) | |
| 7 | 12 May | Capua to Gran Sasso | 218 km (135 mi) | | Mountain stage | Davide Bais (ITA) | |
| 8 | 13 May | Terni to Fossombrone | 207 km (129 mi) | | Intermediate stage | Ben Healy (IRL) | |
| 9 | 14 May | Savignano sul Rubicone to Cesena | 35 km (22 mi) | | Individual time trial | Remco Evenepoel (BEL) | |
| | 15 May | | | | Rest day | Rest day | Rest day |
| 10 | 16 May | Scandiano to Viareggio | 196 km (122 mi) | | Hilly stage | Magnus Cort (DEN) | |
| 11 | 17 May | Camaiore to Tortona | 219 km (136 mi) | | Hilly stage | Pascal Ackermann (GER) | |
| 12 | 18 May | Bra to Rivoli | 185 km (115 mi) | | Intermediate stage | Nico Denz (GER) | |
| 13 | 19 May | Borgofranco d’Ivrea Le Châble (Switzerland) to Crans-Montana (Switzerland) | 74.6 km (46.4 mi) | | Mountain stage | Einer Rubio (COL) | |
| 14 | 20 May | Sierre (Switzerland) to Cassano Magnago | 194 km (121 mi) | | Hilly stage | Nico Denz (GER) | |
| 15 | 21 May | Seregno to Bergamo | 195 km (121 mi) | | Mountain stage | Brandon McNulty (USA) | |
| | 22 May | | | | Rest day | Rest day | Rest day |
| 16 | 23 May | Sabbio Chiese to Monte Bondone | 203 km (126 mi) | | Mountain stage | João Almeida (POR) | |
| 17 | 24 May | Pergine Valsugana to Caorle | 197 km (122 mi) | | Flat stage | Alberto Dainese (ITA) | |
| 18 | 25 May | Oderzo to Zoldo Alto | 161 km (100 mi) | | Mountain stage | Filippo Zana (ITA) | |
| 19 | 26 May | Longarone to Tre Cime di Lavaredo | 183 km (114 mi) | | Mountain stage | Santiago Buitrago (COL) | |
| 20 | 27 May | Tarvisio to Monte Lussari | 18.6 km (11.6 mi) | | Individual time trial | Primož Roglič (SLO) | |
| 21 | 28 May | Rome to Rome | 126 km (78 mi) | | Flat stage | Mark Cavendish (GBR) | |
| Total | Total | Total | 3,449 km (2,143 mi) | 3,449 km (2,143 mi) | 3,449 km (2,143 mi) | 3,449 km (2,143 mi) | 3,449 km (2,143 mi) | 3,449 km (2,143 mi) |

## Classification leadership

Classification leadership by stage :
| Stage | Winner | General classification | Points classification | Mountains classification | Young rider classification | General Super Team | Intermediate sprint classification | Combativity award | Breakaway classification | Fair play classification |
| 1 | Remco Evenepoel | Remco Evenepoel | Remco Evenepoel | Tao Geoghegan Hart | Remco Evenepoel | Ineos Grenadiers | not awarded | Rudy Molard | not awarded | Soudal–Quick-Step |
| 2 | Jonathan Milan | Remco Evenepoel | Jonathan Milan | Paul Lapeira | Remco Evenepoel | UAE Team Emirates | Stefano Gandin | Paul Lapeira | Mattia Bais | Soudal–Quick-Step |
| 3 | Michael Matthews | Remco Evenepoel | Jonathan Milan | Thibaut Pinot | Remco Evenepoel | UAE Team Emirates | Stefano Gandin | Veljko Stojnić | Veljko Stojnić | Soudal–Quick-Step |
| 4 | Aurélien Paret-Peintre | Andreas Leknessund | Jonathan Milan | Thibaut Pinot | Andreas Leknessund | Ineos Grenadiers | Stefano Gandin | Amanuel Ghebreigzabhier | Veljko Stojnić | Team DSM |
| 5 | Kaden Groves | Andreas Leknessund | Jonathan Milan | Thibaut Pinot | Andreas Leknessund | Ineos Grenadiers | Stefano Gandin | Stefano Gandin | Thomas Champion | Soudal–Quick-Step |
| 6 | Mads Pedersen | Andreas Leknessund | Jonathan Milan | Thibaut Pinot | Andreas Leknessund | Ineos Grenadiers | Stefano Gandin | Simon Clarke | Thomas Champion | Soudal–Quick-Step |
| 7 | Davide Bais | Andreas Leknessund | Jonathan Milan | Davide Bais | Andreas Leknessund | Ineos Grenadiers | Stefano Gandin | Henok Mulubrhan | Thomas Champion | Soudal–Quick-Step |
| 8 | Ben Healy | Andreas Leknessund | Jonathan Milan | Davide Bais | Andreas Leknessund | Ineos Grenadiers | Stefano Gandin | Ben Healy | Thomas Champion | Soudal–Quick-Step |
| 9 | Remco Evenepoel | Remco Evenepoel | Jonathan Milan | Davide Bais | Remco Evenepoel | Ineos Grenadiers | Stefano Gandin | Geraint Thomas | Thomas Champion | Soudal–Quick-Step |
| 10 | Magnus Cort | Geraint Thomas | Jonathan Milan | Davide Bais | João Almeida | Ineos Grenadiers | Stefano Gandin | Derek Gee | Alessandro De Marchi | AG2R Citroën Team |
| 11 | Pascal Ackermann | Geraint Thomas | Jonathan Milan | Davide Bais | João Almeida | Ineos Grenadiers | Davide Bais | Laurenz Rex | Thomas Champion | AG2R Citroën Team |
| 12 | Nico Denz | Geraint Thomas | Jonathan Milan | Davide Bais | João Almeida | Team Jumbo–Visma | Davide Bais | Toms Skujiņš | Thomas Champion | AG2R Citroën Team |
| 13 | Einer Rubio | Geraint Thomas | Jonathan Milan | Thibaut Pinot | João Almeida | Team Jumbo–Visma | Davide Bais | Thibaut Pinot | Thomas Champion | Groupama–FDJ |
| 14 | Nico Denz | Bruno Armirail | Jonathan Milan | Davide Bais | João Almeida | Team Bahrain Victorious | Davide Bais | Derek Gee | Thomas Champion | Groupama–FDJ |
| 15 | Brandon McNulty | Bruno Armirail | Jonathan Milan | Davide Bais | João Almeida | Team Bahrain Victorious | Davide Bais | Ben Healy | Thomas Champion | Groupama–FDJ |
| 16 | João Almeida | Geraint Thomas | Jonathan Milan | Ben Healy | João Almeida | Team Bahrain Victorious | Toms Skujiņš | João Almeida | Thomas Champion | Groupama–FDJ |
| 17 | Alberto Dainese | Geraint Thomas | Jonathan Milan | Ben Healy | João Almeida | Team Bahrain Victorious | Toms Skujiņš | Thomas Champion | Thomas Champion | Groupama–FDJ |
| 18 | Filippo Zana | Geraint Thomas | Jonathan Milan | Thibaut Pinot | João Almeida | Team Bahrain Victorious | Thomas Champion | Thibaut Pinot | Thomas Champion | Groupama–FDJ |
| 19 | Santiago Buitrago | Geraint Thomas | Jonathan Milan | Thibaut Pinot | João Almeida | Team Bahrain Victorious | Derek Gee | Derek Gee | Thomas Champion | Groupama–FDJ |
| 20 | Primož Roglič | Primož Roglič | Jonathan Milan | Thibaut Pinot | João Almeida | Team Bahrain Victorious | Derek Gee | Thibaut Pinot | Thomas Champion | Groupama–FDJ |
| 21 | Mark Cavendish | Primož Roglič | Jonathan Milan | Thibaut Pinot | João Almeida | Team Bahrain Victorious | Toms Skujiņš | not awarded | Thomas Champion | Groupama–FDJ |
| Final | Final | Primož Roglič | Jonathan Milan | Thibaut Pinot | João Almeida | Team Bahrain Victorious | Toms Skujiņš | Derek Gee | Thomas Champion | Groupama–FDJ |
* On stage 2, Filippo Ganna, who was second in the points classification, wore the cyclamen jersey because first placed Remco Evenepoel wore the pink jersey as leader of the general classification. Additionally, Brandon McNulty, who was third in the young rider classification, wore the white jersey because second placed João Almeida wore the Portuguese champion's jersey.
* On stage 5, Thymen Arensman, who was fourth in the young rider classification, wore the white jersey because first placed Andreas Leknessund wore the pink jersey as leader of the general classification, second placed Remco Evenepoel wore the World Champion's jersey and third placed João Almeida wore the Portuguese champion's jersey.
* On stage 10, Geraint Thomas, who was second in the general classification, wore the pink jersey because first placed Remco Evenepoel didn't start the stage after testing positive for COVID-19.

## Classification standings

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

### General classification

Final general classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | Primož Roglič (SLO) | Team Jumbo–Visma | 85h 29' 02" |
| 2 | Geraint Thomas (GBR) | Ineos Grenadiers | + 14" |
| 3 | João Almeida (POR) | UAE Team Emirates | + 1' 15" |
| 4 | Damiano Caruso (ITA) | Team Bahrain Victorious | + 4' 40" |
| 5 | Thibaut Pinot (FRA) | Groupama–FDJ | + 5' 43" |
| 6 | Thymen Arensman (NED) | Ineos Grenadiers | + 6' 05" |
| 7 | Eddie Dunbar (IRL) | Team Jayco–AlUla | + 7' 30" |
| 8 | Andreas Leknessund (NOR) | Team DSM | + 7' 31" |
| 9 | Lennard Kämna (GER) | Bora–Hansgrohe | + 7' 46" |
| 10 | Laurens De Plus (BEL) | Ineos Grenadiers | + 9' 08" |
Final general classification (11–125) :
| Rank | Rider | Team | Time |
| 11 | Einer Rubio (COL) | Movistar Team | + 10' 43" |
| 12 | Ilan Van Wilder (BEL) | Soudal–Quick-Step | + 11' 58" |
| 13 | Santiago Buitrago (COL) | Team Bahrain Victorious | + 12' 21" |
| 14 | Sepp Kuss (USA) | Team Jumbo–Visma | + 13' 09" |
| 15 | Aurélien Paret-Peintre (FRA) | AG2R Citroën Team | + 14' 13" |
| 16 | Bruno Armirail (FRA) | Groupama–FDJ | + 17' 16" |
| 17 | Warren Barguil (FRA) | Arkéa–Samsic | + 24' 06" |
| 18 | Filippo Zana (ITA) | Team Jayco–AlUla | + 33' 22" |
| 19 | Jack Haig (AUS) | Team Bahrain Victorious | + 34' 46" |
| 20 | Patrick Konrad (AUT) | Bora–Hansgrohe | + 37' 57" |
| 21 | Lorenzo Fortunato (ITA) | Eolo–Kometa | + 38' 37" |
| 22 | Derek Gee (CAN) | Israel–Premier Tech | + 40' 54" |
| 23 | Nicolas Prodhomme (FRA) | AG2R Citroën Team | + 46' 26" |
| 24 | Luis León Sánchez (ESP) | Astana Qazaqstan Team | + 48' 03" |
| 25 | Koen Bouwman (NED) | Team Jumbo–Visma | + 48' 15" |
| 26 | Simone Velasco (ITA) | Astana Qazaqstan Team | + 51' 15" |
| 27 | Laurens Huys (BEL) | Intermarché–Circus–Wanty | + 52' 18" |
| 28 | Diego Ulissi (ITA) | UAE Team Emirates | + 1h 02' 50" |
| 29 | Brandon McNulty (USA) | UAE Team Emirates | + 1h 07' 43" |
| 30 | Davide Formolo (ITA) | UAE Team Emirates | + 1h 08' 58" |
| 31 | Toms Skujiņš (LAT) | Trek–Segafredo | + 1h 10' 21" |
| 32 | Marco Frigo (ITA) | Israel–Premier Tech | + 1h 24' 36" |
| 33 | Michel Hessmann (GER) | Team Jumbo–Visma | + 1h 26' 24" |
| 34 | Jay Vine (AUS) | UAE Team Emirates | + 1h 28' 59" |
| 35 | Jonathan Lastra (ESP) | Cofidis | + 1h 29' 02" |
| 36 | Sam Oomen (NED) | Team Jumbo–Visma | + 1h 30' 51" |
| 37 | Valentin Paret-Peintre (FRA) | AG2R Citroën Team | + 1h 31' 52" |
| 38 | Alessandro De Marchi (ITA) | Team Jayco–AlUla | + 1h 37' 50" |
| 39 | Bob Jungels (LUX) | Bora–Hansgrohe | + 1h 37' 57" |
| 40 | Edoardo Zambanini (ITA) | Team Bahrain Victorious | + 1h 38' 28" |
| 41 | Rohan Dennis (AUS) | Team Jumbo–Visma | + 1h 38' 35" |
| 42 | Alessandro Tonelli (ITA) | Green Project–Bardiani–CSF–Faizanè | + 1h 41' 48" |
| 43 | Vadim Pronskiy (KAZ) | Astana Qazaqstan Team | + 1h 48' 31" |
| 44 | Larry Warbasse (USA) | AG2R Citroën Team | + 1h 49' 54" |
| 45 | Stefano Oldani (ITA) | Alpecin–Deceuninck | + 1h 57' 09" |
| 46 | Lorenzo Rota (ITA) | Intermarché–Circus–Wanty | + 1h 57' 55" |
| 47 | Mattia Bais (ITA) | Eolo–Kometa | + 2h 04' 10" |
| 48 | Alberto Bettiol (ITA) | EF Education–EasyPost | + 2h 05' 06" |
| 49 | Carlos Verona (ESP) | Movistar Team | + 2h 06' 24" |
| 50 | Bauke Mollema (NED) | Trek–Segafredo | + 2h 08' 44" |
| 51 | Anton Palzer (GER) | Bora–Hansgrohe | + 2h 08' 46" |
| 52 | Will Barta (USA) | Movistar Team | + 2h 10' 12" |
| 53 | Jefferson Alexander Cepeda (ECU) | EF Education–EasyPost | + 2h 12' 16" |
| 54 | François Bidard (FRA) | Cofidis | + 2h 15' 00" |
| 55 | Ben Healy (IRL) | EF Education–EasyPost | + 2h 18' 04" |
| 56 | Matthew Riccitello (USA) | Israel–Premier Tech | + 2h 22' 57" |
| 57 | Nico Denz (GER) | Bora–Hansgrohe | + 2h 23' 39" |
| 58 | Christian Scaroni (ITA) | Astana Qazaqstan Team | + 2h 35' 12" |
| 59 | Joe Dombrowski (USA) | Astana Qazaqstan Team | + 2h 36' 33" |
| 60 | Pieter Serry (BEL) | Soudal–Quick-Step | + 2h 36' 54" |
| 61 | Ben Swift (GBR) | Ineos Grenadiers | + 2h 44' 27" |
| 62 | Magnus Cort (DEN) | EF Education–EasyPost | + 2h 44' 33" |
| 63 | Michael Matthews (AUS) | Team Jayco–AlUla | + 2h 45' 46" |
| 64 | Davide Gabburo (ITA) | Green Project–Bardiani–CSF–Faizanè | + 2h 56' 29" |
| 65 | Andrea Pasqualon (ITA) | Team Bahrain Victorious | + 2h 58' 04" |
| 66 | Thomas Champion (FRA) | Cofidis | + 2h 58' 14" |
| 67 | Francesco Gavazzi (ITA) | Eolo–Kometa | + 3h 00' 02" |
| 68 | Ryan Gibbons (RSA) | UAE Team Emirates | + 3h 01' 25" |
| 69 | Rudy Molard (FRA) | Groupama–FDJ | + 3h 07' 44" |
| 70 | Vincenzo Albanese (ITA) | Eolo–Kometa | + 3h 10' 05" |
| 71 | Sebastian Berwick (AUS) | Israel–Premier Tech | + 3h 11' 47" |
| 72 | Salvatore Puccio (ITA) | Ineos Grenadiers | + 3h 12' 08" |
| 73 | Alex Baudin (FRA) | AG2R Citroën Team | + 3h 17' 15" |
| 74 | Marius Mayrhofer (GER) | Team DSM | + 3h 17' 27" |
| 75 | Jasha Sütterlin (GER) | Team Bahrain Victorious | + 3h 20' 13" |
| 76 | Thomas Gloag (GBR) | Team Jumbo–Visma | + 3h 22' 19" |
| 77 | Michael Hepburn (AUS) | Team Jayco–AlUla | + 3h 25' 50" |
| 78 | Mirco Maestri (ITA) | Eolo–Kometa | + 3h 29' 16" |
| 79 | José Joaquín Rojas (ESP) | Movistar Team | + 3h 32' 20" |
| 80 | Maxime Bouet (FRA) | Arkéa–Samsic | + 3h 32' 23" |
| 81 | Davide Bais (ITA) | Eolo–Kometa | + 3h 33' 50" |
| 82 | Pascal Ackermann (GER) | UAE Team Emirates | + 3h 38' 18" |
| 83 | Hugo Toumire (FRA) | Cofidis | + 3h 39' 50" |
| 84 | Karel Vacek (CZE) | Team Corratec–Selle Italia | + 3h 43' 50" |
| 85 | Kristian Sbaragli (ITA) | Alpecin–Deceuninck | + 3h 45' 29" |
| 86 | Michel Ries (LUX) | Arkéa–Samsic | + 3h 46' 43" |
| 87 | Henok Mulubrhan (ERI) | Green Project–Bardiani–CSF–Faizanè | + 3h 52' 20" |
| 88 | Laurenz Rex (BEL) | Intermarché–Circus–Wanty | + 3h 54' 23" |
| 89 | Alexandre Delettre (FRA) | Cofidis | + 3h 55' 28" |
| 90 | Thibault Guernalec (FRA) | Arkéa–Samsic | + 3h 56' 10" |
| 91 | Senne Leysen (BEL) | Alpecin–Deceuninck | + 3h 58' 37" |
| 92 | Jake Stewart (GBR) | Groupama–FDJ | + 3h 59' 18" |
| 93 | Stephen Williams (GBR) | Israel–Premier Tech | + 3h 59' 55" |
| 94 | Edoardo Affini (ITA) | Team Jumbo–Visma | + 4h 02' 55" |
| 95 | Lukas Pöstlberger (AUT) | Team Jayco–AlUla | + 4h 06' 05" |
| 96 | Alex Kirsch (LUX) | Trek–Segafredo | + 4h 11' 01" |
| 97 | Diego Pablo Sevilla (ESP) | Eolo–Kometa | + 4h 11' 51" |
| 98 | Otto Vergaerde (BEL) | Trek–Segafredo | + 4h 24' 51" |
| 99 | Martin Marcellusi (ITA) | Green Project–Bardiani–CSF–Faizanè | + 4h 25' 38" |
| 100 | Alexander Konychev (ITA) | Team Corratec–Selle Italia | + 4h 26' 35" |
| 101 | Veljko Stojnić (SRB) | Team Corratec–Selle Italia | + 4h 26' 52" |
| 102 | Cesare Benedetti (POL) | Bora–Hansgrohe | + 4h 28' 46" |
| 103 | Jonathan Milan (ITA) | Team Bahrain Victorious | + 4h 29' 02" |
| 104 | Niklas Märkl (GER) | Team DSM | + 4h 30' 49" |
| 105 | Ignatas Konovalovas (LTU) | Groupama–FDJ | + 4h 43' 42" |
| 106 | Filippo Magli (ITA) | Green Project–Bardiani–CSF–Faizanè | + 4h 46' 15" |
| 107 | Gianni Moscon (ITA) | Astana Qazaqstan Team | + 4h 48' 59" |
| 108 | Campbell Stewart (NZL) | Team Jayco–AlUla | + 4h 51' 15" |
| 109 | Daan Hoole (NED) | Trek–Segafredo | + 4h 52' 37" |
| 110 | Max Kanter (GER) | Movistar Team | + 4h 52' 47" |
| 111 | Simone Consonni (ITA) | Cofidis | + 4h 56' 49" |
| 112 | Arne Marit (BEL) | Intermarché–Circus–Wanty | + 4h 58' 01" |
| 113 | Fabian Lienhard (SUI) | Groupama–FDJ | + 4h 59' 21" |
| 114 | Filippo Fiorelli (ITA) | Green Project–Bardiani–CSF–Faizanè | + 5h 00' 34" |
| 115 | Charlie Quarterman (GBR) | Team Corratec–Selle Italia | + 5h 01' 27" |
| 116 | Alan Riou (FRA) | Arkéa–Samsic | + 5h 02' 06" |
| 117 | Jonas Iversby Hvideberg (NOR) | Team DSM | + 5h 02' 12" |
| 118 | Fernando Gaviria (COL) | Movistar Team | + 5h 04' 38" |
| 119 | Alessandro Iacchi (ITA) | Team Corratec–Selle Italia | + 5h 06' 23" |
| 120 | Mark Cavendish (GBR) | Astana Qazaqstan Team | + 5h 07' 08" |
| 121 | Alexander Krieger (GER) | Alpecin–Deceuninck | + 5h 08' 46" |
| 122 | Albert Torres (ESP) | Movistar Team | + 5h 19' 29" |
| 123 | Yukiya Arashiro (JPN) | Team Bahrain Victorious | + 5h 21' 17" |
| 124 | Alberto Dainese (ITA) | Team DSM | + 5h 23' 48" |
| 125 | Nicolas Dalla Valle (ITA) | Team Corratec–Selle Italia | + 5h 26' 45" |

### Points classification

Final points classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Jonathan Milan (ITA) | Team Bahrain Victorious | 217 |
| 2 | Derek Gee (CAN) | Israel–Premier Tech | 164 |
| 3 | Michael Matthews (AUS) | Team Jayco–AlUla | 101 |
| 4 | Mark Cavendish (GBR) | Astana Qazaqstan Team | 101 |
| 5 | Pascal Ackermann (GER) | UAE Team Emirates | 95 |
| 6 | Toms Skujiņš (LAT) | Trek–Segafredo | 91 |
| 7 | Nico Denz (GER) | Bora–Hansgrohe | 77 |
| 8 | Magnus Cort (DEN) | EF Education–EasyPost | 68 |
| 9 | Alberto Dainese (ITA) | Team DSM | 63 |
| 10 | Primož Roglič (SLO) | Team Jumbo–Visma | 56 |

### Mountains classification

Final mountains classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Thibaut Pinot (FRA) | Groupama–FDJ | 237 |
| 2 | Derek Gee (CAN) | Israel–Premier Tech | 200 |
| 3 | Ben Healy (IRL) | EF Education–EasyPost | 164 |
| 4 | Davide Bais (ITA) | Eolo–Kometa | 144 |
| 5 | Einer Rubio (COL) | Movistar Team | 117 |
| 6 | Primož Roglič (SLO) | Team Jumbo–Visma | 86 |
| 7 | Santiago Buitrago (COL) | Team Bahrain Victorious | 82 |
| 8 | Davide Gabburo (ITA) | Green Project–Bardiani–CSF–Faizanè | 69 |
| 9 | João Almeida (POR) | UAE Team Emirates | 67 |
| 10 | Aurélien Paret-Peintre (FRA) | AG2R Citroën Team | 56 |

### Young rider classification

Final young rider classification (1–10) :
| Rank | Rider | Team | Time |
| 1 | João Almeida (POR) | UAE Team Emirates | 85h 30' 17" |
| 2 | Thymen Arensman (NED) | Ineos Grenadiers | + 4' 50" |
| 3 | Andreas Leknessund (NOR) | Team DSM | + 6' 16" |
| 4 | Einer Rubio (COL) | Movistar Team | + 9' 28" |
| 5 | Ilan Van Wilder (BEL) | Soudal–Quick-Step | + 10' 43" |
| 6 | Santiago Buitrago (COL) | Team Bahrain Victorious | + 11' 06" |
| 7 | Filippo Zana (ITA) | Team Jayco–AlUla | + 32' 07" |
| 8 | Laurens Huys (BEL) | Intermarché–Circus–Wanty | + 51' 03" |
| 9 | Brandon McNulty (USA) | UAE Team Emirates | + 1h 06' 28" |
| 10 | Marco Frigo (ITA) | Israel–Premier Tech | + 1h 23' 21" |

### Team classification

Final team classification (1–10) :
| Rank | Team | Time |
| 1 | Team Bahrain Victorious | 256h 21' 18" |
| 2 | Ineos Grenadiers | + 16' 22" |
| 3 | Team Jumbo–Visma | + 30' 40" |
| 4 | UAE Team Emirates | + 51' 53" |
| 5 | AG2R Citroën Team | + 1h 21' 30" |
| 6 | Bora–Hansgrohe | + 1h 25' 31" |
| 7 | Astana Qazaqstan Team | + 1h 31' 44" |
| 8 | Team Jayco–AlUla | + 1h 32' 51" |
| 9 | Israel–Premier Tech | + 1h 51' 54" |
| 10 | EF Education–EasyPost | + 2h 18' 52" |

### Intermediate sprint classification

Final intermediate sprint classification (1–10) :
| Rank | Rider | Team | Points |
| 1 | Toms Skujiņš (LAT) | Trek–Segafredo | 57 |
| 2 | Derek Gee (CAN) | Israel–Premier Tech | 49 |
| 3 | Thomas Champion (FRA) | Cofidis | 37 |
| 4 | Veljko Stojnić (SRB) | Team Corratec–Selle Italia | 36 |
| 5 | Davide Bais (ITA) | Eolo–Kometa | 32 |
| 6 | Charlie Quarterman (GBR) | Team Corratec–Selle Italia | 25 |
| 7 | Mattia Bais (ITA) | Eolo–Kometa | 24 |
| 8 | Warren Barguil (FRA) | Arkéa–Samsic | 19 |
| 9 | Alessandro De Marchi (ITA) | Team Jayco–AlUla | 19 |
| 10 | Diego Pablo Sevilla (ESP) | Eolo–Kometa | 19 |

### Breakaway classification

Final breakaway classification (1–10) :
| Rank | Rider | Team | Kilometres |
| 1 | Thomas Champion (FRA) | Cofidis | 650 |
| 2 | Derek Gee (CAN) | Israel–Premier Tech | 483 |
| 3 | Veljko Stojnić (SRB) | Team Corratec–Selle Italia | 428 |
| 4 | Alexander Konychev (ITA) | Team Corratec–Selle Italia | 344 |
| 5 | Diego Pablo Sevilla (ESP) | Eolo–Kometa | 339 |
| 6 | Alessandro De Marchi (ITA) | Team Jayco–AlUla | 338 |
| 7 | Toms Skujiņš (LAT) | Trek–Segafredo | 328 |
| 8 | Davide Bais (ITA) | Eolo–Kometa | 264 |
| 9 | Laurenz Rex (BEL) | Intermarché–Circus–Wanty | 248 |
| 10 | Charlie Quarterman (GBR) | Team Corratec–Selle Italia | 248 |

### Fair play classification

Final fair play classification (1–10) :
| Rank | Team | Points |
| 1 | Groupama–FDJ | 0 |
| 2 | Soudal–Quick-Step | 0 |
| 3 | Arkéa–Samsic | 40 |
| 4 | Cofidis | 40 |
| 5 | Bora–Hansgrohe | 50 |
| 6 | Team Corratec–Selle Italia | 50 |
| 7 | Team Bahrain Victorious | 51 |
| 8 | UAE Team Emirates | 70 |
| 9 | Green Project–Bardiani–CSF–Faizanè | 70 |
| 10 | Trek–Segafredo | 70 |