| 24-09 | DNF | | UCI World Championship Flanders U23 (CM) | 160.0km |
| | | 57° Giro della Regione Friuli Venezia Giulia (2.2) |
| 94 | | Klassement |
| 05-09 | 138 | 94 | Stage 3Mortegliano - Pordenone (157.0km) | 157.0km |
| 04-09 | 91 | 94 | Stage 2Casarsa della Delizia - Piancavallo (142.0km) | 142.0km |
| 03-09 | 94 | 94 | Stage 1Rive d’Arcano - Tarvisio (153.0km) | 153.0km |
| 28-08 | DNF | | Brussels Cycling Classic (1.Pro) | 205.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 86 | | Klassement |
| 22-08 | 81 | 86 | Stage 9La Toussuire - Col du Petit Saint-Bernard (154.0km) | 154.0km |
| 21-08 | 67 | 93 | Stage 8La Tour-en-Maurienne - Saint-Jean-d'Arves (91.0km) | 91.0km |
| 20-08 | 79 | 101 | Stage 7Saint-Vulbas - Le Grand Colombier (98.0km) | 98.0km |
| 19-08 | 112 | 111 | Stage 6Champagnole - Septmoncel (138.0km) | 138.0km |
| 18-08 | 110 | 105 | Stage 5Tomblaine - Bar-sur-Aube (151.0km) | 151.0km |
| 17-08 | 97 | 112 | Stage 4Provins - Bar-le-Duc (186.0km) | 186.0km |
| 16-08 | 136 | 126 | Stage 3Château-Thierry - Donnemarie-Dontilly (152.0km) | 152.0km |
| 15-08 | | 113 | Stage 2Laon - Laon (27.0km) | 27.0km |
| 14-08 | 110 | 117 | Stage 1Charleville-Mézières - Soissons (161.0km) | 161.0km |
| 13-08 | 90 | 90 | PrologueCharleville-Mézières - Charleville-Mézières (5.0km) | 5.0km |
| | | Kreiz Breizh Elites (2.2) |
| 01-08 | DNF | | Stage 3Ploërdut - Carhaix (180.0km) | 180.0km |
| 31-07 | 55 | 60 | Stage 2Calanhel - Plouray (189.0km) | 189.0km |
| 30-07 | 14 | 63 | Stage 1Ploumagoar - Ploumagoar (12.0km) | 12.0km |
| 04-07 | 38 | | Giro del Medio Brenta (1.2) | |
| 24-06 | 47 | | Giro dell'Appennino (1.1) | 192.0km |
| | | Baby Giro (2.2U) |
| 101 | | Klassement |
| 12-06 | 135 | 101 | Stage 10San Vito al Tagliamento - Castelfranco Veneto (162.0km) | 162.0km |
| 11-06 | 75 | 98 | Stage 9Cavalese - Val di Fiemme (167.0km) | 167.0km |
| 10-06 | 70 | 103 | Stage 8Aprica - Andalo (115.0km) | 115.0km |
| 09-06 | 125 | 108 | Stage 7Sondrio - Lanzada Lago Di Campo Moro (119.0km) | 119.0km |
| 08-06 | 139 | 103 | Stage 6Bonferraro di Sorga - San Pellegrino Terme (176.0km) | 176.0km |
| 07-06 | 83 | 87 | Stage 5Fanano - Sestola (142.0km) | 142.0km |
| 06-06 | 72 | 98 | Stage 4Sorbolo Mezzani - Guastalla (25.0km) | 25.0km |
| 05-06 | 29 | 100 | Stage 3Cesenatico - Cesenatico (132.0km) | 132.0km |
| 04-06 | 139 | 128 | Stage 2Riccione - Imola (Autodromo Enzo e Dino Ferrari) (138.0km) | 138.0km |
| 03-06 | 35 | 35 | Stage 1Cesenatico - Riccione (144.0km) | 144.0km |
| 30-05 | 45 | | 49^ Coppa della Pace - 46° Trofeo F.lli Anelli (1.2U) | |
| | | Alpes Isère Tour (2.2) |
| 92 | | Klassement |
| 33 | | Berg |
| 23-05 | 94 | 92 | Stage 5Pressins - Crolles (141.0km) | 141.0km |
| 22-05 | 100 | 95 | Stage 4Les Roches-de-Condrieu - Saint-Maurice-l'Exil (174.0km) | 174.0km |
| 21-05 | 62 | 78 | Stage 3Saint-Exupéry - Pusignan (157.0km) | 157.0km |
| 20-05 | 100 | 88 | Stage 2Saint-Jean-de-Soudain - La Verpillière (167.0km) | 167.0km |
| 19-05 | 47 | | Stage 1Charvieu-Chavagneux - Charvieu-Chavagneux (136.0km) | 136.0km |
| 25-04 | 71 | | 74^ Gran Premio della Liberazione (1.2U) | |
| 05-04 | 25 | | 82° Giro del Belvedere (1.2U) | |
| 21-03 | 1 | | National Road Championships - South Africa (CN) | |
| 19-03 | 1 | | National Road Championships - South Africa TT U23 (CN) | |
| 05-02 | 2 | | National Road Championships - Namibia TT (CN) | |