| 19-10 | 19 | | Veneto Classic (1.Pro) | 197.0km |
| 15-10 | 34 | | Giro del Veneto (1.Pro) | 169.0km |
| 12-10 | 88 | | Trofeo Tessile & Moda - Valdengo Oropa (1.1) | 170.0km |
| 07-10 | DNF | | Tre Valli Varesine (1.Pro) | 200.0km |
| 06-10 | 76 | | Coppa Bernocchi (1.Pro) | 191.0km |
| 04-10 | 4 | | Il Lombardia Under 23 (1.2U) | 170.0km |
| 30-09 | 4 | | Ruota d'Oro - GP Festa del Perdono (1.2U) | 173.0km |
| 14-09 | DNF | | Trofeo Matteotti (1.1) | 195.0km |
| 13-09 | 17 | | Memorial Marco Pantani (1.1) | 195.0km |
| 11-09 | 84 | | Gran Premio città di Peccioli - Coppa Sabatini (1.Pro) | 197.0km |
| 10-09 | 96 | | Giro della Toscana - Memorial Alfredo Martini (1.1) | 189.0km |
| | | Giro della Regione Friuli Venezia Giulia (2.2) |
| 18 | | Klassement |
| 21 | | Punten |
| 3 | | Jongeren |
| 07-09 | 18 | 18 | Stage 4Cervignano del Friuli - San Daniele del Friuli (151.0km) | 151.0km |
| 06-09 | | 32 | Stage 3Ampezzo - Ravascletto (155.0km) | 155.0km |
| 05-09 | 98 | 33 | Stage 2Porpetto - Teor (167.0km) | 167.0km |
| 04-09 | 9 | 9 | Stage 1Palazzolo dello Stella - Buttrio (156.0km) | 156.0km |
| | | West Bohemia Tour (2.2U) |
| 21 | | Klassement |
| 22 | | Punten |
| 12 | | Jongeren |
| 5 | | Berg |
| 24-08 | 17 | 21 | Stage 3Plzeň - Plzeň (151.0km) | 151.0km |
| 23-08 | 10 | 24 | Stage 2Klatovy - Klatovy (157.0km) | 157.0km |
| 22-08 | 53 | 27 | Stage 1Rokycany - Rokycany (150.0km) | 150.0km |
| 21-08 | 11 | 11 | PrologueStarý Plzenec - Radyně (3.0km) | 3.0km |
| 29-06 | DNF | | National Road Championships - Italy U23 (CN) | |
| 24-06 | DNF | | Giro dell'Appennino (1.1) | 198.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 74 | | Klassement |
| 22-06 | 79 | 74 | Stage 8Pinerolo - Pinerolo (127.0km) | 127.0km |
| 21-06 | 75 | 76 | Stage 7Bra - Prato Nevoso (163.0km) | 163.0km |
| 20-06 | 24 | 76 | Stage 6Ovada - Acqui Terme (154.0km) | 154.0km |
| 19-06 | 56 | 82 | Stage 5Fiorenzuola d'Arda - Gavi (153.0km) | 153.0km |
| 18-06 | 92 | 81 | Stage 4Manerbio - Salsomaggiore Terme (134.0km) | 134.0km |
| 17-06 | 98 | 85 | Stage 3Albese con Cassano - Passo del Maniva (144.0km) | 144.0km |
| 16-06 | 106 | 52 | Stage 2Rho - Cantù (146.0km) | 146.0km |
| 15-06 | 61 | 61 | Stage 1Rho - Rho (8.0km) | 8.0km |
| | | Flèche du Sud (2.2) |
| 9 | | Klassement |
| 7 | | Punten |
| 3 | | Jongeren |
| 01-06 | 34 | 9 | Stage 4Esch-sur-Alzette - Esch-sur-Alzette (165.0km) | 165.0km |
| 31-05 | 4 | 9 | Stage 3Canach - Canach (195.0km) | 195.0km |
| 30-05 | 2 | 11 | Stage 2Sanem - Sanem (160.0km) | 160.0km |
| 29-05 | 18 | 18 | Stage 1Rumelange - Rumelange (151.0km) | 151.0km |
| 28-05 | 18 | 18 | PrologueDudelange - Dudelange (7.0km) | 7.0km |
| | | Ronde de l'Isard (2.2U) |
| 26 | | Klassement |
| 5 | | Punten |
| 15 | | Jongeren |
| 25-05 | 5 | 26 | Stage 5Saubens - Saint-Girons (150.0km) | 150.0km |
| 24-05 | 45 | 28 | Stage 4Espéraza - Pla de Soulcem (124.0km) | 124.0km |
| 23-05 | 24 | 3 | Stage 3Aspet - Salies-du-Salat (142.0km) | 142.0km |
| 22-05 | 2 | 3 | Stage 2Luz-Saint-Sauveur - Cauterets-Cambasque (135.0km) | 135.0km |
| 21-05 | 7 | 8 | Stage 1Saint-Mont - Bagnères-de-Bigorre (149.0km) | 149.0km |
| 22-04 | DNF | | G.P. Palio del Recioto - Trofeo Zanotti Mobili (1.2U) | 147.0km |
| 21-04 | 63 | | Giro del Belvedere (1.2U) | 168.0km |
| | | Circuit des Ardennes (2.2) |
| 81 | | Klassement |
| 31 | | Jongeren |
| 13-04 | 89 | 81 | Stage 5Chooz - Charleville-Mézières (160.0km) | 160.0km |
| 12-04 | 76 | 63 | Stage 4Lac de Bairon - Lac des Vieilles Forges (178.0km) | 178.0km |
| 11-04 | 78 | 72 | Stage 3Boulzicourt - Saint-Marceau (172.0km) | 172.0km |
| 10-04 | 30 | 69 | Stage 2Rethel - Rethel (172.0km) | 172.0km |
| 09-04 | 102 | 103 | Stage 1Sedan - Nouvion-sur-Meuse (133.0km) | 133.0km |
| 06-04 | 53 | | Trofeo Piva (1.2U) | |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 29-03 | DNF | | Stage 5Brisighella - Forlì (132.0km) | 132.0km |
| 28-03 | 85 | 113 | Stage 4Brisighella - Brisighella (150.0km) | 150.0km |
| 27-03 | 102 | 113 | Stage 3Riccione - Cesena (142.0km) | 142.0km |
| 26-03 | 126 | 125 | Stage 2Riccione - Sogliano al Rubicone (163.0km) | 163.0km |
| 25-03 | 75 | 75 | Stage 1Ferrara - Bondeno (174.0km) | 174.0km |
| | | Tour of Rhodes (2.2) |
| 22 | | Klassement |
| 11 | | Jongeren |
| 16-03 | 49 | 22 | Stage 3Kremasti - Kremasti (155.0km) | 155.0km |
| 15-03 | 7 | 11 | Stage 2Rhodes - Kalithies (158.0km) | 158.0km |
| 14-03 | 6 | 12 | Stage 1Rhodes - Soroni (148.0km) | 148.0km |
| 13-03 | 41 | 41 | PrologueRhodes - Rhodes (5.0km) | 5.0km |
| 08-03 | 59 | | Rhodes GP (1.2) | 179.0km |
| | | Visit South Aegean Islands (2.2) |
| 2 | | Klassement |
| 2 | | Jongeren |
| 02-03 | 5 | 2 | Stage 2Rhodes - Salakos (160.0km) | 160.0km |
| 01-03 | 1 | 1 | Stage 1Rhodes - Koskinou (180.0km) | 180.0km |
| 02-02 | 131 | | Trofeo Palma (1.1) | 149.0km |
| 31-01 | DNF | | Trofeo Serra Tramuntana (1.1) | 151.0km |
| 30-01 | 113 | | Trofeo Felanitx-Ses Salines (1.1) | 184.0km |