| 04-10 | 66 | | UEC Road European Championships U23 (CC) | 121.0km |
| 01-10 | 3 | | UEC Road European Championships TT U23 (CC) | 24.0km |
| | | Okolo Slovenska / Tour de Slovaquie (2.1) |
| 16 | | Klassement |
| 16 | | Berg |
| 5 | | Jongeren |
| 21-09 | 17 | 16 | Stage 5Nová Dubnica - Kohútka (124.0km) | 124.0km |
| 20-09 | 35 | 48 | Stage 4Vráble - Sládkovičovo (169.0km) | 169.0km |
| 19-09 | 65 | 53 | Stage 3Kežmarok - Banská Bystrica (191.0km) | 191.0km |
| 18-09 | 76 | 56 | Stage 2Svidník - Košice (170.0km) | 170.0km |
| 17-09 | 60 | 61 | Stage 1Bardejov - Bardejov (140.0km) | 140.0km |
| 10-09 | 88 | | Giro della Toscana - Memorial Alfredo Martini (1.1) | 189.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 29-08 | 74 | 44 | Stage 6aLa Rosière Espace San Bernardo - La Rosière Espace San Bernardo (41.0km) | 41.0km |
| 29-08 | 18 | 41 | Stage 6bLa Rosière-Montvalezan - La Rosière-Montvalezan (10.0km) | 10.0km |
| 28-08 | 45 | 41 | Stage 5Saint-Gervais Mont-Blanc - Tignes (121.0km) | 121.0km |
| 27-08 | 37 | 18 | Stage 4Montagnat - Val Suran (110.0km) | 110.0km |
| 26-08 | 57 | 18 | Stage 3Étang-sur-Arroux - Châtillon-sur-Chalaronne (158.0km) | 158.0km |
| 25-08 | 82 | 19 | Stage 2Saint-Symphorien-sur-Coise - Vitry-en-Charollais (136.0km) | 136.0km |
| 24-08 | 40 | 4 | Stage 1Aoste - Saint-Galmier (188.0km) | 188.0km |
| 23-08 | 7 | 7 | PrologueTignes - Tignes (3.0km) | 3.0km |
| 10-08 | 20 | | Gran Premio Sportivi di Poggiana-Trofeo Bonin Costruzioni (1.2U) | |
| | | Tour Alsace (2.2) |
| 25 | | Klassement |
| 40 | | Punten |
| 15 | | Jongeren |
| 03-08 | 24 | 25 | Stage 5Ribeauville - Champ du Feu (135.0km) | 135.0km |
| 02-08 | 81 | 33 | Stage 4Ferrette - Altkirch (133.0km) | 133.0km |
| 01-08 | 36 | 32 | Stage 3Velleminfroy - La Planche des Belles Filles (141.0km) | 141.0km |
| 31-07 | 66 | 32 | Stage 2Rust (Europapark) - Selestat (168.0km) | 168.0km |
| 30-07 | 11 | 31 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| | | Giro Ciclistico della Valle d'Aosta - Mont Blanc (2.2U) |
| 18-07 | DNF | | Stage 3Pré-Saint-Didier - Colle del Gran San Bernardo (121.0km) | 121.0km |
| 16-07 | 11 | 11 | Stage 1Aosta - Aosta (85.0km) | 85.0km |
| 29-06 | 11 | | National Road Championships - Ireland (CN) | |
| 26-06 | 1 | | National Road Championships - Ireland TT U23 (CN) | |
| | | Giro d'Italia Next Gen (2.2U) |
| 33 | | Klassement |
| 9 | | Punten |
| 10 | | Berg |
| 22-06 | 71 | 33 | Stage 8Pinerolo - Pinerolo (127.0km) | 127.0km |
| 21-06 | 49 | 30 | Stage 7Bra - Prato Nevoso (163.0km) | 163.0km |
| 20-06 | 106 | 30 | Stage 6Ovada - Acqui Terme (154.0km) | 154.0km |
| 19-06 | 1 | 10 | Stage 5Fiorenzuola d'Arda - Gavi (153.0km) | 153.0km |
| 18-06 | 54 | 20 | Stage 4Manerbio - Salsomaggiore Terme (134.0km) | 134.0km |
| 17-06 | 24 | 18 | Stage 3Albese con Cassano - Passo del Maniva (144.0km) | 144.0km |
| 16-06 | 45 | 7 | Stage 2Rho - Cantù (146.0km) | 146.0km |
| 15-06 | 6 | 6 | Stage 1Rho - Rho (8.0km) | 8.0km |
| 02-06 | 17 | | TrofeoAlcide Degasperi (1.2) | |
| 01-06 | 29 | | Coppa Della Pace - Trofeo Fratelli Anelli (1.2U) | 173.0km |
| 03-05 | 27 | | Flèche Ardennaise (1.2) | 174.0km |
| 22-04 | 11 | | G.P. Palio del Recioto - Trofeo Zanotti Mobili (1.2U) | 147.0km |
| 21-04 | DNF | | Giro del Belvedere (1.2U) | 168.0km |
| 19-04 | 30 | | Liège-Bastogne-Liège U23 (1.2U) | 175.0km |
| | | Circuit des Ardennes (2.2) |
| 57 | | Klassement |
| 31 | | Berg |
| 23 | | Jongeren |
| 13-04 | 67 | 57 | Stage 5Chooz - Charleville-Mézières (160.0km) | 160.0km |
| 12-04 | 80 | 66 | Stage 4Lac de Bairon - Lac des Vieilles Forges (178.0km) | 178.0km |
| 11-04 | 55 | 54 | Stage 3Boulzicourt - Saint-Marceau (172.0km) | 172.0km |
| 10-04 | 124 | 102 | Stage 2Rethel - Rethel (172.0km) | 172.0km |
| 09-04 | 94 | 96 | Stage 1Sedan - Nouvion-sur-Meuse (133.0km) | 133.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 82 | | Klassement |
| 32 | | Berg |
| 37 | | Jongeren |
| 29-03 | 60 | 82 | Stage 5Brisighella - Forlì (132.0km) | 132.0km |
| 28-03 | 106 | 101 | Stage 4Brisighella - Brisighella (150.0km) | 150.0km |
| 27-03 | 82 | 99 | Stage 3Riccione - Cesena (142.0km) | 142.0km |
| 26-03 | 112 | 104 | Stage 2Riccione - Sogliano al Rubicone (163.0km) | 163.0km |
| 25-03 | 47 | 47 | Stage 1Ferrara - Bondeno (174.0km) | 174.0km |
| | | Tour of Rhodes (2.2) |
| 5 | | Klassement |
| 9 | | Berg |
| 4 | | Jongeren |
| 16-03 | 11 | 5 | Stage 3Kremasti - Kremasti (155.0km) | 155.0km |
| 15-03 | 11 | 4 | Stage 2Rhodes - Kalithies (158.0km) | 158.0km |
| 14-03 | 16 | 3 | Stage 1Rhodes - Soroni (148.0km) | 148.0km |
| 13-03 | 7 | 7 | PrologueRhodes - Rhodes (5.0km) | 5.0km |
| 08-03 | 90 | | Rhodes GP (1.2) | 179.0km |