| | | Škoda Tour de Luxembourg (2.Pro) |
| 45 | | Klassement |
| 21 | | Punten |
| 21 | | Jongeren |
| 21-09 | 52 | 45 | Stage 5Mersch - Luxembourg (176.0km) | 176.0km |
| 20-09 | 94 | 54 | Stage 4Niederanven - Niederanven (26.0km) | 26.0km |
| 19-09 | 44 | 39 | Stage 3Mertert - Vianden (170.0km) | 170.0km |
| 18-09 | 6 | 13 | Stage 2Remich - Mamer (168.0km) | 168.0km |
| 17-09 | 37 | 37 | Stage 1Luxembourg - Luxembourg (152.0km) | 152.0km |
| | | Tour du Limousin (2.1) |
| 18 | | Klassement |
| 9 | | Jongeren |
| 22-08 | 9 | 18 | Stage 4Bonneval - Limoges (164.0km) | 164.0km |
| 21-08 | 29 | 18 | Stage 3Saint-Jal - Masseret (182.0km) | 182.0km |
| 20-08 | 21 | 22 | Stage 2Thiviers - Grèzes (174.0km) | 174.0km |
| 19-08 | 14 | 18 | Stage 1Panazol - La Courtine (184.0km) | 184.0km |
| 17-08 | 10 | | La Polynormande (1.1) | 168.0km |
| | | Tour Alsace (2.2) |
| 59 | | Klassement |
| 22 | | Berg |
| 03-08 | 83 | 59 | Stage 5Ribeauville - Champ du Feu (135.0km) | 135.0km |
| 02-08 | 22 | 34 | Stage 4Ferrette - Altkirch (133.0km) | 133.0km |
| 01-08 | 37 | 38 | Stage 3Velleminfroy - La Planche des Belles Filles (141.0km) | 141.0km |
| 31-07 | 68 | 138 | Stage 2Rust (Europapark) - Selestat (168.0km) | 168.0km |
| 30-07 | 12 | 136 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| 29-06 | 18 | | National Road Championships - Italy (CN) | 223.0km |
| 22-06 | DNS | | Andorra MoraBanc Clàssica (1.1) | 138.0km |
| | | La Route d'Occitanie - CIC (2.1) |
| 21-06 | ABD | | Stage 4Saint-Gaudens - Saint-Girons (128.0km) | 128.0km |
| 20-06 | 92 | 85 | Stage 3Pujaudran - Luz-Ardiden (173.0km) | 173.0km |
| 19-06 | 8 | | Stage 2Gignac - Carmaux (195.0km) | 195.0km |
| 18-06 | 95 | 95 | Stage 1Saint-Affrique - Roquefortf (10.0km) | 10.0km |
| 14-06 | 53 | | Duracell Dwars door het Hageland (1.Pro) | 180.0km |
| 08-06 | 13 | | Brussels Cycling Classic (1.Pro) | 205.0km |
| 07-06 | 54 | | Heylen Vastgoed Heistse Pijl (1.1) | 189.0km |
| 20-04 | 60 | | Tour du Doubs (1.1) | 196.0km |
| 19-04 | DNF | | Tour du Jura Cycliste (1.1) | 176.0km |
| | | Région Pays de la Loire Tour (2.1) |
| 21 | | Klassement |
| 32 | | Punten |
| 11-04 | 29 | 21 | Stage 4Sillé-le-Guillaume - Le Mans (186.0km) | 186.0km |
| 10-04 | 18 | 20 | Stage 3Tiercé - Hambers (165.0km) | 165.0km |
| 09-04 | 13 | 24 | Stage 2La Bernardière - Beaupréau (158.0km) | 158.0km |
| 08-04 | 39 | 39 | Stage 1Machecoul-Saint-Même - La Baule-Escoublac (208.0km) | 208.0km |
| 05-04 | 17 | | Volta NXT Classic (1.1) | 192.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 52 | | Klassement |
| 18 | | Jongeren |
| 29-03 | 86 | 52 | Stage 5Brisighella - Forlì (132.0km) | 132.0km |
| 28-03 | 51 | 44 | Stage 4Brisighella - Brisighella (150.0km) | 150.0km |
| 27-03 | 35 | 45 | Stage 3Riccione - Cesena (142.0km) | 142.0km |
| 26-03 | 54 | 54 | Stage 2Riccione - Sogliano al Rubicone (163.0km) | 163.0km |
| 25-03 | 41 | 41 | Stage 1Ferrara - Bondeno (174.0km) | 174.0km |
| 05-03 | 85 | | Trofeo Laigueglia (1.Pro) | 190.0km |
| | | Etoile de Bessèges - Tour du Gard (2.1) |
| 09-02 | OTL | | Stage 5Alès - Alès (10.0km) | 10.0km |
| 08-02 | 28 | 22 | Stage 4Vauvert - Le Mont Bouquet (119.0km) | 119.0km |
| 07-02 | 7 | 28 | Stage 3Bessèges - Bessèges (136.0km) | 136.0km |
| 06-02 | 19 | 55 | Stage 2Domessargues - Marguerittes (165.0km) | 165.0km |
| 05-02 | 71 | 71 | Stage 1Bellegarde - Bellegarde (159.0km) | 159.0km |