| 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 | | Klassement |
| 26 | | Punten |
| 27-08 | 50 | 43 | Stage 4Hannover - Bremen (180.0km) | 180.0km |
| 26-08 | 68 | 44 | Stage 3Arnsberg - Essen (174.0km) | 174.0km |
| 25-08 | 43 | 39 | Stage 2Kassel - Winterberg (190.0km) | 190.0km |
| 24-08 | 20 | 20 | Stage 1Sankt-Wendel - Merzig (178.0km) | 178.0km |
| 23-08 | 30 | 30 | PrologueSankt-Wendel - Sankt-Wendel (2.0km) | 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 | | Klassement |
| 80 | | Punten |
| 39 | | Berg |
| 23-07 | 130 | 94 | Stage 21Saint-Quentin-en-Yvelines - Paris (115.0km) | 115.0km |
| 22-07 | 107 | 94 | Stage 20Belfort - Le Markstein (133.0km) | 133.0km |
| 21-07 | 19 | 90 | Stage 19Moirans-en-Montagne - Poligny (173.0km) | 173.0km |
| 20-07 | 50 | 97 | Stage 18Moûtiers - Bourg-en-Bresse (185.0km) | 185.0km |
| 19-07 | 63 | 100 | Stage 17Saint-Gervais Mont-Blanc - Courchevel (166.0km) | 166.0km |
| 18-07 | 110 | 102 | Stage 16Passy - Combloux (22.0km) | 22.0km |
| 16-07 | 111 | 103 | Stage 15Les Gets - Saint-Gervais Mont-Blanc (179.0km) | 179.0km |
| 15-07 | 107 | 103 | Stage 14Annemasse - Morzine (152.0km) | 152.0km |
| 14-07 | 95 | 108 | Stage 13Chatillon-sur-Chalaronne - Le Grand Colombier (138.0km) | 138.0km |
| 13-07 | 82 | 106 | Stage 12Roanne - Belleville-en-Beaujolais (169.0km) | 169.0km |
| 12-07 | 68 | | Stage 11Clermont-Ferrand - Moulins (180.0km) | 180.0km |
| 11-07 | 88 | 113 | Stage 10Vulcania (Auvergne) - Issoire (167.0km) | 167.0km |
| 09-07 | 114 | 120 | Stage 9Saint-Léonard-de-Noblat - Puy de Dôme (182.0km) | 182.0km |
| 08-07 | 103 | 117 | Stage 8Libourne - Limoges (201.0km) | 201.0km |
| 07-07 | 95 | 113 | Stage 7Mont-de-Marsan - Bordeaux (170.0km) | 170.0km |
| 06-07 | 94 | 113 | Stage 6Tarbes - Cauterets-Cambasque (145.0km) | 145.0km |
| 05-07 | 157 | 109 | Stage 5Pau - Laruns (163.0km) | 163.0km |
| 04-07 | 127 | 86 | Stage 4Dax - Nogaro (182.0km) | 182.0km |
| 03-07 | 139 | 80 | Stage 3Amorebieta - Bayonne (193.0km) | 193.0km |
| 02-07 | 119 | 77 | Stage 2Vitoria-Gasteiz - San Sebastián (209.0km) | 209.0km |
| 01-07 | 52 | 52 | Stage 1Bilbao - Bilbao (182.0km) | 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 | | Klassement |
| 18-06 | 75 | 84 | Stage 4Saint-Gaudens - Saint-Girons (164.0km) | 164.0km |
| 17-06 | 94 | 87 | Stage 3Gimont - Nistos Cap Nestès (189.0km) | 189.0km |
| 16-06 | 89 | 25 | Stage 2Cazouls-lès-Béziers - Graulhet (182.0km) | 182.0km |
| 15-06 | 25 | 25 | Stage 1Narbonne - Gruissan (184.0km) | 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) | 180.0km |
| 20-05 | 45 | 35 | Stage 5Roubaix - Cassel (183.0km) | 183.0km |
| 19-05 | 52 | 21 | Stage 4Maubeuge - Achicourt (173.0km) | 173.0km |
| 18-05 | 50 | 32 | Stage 3Saint-Quentin - Saint-Quentin (15.0km) | 15.0km |
| 17-05 | 23 | 10 | Stage 2Compiègne - Laon (165.0km) | 165.0km |
| 16-05 | 99 | 7 | Stage 1Dunkerque - Abbeville (193.0km) | 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 | | Klassement |
| 12-03 | 116 | 113 | Stage 8Nice - Nice (118.0km) | 118.0km |
| 11-03 | 79 | 104 | Stage 7Nice - Col de la Couillole (142.0km) | 142.0km |
| 10-03 | | 120 | Stage 6Tourves - La Colle-sur-Loup (197.0km) | 197.0km |
| 09-03 | 124 | 120 | Stage 5Saint-Symphorien-sur-Coise - Saint-Paul-Trois-Châteaux (212.0km) | 212.0km |
| 08-03 | 108 | 123 | Stage 4Saint-Amand-Montrond - La Loge des Gardes (164.0km) | 164.0km |
| 07-03 | 15 | 106 | Stage 3Dampierre-en-Burly - Dampierre-en-Burly (32.0km) | 32.0km |
| 06-03 | 15 | 18 | Stage 2Bazainville - Fontainebleau (163.0km) | 163.0km |
| 05-03 | 18 | 21 | Stage 1La Verrière - La Verrière (169.0km) | 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) | 139.0km |
| 18-02 | 4 | 6 | Stage 2Mandelieu-la-Napoule - Antibes (179.0km) | 179.0km |
| 17-02 | 6 | 7 | Stage 1Saint-Raphaël - Ramatuelle (197.0km) | 197.0km |
| | | Etoile de Bessèges - Tour du Gard
(2.1) |
| 36 | | Klassement |
| 05-02 | 75 | 36 | Stage 5Alès - Alès (10.0km) | 10.0km |
| 04-02 | 49 | 36 | Stage 4Saint-Christol-lès-Alès - Le Mont Bouquet (147.0km) | 147.0km |
| 03-02 | 27 | 29 | Stage 3Bessèges - Bessèges (169.0km) | 169.0km |
| 01-02 | 75 | 75 | Stage 1Bellegarde - Bellegarde (162.0km) | 162.0km |
| 15-01 | 24 | | French National Championships CX (CN) | |