| | | Giro della Regione Friuli Venezia Giulia (2.2) |
| 63 | | Klassement |
| 19 | | Jongeren |
| 07-09 | 92 | 63 | Stage 4Cervignano del Friuli - San Daniele del Friuli (151.0km) | 151.0km |
| 06-09 | | 18 | Stage 3Ampezzo - Ravascletto (155.0km) | 155.0km |
| 05-09 | 35 | 19 | Stage 2Porpetto - Teor (167.0km) | 167.0km |
| 04-09 | | | Stage 1Palazzolo dello Stella - Buttrio (156.0km) | 156.0km |
| 31-08 | 63 | | IXINA Classic - Grote Prijs van de Stad Halle (1.2) | 177.0km |
| 27-08 | DNF | | Muur Classic Geraardsbergen (1.1) | 177.0km |
| | | Tour Alsace (2.2) |
| 50 | | Klassement |
| 34 | | Jongeren |
| 03-08 | 75 | 50 | Stage 5Ribeauville - Champ du Feu (135.0km) | 135.0km |
| 02-08 | 51 | 23 | Stage 4Ferrette - Altkirch (133.0km) | 133.0km |
| 01-08 | 26 | 25 | Stage 3Velleminfroy - La Planche des Belles Filles (141.0km) | 141.0km |
| 31-07 | 70 | 45 | Stage 2Rust (Europapark) - Selestat (168.0km) | 168.0km |
| 30-07 | 3 | 47 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| 27-07 | 78 | | National Road Championships - Belgium U23 (CN) | 177.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 41 | | Klassement |
| 51 | | Punten |
| 26 | | Berg |
| 22-06 | 23 | 41 | Stage 8Pinerolo - Pinerolo (127.0km) | 127.0km |
| 21-06 | 35 | 48 | Stage 7Bra - Prato Nevoso (163.0km) | 163.0km |
| 20-06 | 23 | 71 | Stage 6Ovada - Acqui Terme (154.0km) | 154.0km |
| 19-06 | 113 | 74 | Stage 5Fiorenzuola d'Arda - Gavi (153.0km) | 153.0km |
| 18-06 | 101 | 59 | Stage 4Manerbio - Salsomaggiore Terme (134.0km) | 134.0km |
| 17-06 | 63 | 60 | Stage 3Albese con Cassano - Passo del Maniva (144.0km) | 144.0km |
| 16-06 | 26 | 25 | Stage 2Rho - Cantù (146.0km) | 146.0km |
| 15-06 | 30 | 30 | Stage 1Rho - Rho (8.0km) | 8.0km |
| | | Alpes Isère Tour (2.2) |
| 24 | | Klassement |
| 3 | | Punten |
| 20 | | Jongeren |
| 01-06 | 32 | 24 | Stage 5Saint-Joseph-de-Rivière - La Mure (181.0km) | 181.0km |
| 31-05 | 4 | 3 | Stage 4Primarette - Saint-Maurice-l'Exil (176.0km) | 176.0km |
| 30-05 | 6 | 3 | Stage 3Colombier-Saugnieu - Jons (159.0km) | 159.0km |
| 29-05 | 12 | 3 | Stage 2Dolomieu - Satolas-et-Bonce (153.0km) | 153.0km |
| 28-05 | 3 | 3 | Stage 1Charvieu-Chavagneux - Charvieu-Chavagneux (135.0km) | 135.0km |
| 19-04 | 7 | | Liège-Bastogne-Liège U23 (1.2U) | 175.0km |
| | | Circuit des Ardennes (2.2) |
| 8 | | Klassement |
| 10 | | Punten |
| 8 | | Berg |
| 4 | | Jongeren |
| 13-04 | 34 | 8 | Stage 5Chooz - Charleville-Mézières (160.0km) | 160.0km |
| 12-04 | 6 | 8 | Stage 4Lac de Bairon - Lac des Vieilles Forges (178.0km) | 178.0km |
| 11-04 | 7 | 11 | Stage 3Boulzicourt - Saint-Marceau (172.0km) | 172.0km |
| 10-04 | 54 | 31 | Stage 2Rethel - Rethel (172.0km) | 172.0km |
| 09-04 | 9 | 13 | Stage 1Sedan - Nouvion-sur-Meuse (133.0km) | 133.0km |
| 05-04 | 14 | | Volta NXT Classic (1.1) | 192.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 11 | | Klassement |
| 5 | | Jongeren |
| 29-03 | 19 | 11 | Stage 5Brisighella - Forlì (132.0km) | 132.0km |
| 28-03 | 9 | 13 | Stage 4Brisighella - Brisighella (150.0km) | 150.0km |
| 27-03 | 19 | 14 | Stage 3Riccione - Cesena (142.0km) | 142.0km |
| 26-03 | 23 | 23 | Stage 2Riccione - Sogliano al Rubicone (163.0km) | 163.0km |
| 25-03 | 100 | 100 | Stage 1Ferrara - Bondeno (174.0km) | 174.0km |
| 21-03 | DNF | | Youngster Coast Challenge (1.2U) | 170.0km |
| | | O Gran Camiño - The Historical Route (2.1) |
| 8 | | Klassement |
| 29 | | Punten |
| 1 | | Jongeren |
| 02-03 | 25 | 8 | Stage 5Betanzos - Santiago de Compostela (165.0km) | 165.0km |
| 01-03 | 9 | 7 | Stage 4A Pobra do Brollón - O Cebreiro (142.0km) | 142.0km |
| 28-02 | 18 | 11 | Stage 3Ourense - Pereiro de Aguiar (15.0km) | 15.0km |
| 27-02 | 21 | 11 | Stage 2Marín - Lalín/a Estrada (144.0km) | 144.0km |
| 26-02 | 30 | 33 | Stage 1Maia - Matosinhos (190.0km) | 190.0km |