| | | Vuelta a Burgos (2.Pro) |
| 04-08 | DNS | | Stage 3Quintana Martín Galíndez - Villarcayo (156.0km) | 156.0km |
| 03-08 | 115 | 14 | Stage 2Vivar del Cid - Villadiego (158.0km) | 158.0km |
| 02-08 | 10 | 10 | Stage 1Burgos - Burgos (157.0km) | 157.0km |
| 26-06 | 14 | | National Road Championships - France (CN) | 240.0km |
| | | La Route d'Occitanie - La Dépêche du Midi (2.1) |
| 19-06 | DNF | | Stage 4Les Angles - Auterive (188.0km) | 188.0km |
| 18-06 | 99 | 88 | Stage 3Sigean - Les Angles (188.0km) | 188.0km |
| 17-06 | 26 | 61 | Stage 2Belmont-sur-Rance - Roquefort-sur-Soulzon (35.0km) | 35.0km |
| 16-06 | 122 | 123 | Stage 1Séméac - L'Isle Jourdain (174.0km) | 174.0km |
| 06-06 | 55 | | Ronde van Limburg (1.2) | 202.0km |
| 05-06 | 19 | | Brussels Cycling Classic (1.Pro) | 203.0km |
| | | Boucles de la Mayenne (2.Pro) |
| 23 | | Klassement |
| 28 | | Punten |
| 5 | | Berg |
| 29-05 | 67 | 23 | Stage 4Martigné-sur-Mayenne - Laval (180.0km) | 180.0km |
| 28-05 | 67 | 38 | Stage 3Saint-Berthevin - Château-Gontier (188.0km) | 188.0km |
| 27-05 | 38 | 40 | Stage 2Jublains - Pré-en-Pail-Saint-Samson (171.0km) | 171.0km |
| 26-05 | 74 | 77 | Stage 1Saint-Pierre-des-Landes - Andouillé (180.0km) | 180.0km |
| 15-05 | 40 | | Tro-Bro Léon (1.Pro) | 207.0km |
| 14-05 | 29 | | Grand Prix du Morbihan (1.Pro) | |
| | | 4 Jours de Dunkerque (2.Pro) |
| 10 | | Klassement |
| 29 | | Punten |
| 08-05 | 13 | 10 | Stage 6Ardres - Dunkerque (182.0km) | 182.0km |
| 07-05 | 7 | 10 | Stage 5Roubaix - Cassel (183.0km) | 183.0km |
| 06-05 | 45 | 27 | Stage 4Mazingarbe - Aire-sur-la-Lys (174.0km) | 174.0km |
| 05-05 | 18 | 22 | Stage 3Péronne - Mont-Saint-Éloi (170.0km) | 170.0km |
| 04-05 | 37 | 27 | Stage 2Béthune - Maubeuge (181.0km) | 181.0km |
| 03-05 | 18 | 24 | Stage 1Dunkerque - Aniche (161.0km) | 161.0km |
| 01-05 | 35 | | Eschborn-Frankfurt (1.UWT) | 183.0km |
| 17-04 | DNF | | Paris-Roubaix (1.UWT) | 257.0km |
| 12-04 | 9 | | Paris - Camembert (1.1) | |
| 03-04 | 77 | | Ronde van Vlaanderen (1.UWT) | 272.0km |
| 27-03 | 66 | | Gent-Wevelgem in Flanders Fields (1.UWT) | 248.0km |
| 25-03 | 35 | | E3 Saxo Bank Classic (1.UWT) | 203.0km |
| 17-03 | 39 | | Grand Prix de Denain - Porte du Hainaut (1.Pro) | 200.0km |
| | | Paris-Nice (2.UWT) |
| 13-03 | DNS | | Stage 8Nice - Nice (115.0km) | 115.0km |
| 12-03 | 96 | 46 | Stage 7Nice - Col de Turini (155.0km) | 155.0km |
| 11-03 | 43 | 31 | Stage 6Courthézon - Aubagne (213.0km) | 213.0km |
| 10-03 | 64 | 36 | Stage 5Saint-Just-Saint-Rambert - Saint-Sauveur-de-Montagut (188.0km) | 188.0km |
| 09-03 | 43 | 42 | Stage 4Domérat - Montluçon (13.0km) | 13.0km |
| 08-03 | 89 | 50 | Stage 3Vierzon - Dun-le-Palestel (190.0km) | 190.0km |
| 07-03 | 60 | 34 | Stage 2Auffargis - Orléans (159.0km) | 159.0km |
| 06-03 | 12 | 12 | Stage 1Mantes-la-Ville - Mantes-la-Ville (159.0km) | 159.0km |
| 01-03 | 16 | | Le Samyn (1.1) | 209.0km |
| 27-02 | 62 | | Kuurne-Brussel-Kuurne (1.Pro) | 195.0km |
| 26-02 | 52 | | Omloop Het Nieuwsblad Elite (1.UWT) | 204.0km |
| | | Tour des Alpes Maritimes et du Var (2.1) |
| 20 | | Klassement |
| 25 | | Punten |
| 20-02 | 30 | 20 | Stage 3Villefranche-sur-Mer - Blausasc (113.0km) | 113.0km |
| 19-02 | 22 | 20 | Stage 2Puget-Théniers - La Turbie (149.0km) | 149.0km |
| 18-02 | 10 | 10 | Stage 1Saint-Raphaël - La Seyne-sur-Mer (176.0km) | 176.0km |
| | | Tour de la Provence (2.Pro) |
| 11 | | Klassement |
| 18 | | Punten |
| 13-02 | 25 | 11 | Stage 3Manosque - La Montagne de Lure (166.0km) | 166.0km |
| 12-02 | 12 | 9 | Stage 2Arles - Manosque (180.0km) | 180.0km |
| 11-02 | 11 | 11 | Stage 1Istres - Les Saintes-Maries-de-la-Mer (152.0km) | 152.0km |
| 10-02 | 35 | 35 | PrologueBerre l'Etang - Berre l'Etang (7.0km) | 7.0km |