| 22-09 | 75 | | UCI World Championship Limburg U23 (CM) | 161.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 8 | | Klassement |
| 01-09 | 12 | 8 | Stage 6Beaufort - Le Grand-Bornand (82.0km) | 82.0km |
| 31-08 | 21 | 8 | Stage 5Valloire - Le Saisies (130.0km) | 130.0km |
| 30-08 | 4 | 3 | Stage 4Seyssel - Valloire (155.0km) | 155.0km |
| 29-08 | 30 | 29 | Stage 3Pont-d'Ain - Annemasse (152.0km) | 152.0km |
| 28-08 | 38 | 36 | Stage 2Parc des Oiseaux - Chatillon-sur-Chalaronne (139.0km) | 139.0km |
| 27-08 | 36 | 36 | Stage 1Dôle - Belleville (172.0km) | 172.0km |
| 26-08 | 36 | 36 | PrologueDôle - Dôle (3.0km) | 3.0km |
| | | Tour de l'Ain (2.1) |
| 4 | | Klassement |
| 11-08 | 12 | 4 | Stage 5Saint-Claude - Lélex (132.0km) | 132.0km |
| 10-08 | 9 | 5 | Stage 4Nantua - Septmoncel (156.0km) | 156.0km |
| 09-08 | 8 | 8 | Stage 3Belley - Montréal-la-Cluse (154.0km) | 154.0km |
| 08-08 | 8 | 36 | Stage 2bSaint-Vulbas - Saint-Vulbas (11.0km) | 11.0km |
| 08-08 | 46 | 33 | Stage 2aLagnieu - Ambérieu-en-Bugey (83.0km) | 83.0km |
| 07-08 | 26 | 26 | Stage 1Montmerle-sur-Saône - Trévoux (157.0km) | 157.0km |
| | | Tour Alsace (2.2) |
| 8 | | Klassement |
| 29-07 | 3 | 8 | Stage 5Ribeauville - Ballon d'Alsace (156.0km) | 156.0km |
| 28-07 | 19 | 12 | Stage 4bCernay - Cernay (17.0km) | 17.0km |
| 28-07 | 4 | 13 | Stage 4aBollwiller - Le Markstein (84.0km) | 84.0km |
| 27-07 | 35 | 35 | Stage 3Beaucourt - Colmar (161.0km) | 161.0km |
| 26-07 | 40 | 33 | Stage 2Strasbourg - Bischoffsheim (153.0km) | 153.0km |
| 25-07 | 43 | 48 | Stage 1Weil-am-Rhein - Huningue (147.0km) | 147.0km |
| 23-06 | 3 | | National Road Championships - Netherlands U23 (CN) | 156.0km |
| | | Internationale Thüringen-Rundfahrt U23 (2.2U) |
| 5 | | Klassement |
| 15-06 | 28 | 5 | Stage 6Zeulenroda-Triebes - Zeulenroda-Triebes (146.0km) | 146.0km |
| 14-06 | 16 | 5 | Stage 5Gräfenroda - Oberhof (8.0km) | 8.0km |
| 13-06 | 8 | 2 | Stage 4Treffurt - Treffurt (185.0km) | 185.0km |
| 12-06 | 28 | 2 | Stage 3Bad Blankenburg - Bad Blankenburg (148.0km) | 148.0km |
| 11-06 | 9 | 2 | Stage 2Schönbrunn - Steinbach (141.0km) | 141.0km |
| 10-06 | 9 | 3 | Stage 1Erfurt - Erfurt (179.0km) | 179.0km |
| 09-06 | 1 | 3 | PrologueSangerhausen - Sangerhausen (6.0km) | 6.0km |
| | | Tour de Gironde (2.2) |
| 2 | | Klassement |
| 28-05 | 24 | 2 | Stage 3Saint-Pierre-d'Aurillac - Villenave-d'Ornon (171.0km) | 171.0km |
| 27-05 | 12 | 2 | Stage 2Saint-Loubes - Braud/St Louis (181.0km) | 181.0km |
| 26-05 | 2 | 2 | Stage 1Fargues - Cenon (159.0km) | 159.0km |
| 19-05 | 101 | | Grand Prix Criquielion (1.2) | |
| 17-05 | 91 | | Ronde van Limburg (1.2) | |
| | | Rhône-Alpes Isère Tour (2.2) |
| 13-05 | DNS | | Stage 4Charvieu-Chavagneux - Charvieu-Chavagneux (154.0km) | 154.0km |
| 12-05 | 100 | 8 | Stage 3Saint-Maurice-l'Exil - Saint-Maurice-l'Exil (166.0km) | 166.0km |
| 11-05 | 11 | 5 | Stage 2Vaulx-Milieu - Montanay (181.0km) | 181.0km |
| 10-05 | 8 | 8 | Stage 1Domarin - Ruy-Montceau (141.0km) | 141.0km |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 3 | | Klassement |
| 01-05 | 8 | 3 | Stage 7Langonnet - Dinan (165.0km) | 165.0km |
| 30-04 | 6 | 3 | Stage 6Douarnenez - Lannion (144.0km) | 144.0km |
| 29-04 | 20 | 3 | Stage 5Mûr-de-Bretagne - Douarnenez (164.0km) | 164.0km |
| 28-04 | 8 | 3 | Stage 4Missillac - Mûr-de-Bretagne (154.0km) | 154.0km |
| 27-04 | 26 | 4 | Stage 3Saint-Méen-le-Grand - Missillac (150.0km) | 150.0km |
| 26-04 | 7 | 4 | Stage 2Vannes - Saint-Méen-le-Grand (157.0km) | 157.0km |
| 25-04 | 8 | 9 | Stage 1Vannes - Vannes (167.0km) | 167.0km |
| 22-04 | 30 | | Val d'Ille U Classic 35 (1.2) | |
| 14-04 | 8 | | Liège - Bastogne - Liège U23 (1.2U) | |
| | | Circuit des Ardennes International (2.2) |
| 13 | | Klassement |
| 08-04 | 8 | 13 | Stage 4Charleville-Mézières - Sedan (120.0km) | 120.0km |
| 08-04 | | 14 | Stage 3Sedan - Charleville-Mézières (26.0km) | 26.0km |
| 07-04 | 11 | 7 | Stage 2Renwez - Renwez (170.0km) | 170.0km |
| 06-04 | 12 | 14 | Stage 1Boulzicourt - Signy l'Abbaye (170.0km) | 170.0km |
| 01-04 | 32 | | Grand Prix de la Ville de Nogent-sur-Oise (1.2) | |
| | | Volta ao Alentejo (2.2) |
| 10 | | Klassement |
| 25-03 | 18 | 10 | Stage 4Mértola - Grandola (151.0km) | 151.0km |
| 24-03 | 24 | 8 | Stage 3Odemira - Ourique (168.0km) | 168.0km |
| 23-03 | 21 | 7 | Stage 2Portel - Santiago do Cacém (191.0km) | 191.0km |
| 22-03 | 9 | 4 | Stage 1Castelo de Vide - Redondo (165.0km) | 165.0km |
| | | Istarsko proljece - Istrian Spring Trophy (2.2) |
| 10 | | Klassement |
| 18-03 | 9 | 10 | Stage 3Pazin - Umag (169.0km) | 169.0km |
| 17-03 | 13 | 10 | Stage 2Vrsar - Motovun (157.0km) | 157.0km |
| 16-03 | 14 | 8 | Stage 1Umag - Labin (159.0km) | 159.0km |
| 15-03 | 15 | 15 | PrologueUmag - Umag (2.0km) | 2.0km |
| 25-02 | 11 | | Beverbeek Classic (1.2) | 177.0km |