| 08-10 | 13 | | Paris - Tours Elite (1.Pro) | 231.0km |
| 01-10 | DNF | | Lotto Famenne Ardenne Classic (1.1) | 188.0km |
| 28-09 | 10 | | Circuit Franco-Belge (1.Pro) | 190.0km |
| 24-09 | 29 | | UEC Road European Championships (CC) | 199.0km |
| 17-09 | 97 | | Grand Prix d'Isbergues (1.1) | |
| 16-09 | 2 | | Super 8 Classic / Primus Classic (1.Pro) | 203.0km |
| 13-09 | 80 | | Grand Prix de Wallonie (1.Pro) | 201.0km |
| 10-09 | 103 | | GP de Fourmies (1.Pro) | 197.0km |
| 03-09 | 62 | | Bretagne Classic - Ouest-France (1.UWT) | 179.0km |
| | | Deutschland Tour (2.Pro) |
| 43 | | Standings |
| 26 | | Points |
| 27-08 | 50 | 43 | Stage 4Hannover - Bremen | 180.0km |
| 26-08 | 68 | 44 | Stage 3Arnsberg - Essen | 174.0km |
| 25-08 | 43 | 39 | Stage 2Kassel - Winterberg | 190.0km |
| 24-08 | 20 | 20 | Stage 1Sankt-Wendel - Merzig | 178.0km |
| 23-08 | 30 | 30 | PrologueSankt-Wendel - Sankt-Wendel | 2.0km |
| 20-08 | 93 | | BEMER Cyclassics (1.UWT) | 205.0km |
| 15-08 | DNF | | Tour of Leuven - Memorial Jef Scherens (1.1) | 193.0km |
| | | Tour de France (2.UWT) |
| 94 | | Standings |
| 80 | | Points |
| 39 | | Mountain |
| 23-07 | 130 | 94 | Stage 21Saint-Quentin-en-Yvelines - Paris | 115.0km |
| 22-07 | 107 | 94 | Stage 20Belfort - Le Markstein | 133.0km |
| 21-07 | 19 | 90 | Stage 19Moirans-en-Montagne - Poligny | 173.0km |
| 20-07 | 50 | 97 | Stage 18Moûtiers - Bourg-en-Bresse | 185.0km |
| 19-07 | 63 | 100 | Stage 17Saint-Gervais Mont-Blanc - Courchevel | 166.0km |
| 18-07 | 110 | 102 | Stage 16Passy - Combloux | 22.0km |
| 16-07 | 111 | 103 | Stage 15Les Gets - Saint-Gervais Mont-Blanc | 179.0km |
| 15-07 | 107 | 103 | Stage 14Annemasse - Morzine | 152.0km |
| 14-07 | 95 | 108 | Stage 13Chatillon-sur-Chalaronne - Le Grand Colombier | 138.0km |
| 13-07 | 82 | 106 | Stage 12Roanne - Belleville-en-Beaujolais | 169.0km |
| 12-07 | 68 | | Stage 11Clermont-Ferrand - Moulins | 180.0km |
| 11-07 | 88 | 113 | Stage 10Vulcania (Auvergne) - Issoire | 167.0km |
| 09-07 | 114 | 120 | Stage 9Saint-Léonard-de-Noblat - Puy de Dôme | 182.0km |
| 08-07 | 103 | 117 | Stage 8Libourne - Limoges | 201.0km |
| 07-07 | 95 | 113 | Stage 7Mont-de-Marsan - Bordeaux | 170.0km |
| 06-07 | 94 | 113 | Stage 6Tarbes - Cauterets-Cambasque | 145.0km |
| 05-07 | 157 | 109 | Stage 5Pau - Laruns | 163.0km |
| 04-07 | 127 | 86 | Stage 4Dax - Nogaro | 182.0km |
| 03-07 | 139 | 80 | Stage 3Amorebieta - Bayonne | 193.0km |
| 02-07 | 119 | 77 | Stage 2Vitoria-Gasteiz - San Sebastián | 209.0km |
| 01-07 | 52 | 52 | Stage 1Bilbao - Bilbao | 182.0km |
| 25-06 | DNF | | National Road Championships - France (CN) | 224.0km |
| | | La Route d'Occitanie - La Dépêche du Midi (2.1) |
| 84 | | Standings |
| 18-06 | 75 | 84 | Stage 4Saint-Gaudens - Saint-Girons | 164.0km |
| 17-06 | 94 | 87 | Stage 3Gimont - Nistos Cap Nestès | 189.0km |
| 16-06 | 89 | 25 | Stage 2Cazouls-lès-Béziers - Graulhet | 182.0km |
| 15-06 | 25 | 25 | Stage 1Narbonne - Gruissan | 184.0km |
| 04-06 | DNF | | Brussels Cycling Classic (1.Pro) | 207.0km |
| 03-06 | 127 | | Heylen Vastgoed Heistse Pijl (1.1) | 198.0km |
| | | 4 Jours de Dunkerque (2.Pro) |
| 21-05 | DNF | | Stage 6Avion - Dunkerque | 180.0km |
| 20-05 | 45 | 35 | Stage 5Roubaix - Cassel | 183.0km |
| 19-05 | 52 | 21 | Stage 4Maubeuge - Achicourt | 173.0km |
| 18-05 | 50 | 32 | Stage 3Saint-Quentin - Saint-Quentin | 15.0km |
| 17-05 | 23 | 10 | Stage 2Compiègne - Laon | 165.0km |
| 16-05 | 99 | 7 | Stage 1Dunkerque - Abbeville | 193.0km |
| 07-05 | 11 | | Tro-Bro Léon (1.Pro) | 204.0km |
| 09-04 | 74 | | Paris-Roubaix (1.UWT) | 256.0km |
| 02-04 | 17 | | Ronde van Vlaanderen (1.UWT) | 273.0km |
| 29-03 | 138 | | Dwars door Vlaanderen (1.UWT) | 183.0km |
| 26-03 | 32 | | Gent-Wevelgem in Flanders Fields (1.UWT) | 260.0km |
| 24-03 | DNF | | E3 Saxo Bank Classic (1.UWT) | 204.0km |
| 18-03 | 9 | | Milano-Sanremo (1.UWT) | 294.0km |
| | | Paris-Nice (2.UWT) |
| 113 | | Standings |
| 12-03 | 116 | 113 | Stage 8Nice - Nice | 118.0km |
| 11-03 | 79 | 104 | Stage 7Nice - Col de la Couillole | 142.0km |
| 10-03 | | 120 | Stage 6Tourves - La Colle-sur-Loup | 197.0km |
| 09-03 | 124 | 120 | Stage 5Saint-Symphorien-sur-Coise - Saint-Paul-Trois-Châteaux | 212.0km |
| 08-03 | 108 | 123 | Stage 4Saint-Amand-Montrond - La Loge des Gardes | 164.0km |
| 07-03 | 15 | 106 | Stage 3Dampierre-en-Burly - Dampierre-en-Burly | 32.0km |
| 06-03 | 15 | 18 | Stage 2Bazainville - Fontainebleau | 163.0km |
| 05-03 | 18 | 21 | Stage 1La Verrière - La Verrière | 169.0km |
| 26-02 | 95 | | Kuurne-Brussel-Kuurne (1.Pro) | 193.0km |
| 25-02 | 96 | | Omloop Het Nieuwsblad Elite (1.UWT) | 207.0km |
| | | Tour des Alpes Maritimes et du Var (2.1) |
| 19-02 | DNF | | Stage 3Villefranche-sur-Mer - Vence | 139.0km |
| 18-02 | 4 | 6 | Stage 2Mandelieu-la-Napoule - Antibes | 179.0km |
| 17-02 | 6 | 7 | Stage 1Saint-Raphaël - Ramatuelle | 197.0km |
| | | Etoile de Bessèges - Tour du Gard
(2.1) |
| 36 | | Standings |
| 05-02 | 75 | 36 | Stage 5Alès - Alès | 10.0km |
| 04-02 | 49 | 36 | Stage 4Saint-Christol-lès-Alès - Le Mont Bouquet | 147.0km |
| 03-02 | 27 | 29 | Stage 3Bessèges - Bessèges | 169.0km |
| 01-02 | 75 | 75 | Stage 1Bellegarde - Bellegarde | 162.0km |
| 15-01 | 24 | | French National Championships CX (CN) | |