| 30-12 | 11 | | Coupe de France de Cyclo-Cross #3 - Flamanville (C2) | |
| 06-10 | 10 | | Tour de Vendée (1.1) | 206.0km |
| 02-10 | DNF | | Binche - Chimay - Binche (1.1) | 197.0km |
| 23-09 | DNF | | Grand Prix d'Isbergues - Pas de Calais (1.1) | 199.0km |
| 22-09 | 87 | | Tour de l'Eurométropole (1.HC) | 206.0km |
| 09-09 | 88 | | Grand Prix Cycliste de Montréal (1.UWT) | 195.0km |
| 07-09 | 96 | | Grand Prix Cycliste de Québec (1.UWT) | 201.0km |
| 02-09 | 73 | | GP de Fourmies / La Voix du Nord (1.HC) | |
| 26-08 | DNF | | Bretagne Classic - Ouest-France (1.UWT) | 256.0km |
| | | Tour du Poitou Charentes (2.1) |
| 31 | | Standings |
| 30 | | Points |
| 6 | | Mountain |
| 24-08 | 34 | 31 | Stage 5Brioux-sur-Boutonne - Poitiers | 156.0km |
| 23-08 | 61 | 19 | Stage 3Gença - Couhe | 97.0km |
| 23-08 | 50 | 41 | Stage 4Champagné-Saint-Hilaire - Couhe | 22.0km |
| 22-08 | 41 | 38 | Stage 2Segonzac - Melle | 189.0km |
| 21-08 | 46 | 49 | Stage 1Jonzac - Cognac | 192.0km |
| 19-08 | 42 | | EuroEyes Cyclassics Hamburg (1.UWT) | 216.0km |
| 05-08 | 63 | | La Poly Normande (1.1) | |
| 01-07 | 44 | | National Road Championships - France (CN) | 253.0km |
| 24-06 | 3 | | Paris-Chauny (classique) (1.2) | |
| | | Route d'Occitanie (2.1) |
| 43 | | Standings |
| 16 | | Points |
| 6 | | Mountain |
| 17-06 | 37 | 43 | Stage 4Mireoix - Cazouls-lès-Béziers | 192.0km |
| 16-06 | 72 | 65 | Stage 3Prat-Bonrepaux - Les Monts d'Olmes | 198.0km |
| 15-06 | 29 | 4 | Stage 2Saint-Gaudens - Masseube Val de Gers | 178.0km |
| 14-06 | 42 | 44 | Stage 1Cap Découverte - Carmaux | 168.0km |
| | | Giro d'Italia (2.UWT) |
| 48 | | Standings |
| 97 | | Points |
| 36 | | Mountain |
| 12 | | Youth |
| 27-05 | 39 | 48 | Stage 21Roma - Roma | 115.0km |
| 26-05 | 114 | 49 | Stage 20Susa - Breuil-Cervinia | 214.0km |
| 25-05 | 64 | 37 | Stage 19Venaria Reale - Bardonecchia | 184.0km |
| 24-05 | 36 | 40 | Stage 18Abbiategrasso - Prato Nevoso | 196.0km |
| 23-05 | 18 | 42 | Stage 17Riva del Garda - Iseo | 155.0km |
| 22-05 | 81 | 43 | Stage 16Trento - Rovereto | 34.0km |
| 20-05 | 50 | 43 | Stage 15Tolmezzo - Sappada | 176.0km |
| 19-05 | 41 | 43 | Stage 14San Vito al Tagliamento - Monte Zoncolan | 186.0km |
| 18-05 | 23 | 47 | Stage 13Ferrara - Nervesa della Battaglia | 180.0km |
| 17-05 | 136 | 50 | Stage 12Osimo - Imola (Autodromo Enzo e Dino Ferrari) | 214.0km |
| 16-05 | 45 | 48 | Stage 11Assisi - Osimo | 156.0km |
| 15-05 | 39 | 50 | Stage 10Penne - Gualdo Tadino | 239.0km |
| 13-05 | 39 | 57 | Stage 9Pesco Sannita - Campo Imperatore | 225.0km |
| 12-05 | 49 | 73 | Stage 8Praia a Mare - Montevergine Di Mercogliano | 209.0km |
| 11-05 | 35 | 95 | Stage 7Pizzo - Praia a Mare | 159.0km |
| 10-05 | 73 | 97 | Stage 6Caltanissetta - Etna | 164.0km |
| 09-05 | 48 | 134 | Stage 5Agrigento - Santa Ninfa | 153.0km |
| 08-05 | 164 | 164 | Stage 4Catania - Caltagirone | 198.0km |
| 06-05 | 99 | 104 | Stage 3Be'er Sheva - Eilat | 229.0km |
| 05-05 | 48 | 98 | Stage 2Haifa - Tel Aviv | 167.0km |
| 04-05 | 128 | 128 | Stage 1Jerusalem - Jerusalem | 9.0km |
| | | Tour of the Alps (2.HC) |
| 56 | | Standings |
| 7 | | Points |
| 10 | | Mountain |
| 20-04 | 37 | 56 | Stage 5Rattenberg - Innsbruck | 161.0km |
| 19-04 | 113 | 68 | Stage 4Chiusa - Lienz | 134.0km |
| 18-04 | 45 | 63 | Stage 3Ora - Merano | 138.0km |
| 17-04 | 98 | 68 | Stage 2Lavarone - Alpe di Pampeago | 145.0km |
| 16-04 | 56 | 56 | Stage 1Arco - Folgaria | 134.0km |
| | | Circuit Cycliste Sarthe-Pays de la Loire (2.1) |
| 8 | | Standings |
| 23 | | Points |
| 06-04 | 19 | 8 | Stage 4Brûlon - Sablé-sur-Sarthe | 183.0km |
| 05-04 | 19 | 7 | Stage 3Abbaye de l'Epau - Pré-en-Pail-Saint-Samson | 199.0km |
| 04-04 | 10 | 11 | Stage 2Riaillé - Ancenis | 183.0km |
| 03-04 | 14 | 17 | Stage 1Abbaye de l'Epau - Baugé-en-Anjou | 193.0km |
| 01-04 | 22 | | La Roue Tourangelle (1.1) | 200.0km |
| 30-03 | 46 | | Route Adélie de Vitré (1.1) | |
| 25-03 | 61 | | Cholet - Pays De Loire (1.1) | |
| 24-03 | 21 | | Classic Loire Atlantique (1.1) | |
| 18-03 | 78 | | Grand Prix de Denain - Porte du Hainaut (1.HC) | 199.0km |
| 03-03 | OTL | | Strade Bianche (1.UWT) | 184.0km |
| 27-02 | DNF | | Le Samyn (1.1) | 200.0km |
| 25-02 | 37 | | Kuurne-Brussel-Kuurne (1.HC) | 200.0km |
| | | 50ème Tour Cycliste International du Haut Var Matin (2.1) |
| 27 | | Standings |
| 19 | | Points |
| 18-02 | 23 | 27 | Stage 2Vidauban - Flayosc | 188.0km |
| 17-02 | 41 | 41 | Stage 1Le Cannet des Maures - Fayence | 169.0km |
| 11-02 | 11 | | Trofeo Laigueglia (1.HC) | 203.0km |
| | | Etoile de Bessèges (2.1) |
| 34 | | Standings |
| 16 | | Mountain |
| 04-02 | 29 | 34 | Stage 5Alès - Alès | 10.0km |
| 03-02 | 54 | 49 | Stage 4Chusclan - Laudun-l'Ardoise | 153.0km |
| 02-02 | 28 | 45 | Stage 3Bessèges - Bessèges | 152.0km |
| 01-02 | 56 | 65 | Stage 2Nîmes - Générac | 151.0km |
| 31-01 | 67 | 69 | Stage 1Bellegarde - Beaucaire | 162.0km |
| 28-01 | 84 | | Grand Prix Cycliste la Marseillaise (1.1) | 145.0km |