| 19-10 | DNF | | Veneto Classic (1.Pro) | 197.0km |
| 15-10 | 88 | | Giro del Veneto (1.Pro) | 169.0km |
| 12-10 | 39 | | Paris - Tours Espoirs (1.2U) | 176.0km |
| 04-10 | 9 | | Il Lombardia Under 23 (1.2U) | 170.0km |
| 26-09 | 16 | | Tour de la Mirabelle (1.2) | 127.0km |
| | | Okolo Slovenska / Tour de Slovaquie (2.1) |
| 24 | | Klassement |
| 8 | | Jongeren |
| 21-09 | 23 | 24 | Stage 5Nová Dubnica - Kohútka (124.0km) | 124.0km |
| 20-09 | 56 | 50 | Stage 4Vráble - Sládkovičovo (169.0km) | 169.0km |
| 19-09 | 74 | 52 | Stage 3Kežmarok - Banská Bystrica (191.0km) | 191.0km |
| 18-09 | 71 | 50 | Stage 2Svidník - Košice (170.0km) | 170.0km |
| 17-09 | 37 | 39 | Stage 1Bardejov - Bardejov (140.0km) | 140.0km |
| 31-08 | 60 | | Grand Prix de Plouay (1.2) | 186.0km |
| | | West Bohemia Tour (2.2U) |
| 27 | | Klassement |
| 18 | | Jongeren |
| 14 | | Berg |
| 24-08 | 63 | 27 | Stage 3Plzeň - Plzeň (151.0km) | 151.0km |
| 23-08 | 31 | 34 | Stage 2Klatovy - Klatovy (157.0km) | 157.0km |
| 22-08 | 46 | 41 | Stage 1Rokycany - Rokycany (150.0km) | 150.0km |
| 21-08 | 39 | 39 | PrologueStarý Plzenec - Radyně (3.0km) | 3.0km |
| 09-08 | 15 | | National Road Championships - France U23 (CN) | |
| 06-08 | 38 | | National Road Championships - France TT U23 (CN) | |
| | | Tour Alsace (2.2) |
| 91 | | Klassement |
| 29 | | Berg |
| 66 | | Jongeren |
| 03-08 | 114 | 91 | Stage 5Ribeauville - Champ du Feu (135.0km) | 135.0km |
| 02-08 | 104 | 69 | Stage 4Ferrette - Altkirch (133.0km) | 133.0km |
| 01-08 | 61 | 62 | Stage 3Velleminfroy - La Planche des Belles Filles (141.0km) | 141.0km |
| 31-07 | 145 | 117 | Stage 2Rust (Europapark) - Selestat (168.0km) | 168.0km |
| 30-07 | 10 | 116 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| 29-06 | DNF | | National Road Championships - France (CN) | 231.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 104 | | Klassement |
| 17 | | Jongeren |
| 22-06 | 95 | 104 | Stage 8Pinerolo - Pinerolo (127.0km) | 127.0km |
| 21-06 | 67 | 103 | Stage 7Bra - Prato Nevoso (163.0km) | 163.0km |
| 20-06 | 138 | 109 | Stage 6Ovada - Acqui Terme (154.0km) | 154.0km |
| 19-06 | 114 | 91 | Stage 5Fiorenzuola d'Arda - Gavi (153.0km) | 153.0km |
| 18-06 | 88 | 82 | Stage 4Manerbio - Salsomaggiore Terme (134.0km) | 134.0km |
| 17-06 | 85 | 86 | Stage 3Albese con Cassano - Passo del Maniva (144.0km) | 144.0km |
| 16-06 | 103 | 81 | Stage 2Rho - Cantù (146.0km) | 146.0km |
| 15-06 | 96 | 96 | Stage 1Rho - Rho (8.0km) | 8.0km |
| | | Alpes Isère Tour (2.2) |
| 43 | | Klassement |
| 35 | | Jongeren |
| 01-06 | 39 | 43 | Stage 5Saint-Joseph-de-Rivière - La Mure (181.0km) | 181.0km |
| 31-05 | 88 | 59 | Stage 4Primarette - Saint-Maurice-l'Exil (176.0km) | 176.0km |
| 30-05 | 47 | 35 | Stage 3Colombier-Saugnieu - Jons (159.0km) | 159.0km |
| 29-05 | 27 | 41 | Stage 2Dolomieu - Satolas-et-Bonce (153.0km) | 153.0km |
| 28-05 | 75 | 75 | Stage 1Charvieu-Chavagneux - Charvieu-Chavagneux (135.0km) | 135.0km |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 30-04 | ABD | | Stage 6Missillac - Le Pertre (178.0km) | 178.0km |
| 29-04 | 111 | 75 | Stage 5Erdeven - Guenrouet (164.0km) | 164.0km |
| 28-04 | 69 | 60 | Stage 4Plonéour-Lanvern - Landévant (204.0km) | 204.0km |
| 27-04 | 80 | 70 | Stage 3Loudéac - Plonéour-Lanvern (212.0km) | 212.0km |
| 26-04 | 84 | 69 | Stage 2La Gouesnière - Le Cambout (182.0km) | 182.0km |
| 25-04 | 76 | 76 | Stage 1Hirel - La Fresnais (144.0km) | 144.0km |
| 19-04 | 81 | | Liège-Bastogne-Liège U23 (1.2U) | 175.0km |
| 13-04 | OTL | | Paris-Roubaix Espoirs (1.2U) | 167.0km |
| 02-04 | 66 | | Paris - Camembert (1.1) | 199.0km |
| 21-03 | 89 | | Youngster Coast Challenge (1.2U) | 170.0km |
| 09-03 | 108 | | Grand Prix de la Ville de Lillers Souvenir Bruno Comini (1.2) | 197.0km |
| 08-03 | 34 | | Le Tour des 100 Communes (1.2) | 191.0km |
| 02-03 | 79 | | Faun Drome Classic (1.Pro) | 189.0km |
| 01-03 | DNF | | Faun-Ardèche Classic (1.Pro) | 165.0km |