| 09-10 | 29 | | Paris - Tours Elite (1.Pro) | 213.0km |
| 06-10 | 34 | | Paris - Bourges (1.1) | 198.0km |
| 02-10 | 19 | | Tour de Vendée (1.1) | 206.0km |
| 25-09 | 34 | | Classique Paris-Chauny (1.1) | 203.0km |
| | | Skoda Tour de Luxembourg (2.Pro) |
| 64 | | Klassement |
| 17-09 | 29 | 64 | Stage 5Mersch - Luxembourg (178.0km) | 178.0km |
| 16-09 | 71 | 72 | Stage 4Remich - Remich (26.0km) | 26.0km |
| 15-09 | 77 | 77 | Stage 3Rosport - Diekirch (188.0km) | 188.0km |
| 14-09 | 95 | 74 | Stage 2Junglinster - Schifflange (163.0km) | 163.0km |
| 13-09 | 66 | 66 | Stage 1Luxembourg - Luxembourg (163.0km) | 163.0km |
| 28-08 | 99 | | Bretagne Classic - Ouest-France (1.UWT) | 254.0km |
| | | Tour du Limousin (2.1) |
| 64 | | Klassement |
| 19-08 | 9 | 64 | Stage 4Saint-Laurent-sur-Gorre - Limoges (174.0km) | 174.0km |
| 18-08 | 89 | 82 | Stage 3Donzenac - Malemort (181.0km) | 181.0km |
| 17-08 | 30 | 22 | Stage 2Périgueux - Ribérac (184.0km) | 184.0km |
| 16-08 | 10 | 15 | Stage 1Verneuil-sur-Vienne - La Souterraine (176.0km) | 176.0km |
| 14-08 | 14 | | La Polynormande (1.1) | 168.0km |
| 10-08 | 12 | | Eurométropole Tour (1.Pro) | 175.0km |
| 31-07 | 4 | | Crito'Star (CRTP) | |
| | | Tour de France (2.UWT) |
| 80 | | Klassement |
| 93 | | Punten |
| 24-07 | 21 | 80 | Stage 21Paris - Paris (112.0km) | 112.0km |
| 23-07 | 86 | 82 | Stage 20Lacapelle-Marival - Rocamadour (40.0km) | 40.0km |
| 22-07 | 62 | 82 | Stage 19Castelnaudary - Cahors (188.0km) | 188.0km |
| 21-07 | 56 | 84 | Stage 18Lourdes - Hautacam (143.0km) | 143.0km |
| 20-07 | 64 | 91 | Stage 17Saint-Gaudens - Peyragudes (129.0km) | 129.0km |
| 19-07 | 42 | 92 | Stage 16Carcassonne - Foix (178.0km) | 178.0km |
| 17-07 | 24 | 109 | Stage 15Rodez - Carcassonne (202.0km) | 202.0km |
| 16-07 | 69 | 119 | Stage 14Saint-Étienne - Mende (192.0km) | 192.0km |
| 15-07 | 60 | 121 | Stage 13Bourg-d'Oisans - Saint-Étienne (192.0km) | 192.0km |
| 14-07 | 129 | 124 | Stage 12Briançon - L'Alpe-d'Huez (165.0km) | 165.0km |
| 13-07 | 111 | 120 | Stage 11Albertville - Col du Granon (151.0km) | 151.0km |
| 12-07 | 125 | 123 | Stage 10Morzine - Megève (148.0km) | 148.0km |
| 10-07 | 98 | 118 | Stage 9Aigle - Les Portes du Soleil (192.0km) | 192.0km |
| 09-07 | 163 | 111 | Stage 8Dôle - Lausanne (186.0km) | 186.0km |
| 08-07 | 71 | 77 | Stage 7Tomblaine - La Planche des Belles Filles (176.0km) | 176.0km |
| 07-07 | 65 | 96 | Stage 6Binche - Longwy (219.0km) | 219.0km |
| 06-07 | 123 | 110 | Stage 5Lille - Arenberg (157.0km) | 157.0km |
| 05-07 | 60 | 98 | Stage 4Dunkerque - Calais (171.0km) | 171.0km |
| 03-07 | 126 | 134 | Stage 3Vejle - Sønderborg (182.0km) | 182.0km |
| 02-07 | 129 | 148 | Stage 2Roskilde - Nyborg (202.0km) | 202.0km |
| 01-07 | 148 | 148 | Stage 1København (Copenhagen) - København (Copenhagen) (13.0km) | 13.0km |
| 26-06 | 25 | | National Road Championships - France (CN) | 240.0km |
| | | La Route d'Occitanie - La Dépêche du Midi (2.1) |
| 41 | | Klassement |
| 30 | | Punten |
| 19-06 | 68 | 41 | Stage 4Les Angles - Auterive (188.0km) | 188.0km |
| 18-06 | 44 | 43 | Stage 3Sigean - Les Angles (188.0km) | 188.0km |
| 17-06 | 11 | 8 | Stage 2Belmont-sur-Rance - Roquefort-sur-Soulzon (35.0km) | 35.0km |
| 16-06 | 20 | 21 | Stage 1Séméac - L'Isle Jourdain (174.0km) | 174.0km |
| 12-06 | 92 | | Elfstedenronde Brugge (1.1) | 192.0km |
| 11-06 | 37 | | Dwars door het Hageland (1.Pro) | 181.0km |
| | | Boucles de la Mayenne (2.Pro) |
| 34 | | Klassement |
| 39 | | Punten |
| 22 | | Berg |
| 29-05 | 42 | 34 | Stage 4Martigné-sur-Mayenne - Laval (180.0km) | 180.0km |
| 28-05 | 13 | 33 | Stage 3Saint-Berthevin - Château-Gontier (188.0km) | 188.0km |
| 27-05 | 32 | 37 | Stage 2Jublains - Pré-en-Pail-Saint-Samson (171.0km) | 171.0km |
| 26-05 | 64 | 67 | Stage 1Saint-Pierre-des-Landes - Andouillé (180.0km) | 180.0km |
| 21-05 | 6 | | Tour du Finistère (1.1) | 193.0km |
| 15-05 | 33 | | Tro-Bro Léon (1.Pro) | 207.0km |
| | | 4 Jours de Dunkerque (2.Pro) |
| 11 | | Klassement |
| 30 | | Punten |
| 8 | | Berg |
| 08-05 | 16 | 11 | Stage 6Ardres - Dunkerque (182.0km) | 182.0km |
| 07-05 | 15 | 11 | Stage 5Roubaix - Cassel (183.0km) | 183.0km |
| 06-05 | 57 | 11 | Stage 4Mazingarbe - Aire-sur-la-Lys (174.0km) | 174.0km |
| 05-05 | 28 | 8 | Stage 3Péronne - Mont-Saint-Éloi (170.0km) | 170.0km |
| 04-05 | 28 | 6 | Stage 2Béthune - Maubeuge (181.0km) | 181.0km |
| 03-05 | 29 | 4 | Stage 1Dunkerque - Aniche (161.0km) | 161.0km |
| 26-02 | DNF | | Omloop Het Nieuwsblad Elite (1.UWT) | 204.0km |
| | | Tour des Alpes Maritimes et du Var (2.1) |
| 48 | | Klassement |
| 20-02 | 64 | 48 | Stage 3Villefranche-sur-Mer - Blausasc (113.0km) | 113.0km |
| 19-02 | 40 | 37 | Stage 2Puget-Théniers - La Turbie (149.0km) | 149.0km |
| 18-02 | 74 | 41 | Stage 1Saint-Raphaël - La Seyne-sur-Mer (176.0km) | 176.0km |
| | | Saudi Tour (2.1) |
| 12 | | Klassement |
| 26 | | Punten |
| 05-02 | 23 | 12 | Stage 5Al-'Ula Old Town - Al-'Ula Old Town (138.0km) | 138.0km |
| 04-02 | 17 | 11 | Stage 4Winter Park - Skyviews of Harrat Uwayrid (149.0km) | 149.0km |
| 03-02 | 13 | 9 | Stage 3Tayma Hadaj Well - Al-'Ula Old Town (181.0km) | 181.0km |
| 02-02 | 9 | 8 | Stage 2Taibah University - Abu Rakah (163.0km) | 163.0km |
| 01-02 | 17 | 20 | Stage 1Winter Park - Winter Park (198.0km) | 198.0km |