| 13-10 | DNF | | Il Lombardia (1.UWT) | 241.0km |
| 10-10 | 87 | | Milano-Torino (1.HC) | 200.0km |
| 07-10 | 44 | | Paris - Tours Elite (1.HC) | 214.0km |
| 04-10 | 55 | | Paris-Bourges (1.1) | 193.0km |
| 27-09 | DNF | | Famenne Ardenne Classic (1.1) | 194.0km |
| 19-09 | DNF | | Giro della Toscana - Memorial Alfredo Martini (1.1) | |
| 16-09 | 66 | | Coppa Bernocchi (1.1) | 194.0km |
| 15-09 | DNF | | Coppa Agostoni (1.1) | 191.0km |
| 02-09 | DNF | | Antwerp Port Classic (1.1) | 207.0km |
| 01-09 | 102 | | Brussels Cycling Classic (1.HC) | 201.0km |
| | | Deutschland Tour (2.1) |
| 81 | | Klassement |
| 26-08 | 95 | 81 | Stage 4Lorsch - Stuttgart (200.0km) | 200.0km |
| 25-08 | 87 | 87 | Stage 3Trier - Merzig (176.0km) | 176.0km |
| 24-08 | 85 | 83 | Stage 2Bonn - Trier (210.0km) | 210.0km |
| 23-08 | 49 | 52 | Stage 1Koblenz - Bonn (154.0km) | 154.0km |
| | | Vuelta a Burgos (2.HC) |
| 40 | | Klassement |
| 11-08 | 48 | 40 | Stage 5Salas de los Infantes - Lagunas de Neila (120.0km) | 120.0km |
| 10-08 | 71 | 40 | Stage 4Monasterio de San Pedro Cardeña - Ciudad Romana de Clunia (165.0km) | 165.0km |
| 09-08 | 46 | | Stage 3Valle de Sedano - Espinosa de los Monteros (149.0km) | 149.0km |
| 08-08 | 44 | 44 | Stage 2Belorado - Castrojeriz (163.0km) | 163.0km |
| 07-08 | 46 | 46 | Stage 1Burgos - Burgos (151.0km) | 151.0km |
| 01-07 | DNF | | National Road Championships - France (CN) | 253.0km |
| | | Route d'Occitanie (2.1) |
| 17 | | Klassement |
| 20 | | Punten |
| 3 | | Berg |
| 17-06 | 30 | 17 | Stage 4Mireoix - Cazouls-lès-Béziers (192.0km) | 192.0km |
| 16-06 | 17 | 17 | Stage 3Prat-Bonrepaux - Les Monts d'Olmes (198.0km) | 198.0km |
| 15-06 | 28 | 31 | Stage 2Saint-Gaudens - Masseube Val de Gers (178.0km) | 178.0km |
| 14-06 | 45 | 47 | Stage 1Cap Découverte - Carmaux (168.0km) | 168.0km |
| | | Critérium du Dauphiné
(2.UWT) |
| 84 | | Klassement |
| 19 | | Berg |
| 10-06 | 93 | 84 | Stage 7Moûtiers - Saint-Gervais Mont-Blanc (129.0km) | 129.0km |
| 09-06 | 119 | 88 | Stage 6Frontenex - La Rosière Espace San Bernardo (110.0km) | 110.0km |
| 08-06 | 59 | 75 | Stage 5Grenoble - Valmorel (130.0km) | 130.0km |
| 07-06 | 63 | 77 | Stage 4Chazey-sur-Ain - Lans-en-Vercors (181.0km) | 181.0km |
| 06-06 | 18 | 110 | Stage 3Pont-de-Vaux - Louhans (35.0km) | 35.0km |
| 05-06 | 117 | 112 | Stage 2Montbrison - Belleville (180.0km) | 180.0km |
| 04-06 | 109 | 113 | Stage 1Valence - Saint-Just-Saint-Rambert (179.0km) | 179.0km |
| 03-06 | 143 | 143 | PrologueValence - Valence (6.0km) | 6.0km |
| | | Tour de l'Ain (2.1) |
| 15 | | Klassement |
| 20-05 | 26 | 15 | Stage 3Lélex - Col de la Faucille (133.0km) | 133.0km |
| 19-05 | 16 | 16 | Stage 2Courtes - Arbent (153.0km) | 153.0km |
| 18-05 | 20 | 20 | Stage 1Saint-Vulbas - Montrevel-en-Bresse (162.0km) | 162.0km |
| | | 4 Jours de Dunkerque (2.HC) |
| 12 | | Klassement |
| 19 | | Punten |
| 10 | | Berg |
| 13-05 | 42 | 12 | Stage 6Coulogne - Dunkerque (174.0km) | 174.0km |
| 12-05 | 13 | 8 | Stage 5Wormhout - Cassel (178.0km) | 178.0km |
| 11-05 | 49 | 6 | Stage 4Dainville - Mont-Saint-Éloi (172.0km) | 172.0km |
| 10-05 | 35 | 6 | Stage 3Fort-Mahon-Plage - Ecques (172.0km) | 172.0km |
| 09-05 | 82 | 4 | Stage 2Le Quesnoy - Soissons (173.0km) | 173.0km |
| 08-05 | 94 | 94 | Stage 1Dunkerque - La Bassée (165.0km) | 165.0km |
| 01-05 | DNF | | Eschborn-Frankfurt - Rund um den Finanzplatz (1.UWT) | 211.0km |
| | | Tour du Jura Cycliste (2.2) |
| 55 | | Klassement |
| 2 | | Punten |
| 4 | | Berg |
| 22-04 | 54 | 55 | Stage 2Villeneuve-sous-Pymont - Arbois (161.0km) | 161.0km |
| 21-04 | 55 | 55 | Stage 1Poligny - Salins-Les-Bains (163.0km) | 163.0km |
| 11-04 | 81 | | De Brabantse Pijl (1.HC) | 201.0km |
| 08-04 | 77 | | Paris-Roubaix (1.UWT) | 257.0km |
| 04-04 | DNF | | Scheldeprijs (1.HC) | 200.0km |
| 01-04 | 79 | | La Roue Tourangelle (1.1) | 200.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 113 | | Klassement |
| 4 | | Berg |
| 25-03 | 66 | 113 | Stage 4Fiorano Modenese - Sassuolo (12.0km) | 12.0km |
| 24-03 | 128 | 113 | Stage 3Crevalcore - Crevalcore (171.0km) | 171.0km |
| 23-03 | 101 | 91 | Stage 2Riccione - Sogliano al Rubicone (130.0km) | 130.0km |
| 22-03 | 19 | 81 | Stage 1bGatteo a Mare - Gatteo (13.0km) | 13.0km |
| 22-03 | 102 | 101 | Stage 1aGatteo - Gatteo (97.0km) | 97.0km |
| 18-03 | DNF | | Grand Prix de Denain - Porte du Hainaut (1.HC) | 199.0km |
| 11-03 | 76 | | Paris-Troyes (1.2) | |
| 25-02 | DNF | | Royal Bernard Drome Classic (1.1) | |
| 11-02 | DNF | | Trofeo Laigueglia (1.HC) | 203.0km |