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