| 10-10 | 107 | | Paris-Bourges (1.1) | |
| 06-10 | 51 | | Tour de Vendée (1.1) | 199.0km |
| 03-10 | DNF | | Sparkassen Münsterland Giro (1.HC) | |
| 22-09 | DNF | | Grand Prix d'Isbergues (1.1) | |
| 18-09 | 108 | | Grand Prix de Wallonie (1.1) | 205.0km |
| 15-09 | DNF | | Tour du Doubs (1.1) | |
| 08-09 | 98 | | GP de Fourmies (1.HC) | |
| 01-09 | DNF | | Bretagne Classic - Ouest-France (1.UWT) | 248.0km |
| | | Tour du Limousin (2.1) |
| 50 | | Klassement |
| 24-08 | 33 | 50 | Stage 4Confolens - Limoges (177.0km) | 177.0km |
| 23-08 | 72 | 70 | Stage 3Chamboulive - Beynat (176.0km) | 176.0km |
| 22-08 | 69 | 58 | Stage 2Rouffiac - Trélissac (182.0km) | 182.0km |
| 21-08 | 70 | 70 | Stage 1Condat-sur-Vienne - Guéret (172.0km) | 172.0km |
| 18-08 | 14 | | La Poly Normande (1.1) | 170.0km |
| | | Kreiz Breizh Elites (2.2) |
| 5 | | Klassement |
| 14 | | Punten |
| 05-08 | 24 | 5 | Stage 4Guingamp - Rostrenen (171.0km) | 171.0km |
| 04-08 | 21 | 6 | Stage 3Ploërdut - Carhaix (181.0km) | 181.0km |
| 03-08 | 4 | 3 | Stage 2Calanhel - Plouray (181.0km) | 181.0km |
| 02-08 | 4 | 15 | Stage 1Ploumagoar - Ploumagoar (12.0km) | 12.0km |
| 25-07 | 94 | | Grand Prix Cerami (1.1) | 209.0km |
| | | Int. Österreich-Rundfahrt (2.1) |
| 45 | | Klassement |
| 31 | | Punten |
| 18 | | Berg |
| 12-07 | 42 | 45 | Stage 6Kitzbühel - Kitzbühel (116.0km) | 116.0km |
| 11-07 | 6 | 46 | Stage 5Bruck - Kitzbühel (161.0km) | 161.0km |
| 10-07 | 63 | 47 | Stage 4Radstadt - Fuscher Törl (103.0km) | 103.0km |
| 09-07 | 17 | 16 | Stage 3Kirchschlag - Frohnleiten (176.0km) | 176.0km |
| 08-07 | 28 | 24 | Stage 2Zwettl - Wiener Neustadt (176.0km) | 176.0km |
| 07-07 | 54 | 24 | Stage 1Grieskirchen - Freistadt (138.0km) | 138.0km |
| 06-07 | 28 | 28 | PrologueWels - Wels (2.0km) | 2.0km |
| 30-06 | 50 | | National Road Championships - France (CN) | 252.0km |
| 27-06 | 49 | | National Road Championships - France TT (CN) | 47.0km |
| | | La Route d'Occitanie (2.1) |
| 60 | | Klassement |
| 23-06 | 33 | 60 | Stage 4Gers - Astarac Arros en Gascogne (154.0km) | 154.0km |
| 22-06 | 55 | 64 | Stage 3Arreau - Luchon (173.0km) | 173.0km |
| 21-06 | 83 | 78 | Stage 2Labruguière - Martres-Tolosane (187.0km) | 187.0km |
| 20-06 | 80 | 80 | Stage 1Gignac - Saint-Geniez-d Olt (175.0km) | 175.0km |
| 17-06 | 47 | | Mont Ventoux Denivelé Challenges (1.1) | 185.0km |
| | | 4 Jours de Dunkerque (2.HC) |
| 18-05 | DNS | | Stage 5Gravelines - Cassel (181.0km) | 181.0km |
| 17-05 | 75 | 31 | Stage 4Fort-Mahon-Plage - Le Portel (184.0km) | 184.0km |
| 16-05 | 39 | 46 | Stage 3Laon - Compiègne (156.0km) | 156.0km |
| 15-05 | 34 | 48 | Stage 2Wallers - Saint-Quentin (181.0km) | 181.0km |
| 14-05 | 72 | 74 | Stage 1Dunkerque - Condé sur l'Escaut (180.0km) | 180.0km |
| 22-04 | 48 | | Tro-Bro Léon (1.1) | 205.0km |
| 20-04 | 22 | | Tour du Finistère (1.1) | 196.0km |
| 16-04 | 34 | | Paris-Camembert (1.1) | 182.0km |
| | | Circuit Cycliste Sarthe - Pays de la Loire (2.1) |
| 20 | | Klassement |
| 12-04 | 23 | 20 | Stage 4Sillé-le-Guillaume - Sillé-le-Guillaume (183.0km) | 183.0km |
| 11-04 | 28 | 32 | Stage 3Royal Abbey of Epau - Mont des Avaloirs (184.0km) | 184.0km |
| 10-04 | 66 | 53 | Stage 2Freigné - Belligné (172.0km) | 172.0km |
| 09-04 | 31 | 34 | Stage 1La Châtaigneraie - La Châtaigneraie (180.0km) | 180.0km |
| 05-04 | 53 | | Route Adélie de Vitré (1.1) | 197.0km |
| 31-03 | 38 | | Cholet - Pays de la Loire (1.1) | 203.0km |
| 30-03 | 16 | | Classic Loire Atlantique (1.1) | 182.0km |
| 24-03 | 56 | | Grand Prix de Denain (1.HC) | 204.0km |
| | | Paris-Nice (2.UWT) |
| 83 | | Klassement |
| 24 | | Berg |
| 17-03 | 64 | 83 | Stage 8Nice - Nice (110.0km) | 110.0km |
| 16-03 | 73 | 88 | Stage 7Nice - Col de Turini (181.0km) | 181.0km |
| 15-03 | 139 | 103 | Stage 6Peynier - Brignoles (176.0km) | 176.0km |
| 14-03 | 49 | 79 | Stage 5Barbentane - Barbentane (25.0km) | 25.0km |
| 13-03 | 74 | 84 | Stage 4Vichy - Pélussin (210.0km) | 210.0km |
| 12-03 | 100 | 97 | Stage 3Cepoy - Moulines/Yzeure (200.0km) | 200.0km |
| 11-03 | 90 | 107 | Stage 2Les Bréviaires - Bellegarde (163.0km) | 163.0km |
| 10-03 | 119 | 119 | Stage 1Saint-Germain-en-Laye - Saint-Germain-en-Laye (138.0km) | 138.0km |
| 03-03 | 61 | | Royal Bernard Drome Classic (1.1) | |
| | | Tour of Oman (2.HC) |
| 76 | | Klassement |
| 21-02 | 83 | 76 | Stage 6Al Mouj Muscat - Matrah Corniche (135.0km) | 135.0km |
| 20-02 | 67 | 74 | Stage 5Samayil - Al Jabal Al Akhdar (152.0km) | 152.0km |
| 19-02 | 29 | 76 | Stage 4Yiti - Oman Convention & Exhibition Center (125.0km) | 125.0km |
| 18-02 | 88 | 89 | Stage 3Shati Al Qurum - Qurayyat (192.0km) | 192.0km |
| 17-02 | 57 | 66 | Stage 2Royal Cavalry Oman - Al Bustan (158.0km) | 158.0km |
| 16-02 | 118 | 118 | Stage 1Al Sawadi Beach - Suhar Corniche (138.0km) | 138.0km |
| | | La Tropicale Amissa Bongo (2.1) |
| 28 | | Klassement |
| 34 | | Punten |
| 27-01 | 47 | 28 | Stage 7Nkok - Libreville (140.0km) | 140.0km |
| 26-01 | 37 | 27 | Stage 6Bitam - Oyem (110.0km) | 110.0km |
| 25-01 | 21 | 21 | Stage 5Bitam - Mongomo (120.0km) | 120.0km |
| 24-01 | 17 | 21 | Stage 4Mitzic - Oyem (120.0km) | 120.0km |
| 23-01 | 19 | 21 | Stage 3Léconi - Franceville (100.0km) | 100.0km |
| 22-01 | 37 | 34 | Stage 2Franceville - Okondja (170.0km) | 170.0km |
| 21-01 | 39 | 40 | Stage 1Bongoville - Moanda (100.0km) | 100.0km |