| 23-09 | 31 | | UCI World Championship Wollongong U23 (CM) | 169.0km |
| 19-09 | 20 | | UCI World Championship Wollongong TT U23 (CM) | 28.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 7 | | Standings |
| 26 | | Points |
| 7 | | Mountain |
| 28-08 | 5 | 7 | Stage 9Bessans - Villaroger | 134.0km |
| 27-08 | 9 | 9 | Stage 8Ugine - La Toussuire | 99.0km |
| 26-08 | 23 | 14 | Stage 7Thonon-les-Bains - Saint-François-Longchamp | 175.0km |
| 24-08 | 16 | 3 | Stage 6Saint-Amour - Oyonnax | 124.0km |
| 23-08 | | 3 | Stage 5Gueugnon - Saint-Vallier | 27.0km |
| 22-08 | 32 | 27 | Stage 4Sainte-Sévère-sur-Indre - Chaillac | 142.0km |
| 21-08 | 57 | 54 | Stage 3Civray - La Trimouille | 153.0km |
| 20-08 | 65 | 57 | Stage 2Benet - Civray | 142.0km |
| 19-08 | 60 | 60 | Stage 1La Roche-sur-Yon - La Roche-sur-Yon | 121.0km |
| | | Tour de l'Ain (2.1) |
| 23 | | Standings |
| 1 | | Mountain |
| 11-08 | 23 | 23 | Stage 3Plateau d'Hauteville - Lélex | 131.0km |
| 10-08 | 34 | 40 | Stage 2Saint-Vulbas - Lagnieu | 144.0km |
| 09-08 | 81 | 81 | Stage 1Chatillon-sur-Chalaronne - Val-Revermont | 152.0km |
| | | Tour d'Alsace (2.2) |
| 30 | | Standings |
| 31-07 | 90 | 30 | Stage 5Mulhouse - Berrwiller | 158.0km |
| 30-07 | 85 | 27 | Stage 4Kembs - Altkirch | 169.0km |
| 29-07 | 22 | 22 | Stage 3Vesoul - La Planche des Belles Filles | 144.0km |
| 28-07 | 38 | 11 | Stage 2Rust (Europapark) - Scherwiller | 156.0km |
| 27-07 | 19 | 19 | Stage 1Sausheim - Sausheim | 4.0km |
| 26-06 | 35 | | National Road Championships - Germany (CN) | 210.0km |
| 24-06 | 3 | | National Road Championships - Germany TT U23 (CN) | 27.0km |
| | | Baby Giro (2.2U) |
| 7 | | Standings |
| 20 | | Points |
| 26 | | Mountain |
| 18-06 | 19 | 7 | Stage 7Cuneo - Pinerolo | 142.0km |
| 17-06 | 11 | 6 | Stage 6Boves - Colle Fauniera | 110.0km |
| 16-06 | 5 | 6 | Stage 5Busca - Peveragno | 146.0km |
| 14-06 | 20 | 7 | Stage 4Chiuro - Chiavenna | 101.0km |
| 13-06 | 8 | 7 | Stage 3Pinzolo - Santa Caterina Valfurva | 177.0km |
| 12-06 | 50 | 62 | Stage 2Rossano Veneto - Pinzolo | 168.0km |
| 11-06 | 125 | 124 | Stage 1Gradara - Argenta | 163.0km |
| 08-05 | 12 | | Flèche Ardennaise (1.2) | 168.0km |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 80 | | Standings |
| 25 | | Mountain |
| 01-05 | 76 | 80 | Stage 7Ploumilliau - Lannion | 158.0km |
| 30-04 | 82 | 93 | Stage 6Plumergat - Camors | 162.0km |
| 29-04 | 92 | 92 | Stage 5Ploërmel - Scaer | 193.0km |
| 28-04 | 81 | 101 | Stage 4Saint-Jacut-de-la-Mer - Guillac | 167.0km |
| 27-04 | 113 | 109 | Stage 3Lohéac - Le Hinglé | 171.0km |
| 26-04 | 103 | 96 | Stage 2Missilac - La Chapelle Bouexic | 152.0km |
| 25-04 | 90 | 91 | Stage 1Guenrouet - Sainte-Reine-de-Bretagne | 162.0km |
| 16-04 | 26 | | Liège-Bastogne-Liège U23 (1.2U) | 174.0km |
| | | Circuit des Ardennes (2.2) |
| 26 | | Standings |
| 15 | | Youth |
| 09-04 | 52 | 26 | Stage 4Charleville-Mézières - Charleville-Mézières | 175.0km |
| 07-04 | 35 | 24 | Stage 2Bazeilles - Sedan | 133.0km |
| 06-04 | 18 | 19 | Stage 1Signy-le-Petit - Signy-le-Petit | 165.0km |
| 02-04 | 42 | | Volta Limburg Classic (1.1) | 195.0km |
| 18-03 | DNF | | Bredene Koksijde Classic (1.Pro) | 200.0km |
| 13-03 | 41 | | Dorpenomloop Rucphen (1.2) | |
| 06-03 | DNF | | Visit Friesland Elfsteden Race (1.2) | 206.0km |
| | | Tour des Alpes Maritimes et du Var (2.1) |
| 20-02 | DNF | | Stage 3Villefranche-sur-Mer - Blausasc | 113.0km |
| 19-02 | 94 | 95 | Stage 2Puget-Théniers - La Turbie | 149.0km |
| 18-02 | 84 | 86 | Stage 1Saint-Raphaël - La Seyne-sur-Mer | 176.0km |