| 26-12 | 53 | | Telenet UCI Cyclo-cross World Cup Heusden-Zolder (CDM) | |
| 23-12 | 34 | | Hansgrohe Superprestige Diegem (C1) | |
| 11-12 | 13 | | Coupe de France de Cyclo-Cross #3 - Nommay (C1) | |
| 09-10 | 109 | | Paris - Tours Elite (1.HC) | 252.0km |
| 06-10 | 39 | | Paris-Bourges (1.1) | 190.0km |
| 02-10 | 58 | | Tour de Vendée (1.1) | 203.0km |
| 18-09 | DNF | | Grand Prix d'Isbergues - Pas de Calais (1.1) | 204.0km |
| 11-09 | 18 | | Tour du Doubs (1.1) | |
| 04-09 | 88 | | GP de Fourmies (1.HC) | |
| | | Tour du Poitou Charentes (2.1) |
| 26-08 | DNF | | Stage 5Thouars - Poitiers (171.0km) | 171.0km |
| 25-08 | 56 | 46 | Stage 4Saint-Sauveur - Chatellerault (23.0km) | 23.0km |
| 25-08 | 54 | 15 | Stage 3Thuré - Chatellerault (95.0km) | 95.0km |
| 24-08 | 30 | 12 | Stage 2La Rochelle - Niort (179.0km) | 179.0km |
| 23-08 | 42 | 7 | Stage 1Angoulême - Puilboreau (189.0km) | 189.0km |
| | | Tour du Limousin (2.1) |
| 53 | | Klassement |
| 1 | | Berg |
| 19-08 | 96 | 53 | Stage 4Saint-Léonard-de-Noblat - Limoges (185.0km) | 185.0km |
| 18-08 | 58 | 43 | Stage 3Le Lonzac - Liginiac (179.0km) | 179.0km |
| 17-08 | 74 | 10 | Stage 2Dun-le-Palestel - Auzances (173.0km) | 173.0km |
| 16-08 | 53 | 11 | Stage 1Limoges - Oradour sur Glane (165.0km) | 165.0km |
| 31-07 | 40 | | La Poly Normande (1.1) | |
| 24-07 | 80 | | Grand Prix de la ville de Pérenchies (1.2) | |
| 26-06 | 23 | | National Road Championships - France (CN) | 248.0km |
| | | Route du Sud (2.1) |
| 60 | | Klassement |
| 19-06 | 43 | 60 | Stage 5Clermont - Poutguilles (154.0km) | 154.0km |
| 18-06 | 79 | 73 | Stage 4Saint-Gaudens - Val D'Azun (184.0km) | 184.0km |
| 17-06 | 27 | 37 | Stage 2Saint-Pierre-de-Trivisy - Albi (92.0km) | 92.0km |
| 17-06 | 14 | 12 | Stage 3Albi - Albi (13.0km) | 13.0km |
| 16-06 | 52 | 52 | Stage 1Saint-Pons-de-Thomières - Bessières (196.0km) | 196.0km |
| | | Ronde de l'Oise (2.2) |
| 10-06 | DNF | | Stage 2Villers-Saint-Paul - Lacroix-Saint-Ouen (210.0km) | 210.0km |
| 09-06 | 80 | 80 | Stage 1Plailly - Ribécourt-Dreslincourt (136.0km) | 136.0km |
| | | Boucles de la Mayenne (2.1) |
| 04-06 | DNF | | Stage 2Saint-Berthevin - Craon (180.0km) | 180.0km |
| 03-06 | 61 | 31 | Stage 1Laval - Villaines-la-Juhel (190.0km) | 190.0km |
| 02-06 | 33 | 33 | PrologueLaval - Laval (4.0km) | 4.0km |
| 29-05 | DNF | | Boucles de l'Aulne - Châteaulin (1.1) | 168.0km |
| 28-05 | 48 | | Grand Prix de Plumelec-Morbihan (1.1) | |
| 22-05 | 66 | | Grand Prix de la Somme (1.1) | 195.0km |
| | | Rhône-Alpes Isère Tour (2.2) |
| 16 | | Klassement |
| 15-05 | 33 | 16 | Stage 4Jons - Charvieu-Chavagneux (168.0km) | 168.0km |
| 14-05 | 18 | 16 | Stage 3Saint-Maurice-l'Exil - Jons (153.0km) | 153.0km |
| 13-05 | 15 | 19 | Stage 2Crachier - Saint-Maurice-l'Exil (170.0km) | 170.0km |
| 12-05 | 62 | 62 | Stage 1Charvieu-Chavagneux - Ruy-Montceau (135.0km) | 135.0km |
| | | 4 Jours de Dunkerque (2.HC) |
| 13 | | Klassement |
| 08-05 | 38 | 13 | Stage 5Hondschoote - Dunkerque (160.0km) | 160.0km |
| 07-05 | 15 | 13 | Stage 4Audruicq - Audruicq (178.0km) | 178.0km |
| 06-05 | 50 | 48 | Stage 3Béthune - Saint-Pol-sur-Ternoise (174.0km) | 174.0km |
| 05-05 | 46 | 72 | Stage 2Aniche - Aniche (188.0km) | 188.0km |
| 04-05 | 88 | 90 | Stage 1Dunkerque - Gravelines (191.0km) | 191.0km |
| 17-04 | 31 | | Tro-Bro Léon (1.1) | 203.0km |
| 14-04 | DNF | | GP de Denain - Porte du Hainaut (1.HC) | |
| | | Circuit des Ardennes International (2.2) |
| 4 | | Klassement |
| 1 | | Berg |
| 10-04 | 31 | 4 | Stage 3bCharleville-Mézières - Charleville-Mézières (97.0km) | 97.0km |
| 10-04 | 5 | 5 | Stage 3aSedan - Sedan (85.0km) | 85.0km |
| 09-04 | 15 | 4 | Stage 2Fumay - Revin (173.0km) | 173.0km |
| 08-04 | 89 | 6 | Stage 1Rocquigny - Poix-Terron (166.0km) | 166.0km |
| 03-04 | DNF | | Paris-Camembert (1.1) | |
| 01-04 | 35 | | Route Adélie de Vitré (1.1) | |
| | | Critérium International (2.HC) |
| 25 | | Klassement |
| 27-03 | 26 | 25 | Stage 3Porto-Vecchio - Col de l'Ospedale (171.0km) | 171.0km |
| 26-03 | 52 | 48 | Stage 2Porto-Vecchio - Porto-Vecchio (7.0km) | 7.0km |
| 26-03 | 80 | 80 | Stage 1Porto-Vecchio - Porto-Vecchio (91.0km) | 91.0km |
| 19-03 | 34 | | Classic Loire Atlantique (1.1) | 184.0km |
| 13-03 | 88 | | Paris-Troyes (1.2) | 168.0km |
| 28-02 | DNF | | La Drome Classic (1.1) | |
| | | Tour La Provence (2.1) |
| 30 | | Klassement |
| 25-02 | 63 | 30 | Stage 3La Ciotat - Marseille (165.0km) | 165.0km |
| 24-02 | 43 | 30 | Stage 2Miramas - Istres (199.0km) | 199.0km |
| 23-02 | 33 | 33 | Stage 1Aubagne - Cassis (175.0km) | 175.0km |
| | | Tour Cycliste International du Haut Var-matin (2.1) |
| 54 | | Klassement |
| 21-02 | 61 | 54 | Stage 2Draguignan - Draguignan (206.0km) | 206.0km |
| 20-02 | 64 | 64 | Stage 1Le Cannet des Maures - Bagnols-en-Forêt (155.0km) | 155.0km |
| | | Etoile de Bessèges (2.1) |
| 22 | | Klassement |
| 07-02 | 95 | 22 | Stage 5Alès - Alès (11.0km) | 11.0km |
| 06-02 | 31 | 15 | Stage 4Tavel - Laudun-l'Ardoise (148.0km) | 148.0km |
| 05-02 | 8 | 9 | Stage 3Bessèges - Bessèges (152.0km) | 152.0km |
| 04-02 | 23 | 30 | Stage 2Nîmes - Méjannes le Clap (153.0km) | 153.0km |
| 03-02 | 66 | 65 | Stage 1Bellegarde - Beaucaire (156.0km) | 156.0km |
| 31-01 | 77 | | Grand Prix Cycliste la Marseillaise (1.1) | 145.0km |
| 10-01 | 7 | | French National Championships CX (CN) | |