16.10 | 19 | | | Veneto Classic (1.1) | 190 | 2 | 3 | more |
12.10 | 35 | | | Giro del Veneto (1.1) | 159.8 | | | more |
08.10 | DNF | | | Il Lombardia (1.UWT) | 253 | | | more |
04.10 | DNF | | | Tre Valli Varesine (1.Pro) | 196.3 | | | more |
01.10 | 40 | | | Giro dell'Emilia (1.Pro) | 198.7 | | 3 | more |
29.09 | DNF | | | Coppa Agostoni - Giro delle Brianze (1.1) | 193 | | | more |
11.09 | 44 | | | Grand Prix Cycliste de Montréal (1.UWT) | 221.4 | 5 | 10 | more |
09.09 | DNF | | | Grand Prix Cycliste de Québec (1.UWT) | 201.6 | | | more |
11.08 › 14.0811-14/8 | | | | Arctic Race of Norway (2.Pro) | | | | more |
| 9 | | | Youth classificationYouth classification | | | | |
| 20 | | | General classificationGeneral classification | | 8 | 5 | |
14.08 | 26 | | | S4Stage 4 - Trondheim › Trondheim | 159.1 | | | |
13.08 | 19 | 21 | | S3Stage 3 - Namsos › Skallstuggu | 177.7 | | | |
12.08 | 42 | 23 | | S2Stage 2 - Mosjøen › Brønnøysund | 154.3 | | | |
11.08 | 15 | 17 | | S1Stage 1 - Mo i Rana › Mo i Rana | 186.8 | | | |
04.08 › 07.084-7/8 | | | | Sazka Tour (2.1) | | | | more |
| 15 | | | Mountains classificationMountains classification | | | | |
| 4 | | | Points classificationPoints classification | | | | |
| 3 | | | General classificationGeneral classification | | 50 | 70 | |
07.08 | 7 | | | S4Stage 4 - Šumperk › Šternberk | 179.9 | 2 | | |
06.08 | 4 | 3 | | S3Stage 3 - Moravská Třebová › Dlouhé Stráně | 148.7 | 5 | | |
05.08 | 5 | 4 | | S2Stage 2 - Olomouc › Pustevny | 189.3 | 4 | | |
04.08 | 36 | 36 | | S1Stage 1 - Uničov › Prostějov | 196.2 | | | |
26.06 | DNF | | | National Championships Italy ME - Road Race (NC) | 237.1 | | | more |
22.06 | 9 | | | National Championships Italy ME - ITT (NC) | 35.6 | | 1 | more |
05.06 › 12.065-12/6 | | | | Critérium du Dauphiné (2.UWT) | | | | more |
| 33 | | | Youth classificationYouth classification | | | | |
| 117 | | | General classificationGeneral classification | | 5 | | |
12.06 | 120 | | | S8Stage 8 - Saint-Alban-Leysse › Plateau de Salaison | 138.8 | | | |
11.06 | 73 | 117 | | S7Stage 7 - Saint-Chaffrey › Vaujany | 134.8 | | | |
10.06 | 135 | 121 | | S6Stage 6 - Rives › Gap | 196.5 | | | |
09.06 | 147 | 121 | | S5Stage 5 - Thizy-les-Bourgs › Chaintré | 162.3 | | | |
08.06 | 108 | 112 | | S4 (ITT)Stage 4 (ITT) - Montbrison › La Bâtie d’Urfé | 31.9 | | | |
07.06 | 59 | 112 | | S3Stage 3 - Saint-Paulien › Chastreix-Sancy | 169 | | | |
06.06 | 83 | 123 | | S2Stage 2 - Saint-Péray › Brives-Charensac | 169.8 | | | |
05.06 | 146 | 146 | | S1Stage 1 - La Voulte-sur-Rhône › Beauchastel | 191.8 | | | |
26.04 › 01.0526-1/4 | | | | Tour de Romandie (2.UWT) | | | | more |
28.04 | DNS | | | S2Stage 2 - Échallens › Échallens | 168.2 | | | |
27.04 | 121 | 125 | | S1Stage 1 - La Grande Beroche › Romont | 178 | | | |
26.04 | 109 | 109 | | ProloguePrologue - Lausanne › Lausanne | 5.12 | | | |
10.04 › 17.0410-17/4 | | | | Presidential Cycling Tour of Türkiye (2.Pro) | | | | more |
| 16 | | | Mountains classificationMountains classification | | | | |
| 48 | | | Points classificationPoints classification | | | | |
| 11 | | | General classificationGeneral classification | | 36 | 30 | |
17.04 | DF | | | S8Stage 8 - İstanbul › İstanbul | 137.8 | | | |
16.04 | 22 | 11 | | S7Stage 7 - Gelibolu › Tekirdağ | 131.3 | | | |
15.04 | 15 | 11 | | S6Stage 6 - Edremit (Akçay) › Eceabat (57.Alay Şehitliği) | 201.5 | | | |
14.04 | 64 | 11 | | S5Stage 5 - Manisa › Ayvalık | 186.1 | | | |
13.04 | 13 | 11 | | S4Stage 4 - İzmir (Konak) › Manisa (Spil Milli Park) | 146.2 | | | |
12.04 | 95 | 24 | | S3Stage 3 - Çeşme › İzmir (Karşıyaka) | 117.9 | | | |
11.04 | 35 | 24 | | S2Stage 2 - Selçuk (Efes) › Alaçatı | 156.4 | | | |
10.04 | 32 | 32 | | S1Stage 1 - Bodrum › Kuşadası | 202 | | | |
22.03 › 26.0322-26/3 | | | | Settimana Internazionale Coppi e Bartali (2.1) | | | | more |
| 15 | | | Youth classificationYouth classification | | | | |
| 35 | | | General classificationGeneral classification | | | | |
26.03 | 48 | | | S5Stage 5 - Casalguidi › Cantagrillo | 160 | | | |
25.03 | 87 | 33 | | S4Stage 4 - Montecatini › Montecatini | 158.7 | | | |
24.03 | 31 | 31 | | S3Stage 3 - San Marino › San Marino | 147 | | | |
23.03 | 40 | 39 | | S2Stage 2 - Riccione › Longiano | 165.9 | | | |
22.03 | 56 | 55 | | S1Stage 1 - Riccione › Riccione | 164.6 | | | |
20.03 | 10 | | | Per Sempre Alfredo (1.1) | 172.7 | 14 | 20 | more |
05.03 | 73 | | | Strade Bianche (1.UWT) | 184 | 5 | | more |
02.03 | 74 | | | Trofeo Laigueglia (1.Pro) Italy | 202 | | | more |
10.02 › 15.0210-15/2 | | | | Tour of Oman (2.Pro) | | | | more |
| 3 | | | Youth classificationYouth classification | | | | |
| 19 | | | Points classificationPoints classification | | | | |
| 7 | | | General classificationGeneral classification | | 55 | 60 | |
15.02 | 29 | | | S6Stage 6 - Al Mouj Muscat › Matrah Corniche | 132.5 | | | |
14.02 | 4 | 7 | | S5Stage 5 - Samail › Jabal Al Akhdhar | 150.5 | 7 | | |
13.02 | 18 | 17 | | S4Stage 4 - Al Sifah › Muscat | 119.5 | | | |
12.02 | 17 | 16 | | S3Stage 3 - Sultan Qaboos University › Qurayyat | 180 | | | |
11.02 | 62 | 58 | | S2Stage 2 - Naseem Park › Suhar Corniche | 167.5 | | | |
10.02 | 57 | 59 | | S1Stage 1 - Al Rustaq Fort › Muscat | 138 | | | |
30.01 | 116 | | | Trofeo Playa de Palma - Palma (1.1) | 169.1 | | | more |
29.01 | 127 | | | Trofeo Pollença - Port d'Andratx (1.1) | 170.1 | | | more |
28.01 | 18 | | | Trofeo Serra de Tramuntana (1.1) | 158.9 | 3 | 3 | more |
27.01 | 68 | | | Trofeo Alcúdia - Port d'Alcúdia (1.1) | 173.2 | | | more |
26.01 | 31 | | | Trofeo Calvia (1.1) | 154.7 | | | more |