| 13-10 | 39 | | Paris - Tours Elite (1.HC) | 217.0km |
| 03-10 | 34 | | Sparkassen Münsterland Giro (1.HC) | |
| 27-09 | DSQ | | UCI World Championship Yorkshire U23 (CM) | 193.0km |
| 22-09 | 6 | | Grand Prix d'Isbergues (1.1) | |
| 20-09 | 37 | | Kampioenschap van Vlaanderen (1.1) | 185.0km |
| 15-09 | 4 | | Coppa Bernocchi (1.1) | |
| | | Vuelta a Burgos (2.HC) |
| 92 | | Klassement |
| 17-08 | 82 | 92 | Stage 5Santo Domingo de Silos - Lagunas de Neila (146.0km) | 146.0km |
| 16-08 | 113 | 105 | Stage 4Atapuerca - Ciudad Romana de Clunia (174.0km) | 174.0km |
| 15-08 | 89 | 99 | Stage 3Sargentes de La Lora - Picón Blanco (153.0km) | 153.0km |
| 14-08 | 109 | 100 | Stage 2Gumiel de Izán - Lerma (154.0km) | 154.0km |
| 13-08 | 88 | 88 | Stage 1Burgos - Burgos (161.0km) | 161.0km |
| 10-08 | 42 | | UEC Road European Championships U23 (CC) | 138.0km |
| | | Tour Alsace (2.2) |
| 104 | | Klassement |
| 04-08 | 30 | 104 | Stage 5Ottmarsheim - Dannemarie (158.0km) | 158.0km |
| 03-08 | 100 | 107 | Stage 4Ribeauville - Lac Blanc (161.0km) | 161.0km |
| 02-08 | 120 | 115 | Stage 3Vesoul - La Planche des Belles Filles (143.0km) | 143.0km |
| 01-08 | 125 | 16 | Stage 2Selestat - Selestat (153.0km) | 153.0km |
| 31-07 | | 12 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| 02-07 | 14 | | Trofeo Città di Brescia (1.2) | |
| 29-06 | DNF | | National Road Championships - Italy U23 (CN) | |
| 26-06 | 5 | | National Road Championships - Italy TT U23 (CN) | |
| | | Baby Giro (2.2U) |
| 94 | | Klassement |
| 25 | | Punten |
| 32 | | Berg |
| 23-06 | 102 | 94 | Stage 9Agordo - Passo Fedaia (35.0km) | 35.0km |
| 22-06 | 89 | 90 | Stage 8Rosà - Falcade (134.0km) | 134.0km |
| 21-06 | 126 | 92 | Stage 7Dimaro Folgarida - Levico Terme (153.0km) | 153.0km |
| 20-06 | 105 | 81 | Stage 6Aprica - Aprica (94.0km) | 94.0km |
| 19-06 | 106 | 77 | Stage 5Sorbolo - Passo Maniva (155.0km) | 155.0km |
| 17-06 | 83 | 62 | Stage 4Buonconvento - Vetta Amiata (163.0km) | 163.0km |
| 16-06 | 7 | 6 | Stage 3Sesto Fiorentino - Gaiole in Chianti (145.0km) | 145.0km |
| 15-06 | 15 | 11 | Stage 2Bagno di Romagna - Pescia (174.0km) | 174.0km |
| 14-06 | 20 | 12 | Stage 1Riccione - Santa Sofia (143.0km) | 143.0km |
| 13-06 | 11 | 11 | PrologueRiccione - Riccione (3.0km) | 3.0km |
| | | Orlen Nations Grand Prix (2.NCUP) |
| 51 | | Klassement |
| 02-06 | 49 | 51 | Stage 2Bukovina Resort - Bukowina Tatrzanska (113.0km) | 113.0km |
| 01-06 | | 83 | Stage 1Jurgów - Bukovina Resort (27.0km) | 27.0km |
| | | A Travers les Hauts de France (2.2) |
| 48 | | Klassement |
| 26-05 | 56 | 48 | Stage 3Petite-Forêt - Pecquencourt (188.0km) | 188.0km |
| 25-05 | 105 | 104 | Stage 2Seclin - Bonningues-lès-Calais (197.0km) | 197.0km |
| 24-05 | 69 | 79 | Stage 1Gavrelle - Épinoy (125.0km) | 125.0km |
| | | Tour of Limpopo (2.2) |
| 17 | | Klassement |
| 8 | | Punten |
| 18-05 | 20 | 17 | Stage 4Tzaneen - Polokwane (116.0km) | 116.0km |
| 17-05 | 79 | 21 | Stage 3Tzaneen - Coach House (Mt. Agatha) (103.0km) | 103.0km |
| 16-05 | 3 | 1 | Stage 2Polokwane - Tzaneen (96.0km) | 96.0km |
| 15-05 | 2 | 2 | Stage 1Bela Bela - Polokwane (172.0km) | 172.0km |
| 05-05 | 116 | | Entre Brenne et Montmorillonnais (1.2) | |
| 04-05 | 1 | | L'Etoile d'Or (1.NCUP) | |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 103 | | Klassement |
| 38 | | Punten |
| 01-05 | 56 | 103 | Stage 7Plounévez-Lochrist - Saint-Pol-de-Léon (150.0km) | 150.0km |
| 30-04 | 116 | 113 | Stage 6Le Ferré - Plurien (171.0km) | 171.0km |
| 29-04 | 116 | 111 | Stage 5Rougé - Le Ferré (191.0km) | 191.0km |
| 28-04 | 130 | 106 | Stage 4Ploërmel - Chateaubriant (152.0km) | 152.0km |
| 27-04 | 27 | 69 | Stage 3Port-Louis - Guégon (172.0km) | 172.0km |
| 26-04 | 11 | 75 | Stage 2Bannalec - Quimperlé (169.0km) | 169.0km |
| 25-04 | 77 | 77 | Stage 1Lorient - Inzinzac-Lochrist (150.0km) | 150.0km |
| 21-04 | 14 | | 12° Tr. Città di S. Vendemiano - 59° GP Industria & Commercio (1.2U) | |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 115 | | Klassement |
| 31-03 | 111 | 115 | Stage 5Fiorano Modenese - Sassuolo (153.0km) | 153.0km |
| 30-03 | 15 | 125 | Stage 4Crevalcore - Crevalcore (171.0km) | 171.0km |
| 29-03 | 136 | 127 | Stage 3Forlì - Forlì (166.0km) | 166.0km |
| 28-03 | 123 | 121 | Stage 2Riccione - Sogliano al Rubicone (140.0km) | 140.0km |
| 27-03 | 18 | 86 | Stage 1bGatteo a Mare - Gatteo (13.0km) | 13.0km |
| 27-03 | 17 | 31 | Stage 1aGatteo - Gatteo (97.0km) | 97.0km |
| 10-03 | DNF | | GP Industria & Artigianato (1.HC) | 199.0km |