| 15-12 | 7 | | Ciclo-cross Ciudad de Xativa (C2) | |
| 04-10 | 37 | | Paris-Bourges (1.1) | 193.0km |
| 23-09 | DNF | | Grand Prix d'Isbergues - Pas de Calais (1.1) | 199.0km |
| 12-09 | 41 | | Grand Prix de Wallonie (1.1) | 205.0km |
| 09-09 | 62 | | Tour du Doubs (1.1) | |
| 02-09 | DNF | | Antwerp Port Classic (1.1) | 207.0km |
| 26-08 | DNF | | Bretagne Classic - Ouest-France (1.UWT) | 256.0km |
| | | Tour du Limousin (2.1) |
| 47 | | Klassement |
| 18-08 | 58 | 47 | Stage 4Bellac - Limoges (163.0km) | 163.0km |
| 17-08 | 41 | 50 | Stage 3Egletons - Uzerche (190.0km) | 190.0km |
| 16-08 | 61 | 57 | Stage 2Rouffiac - Coteau de Grèzes (176.0km) | 176.0km |
| 15-08 | 45 | 45 | Stage 1Saint-Just-le-Martel - Bonnat (172.0km) | 172.0km |
| 05-08 | 31 | | La Poly Normande (1.1) | |
| | | VOO-Tour de Wallonie (2.HC) |
| 28 | | Klassement |
| 29 | | Berg |
| 01-08 | 49 | 28 | Stage 5Huy - Waremme (187.0km) | 187.0km |
| 31-07 | 25 | 28 | Stage 4Malmedy - Herstal (161.0km) | 161.0km |
| 30-07 | 36 | 31 | Stage 3Chimay - La Roche-en-Ardenne (169.0km) | 169.0km |
| 29-07 | 23 | 28 | Stage 2Villers-la-Ville - Namur (167.0km) | 167.0km |
| 28-07 | 49 | 52 | Stage 1La Louvière - Les Bons Villers (193.0km) | 193.0km |
| | | Int. Österreich-Rundfahrt (2.HC) |
| 26 | | Klassement |
| 14-07 | 31 | 26 | Stage 8Scheibbs - Wels (163.0km) | 163.0km |
| 13-07 | 28 | 25 | Stage 7Waidhofen - Sonntagberg (129.0km) | 129.0km |
| 12-07 | 41 | 29 | Stage 6Knittelfeld - Wenigzell (176.0km) | 176.0km |
| 11-07 | 24 | 30 | Stage 5Matrei in Osttirol - Grossglockner (92.0km) | 92.0km |
| 10-07 | 30 | 38 | Stage 4Kitzbühel - Prägraten (143.0km) | 143.0km |
| 09-07 | 53 | 46 | Stage 3Kufstein - Kitzbühel (133.0km) | 133.0km |
| 08-07 | 49 | 47 | Stage 2Feldkirch - Fulpmes (180.0km) | 180.0km |
| 07-07 | 21 | 21 | Stage 1Feldkirch - Feldkirch (152.0km) | 152.0km |
| 01-07 | DNF | | National Road Championships - France (CN) | 253.0km |
| 24-06 | 70 | | Paris-Chauny (classique) (1.2) | |
| | | Route d'Occitanie (2.1) |
| 37 | | Klassement |
| 5 | | Berg |
| 17-06 | 17 | 37 | Stage 4Mireoix - Cazouls-lès-Béziers (192.0km) | 192.0km |
| 16-06 | 50 | 54 | Stage 3Prat-Bonrepaux - Les Monts d'Olmes (198.0km) | 198.0km |
| 15-06 | 80 | 80 | Stage 2Saint-Gaudens - Masseube Val de Gers (178.0km) | 178.0km |
| 14-06 | 29 | 31 | Stage 1Cap Découverte - Carmaux (168.0km) | 168.0km |
| 07-06 | 50 | | GP du canton d'Argovie (1.HC) | 185.0km |
| | | Skoda-Tour de Luxembourg (2.HC) |
| 47 | | Klassement |
| 03-06 | 78 | 47 | Stage 4Mersch - Luxembourg (176.0km) | 176.0km |
| 02-06 | 25 | 30 | Stage 3Eschweiler - Differdange (163.0km) | 163.0km |
| 01-06 | 44 | 42 | Stage 2Rosport - Schifflange (170.0km) | 170.0km |
| 31-05 | 22 | 62 | Stage 1Luxembourg - Hesperange (186.0km) | 186.0km |
| 30-05 | 65 | 65 | PrologueLuxembourg - Luxembourg (2.0km) | 2.0km |
| 26-05 | 37 | | Grand Prix de Plumelec-Morbihan (1.1) | |
| | | Tour de l'Ain (2.1) |
| 19-05 | DNF | | Stage 2Courtes - Arbent (153.0km) | 153.0km |
| 18-05 | 12 | 12 | Stage 1Saint-Vulbas - Montrevel-en-Bresse (162.0km) | 162.0km |
| | | Tour de Romandie (2.UWT) |
| 66 | | Klassement |
| 29-04 | 38 | 66 | Stage 5Mont-sur-Rolle - Genève (181.0km) | 181.0km |
| 28-04 | 72 | 67 | Stage 4Sion - Sion (149.0km) | 149.0km |
| 27-04 | 70 | 62 | Stage 3Ollon - Villars-sur-Ollon (9.0km) | 9.0km |
| 26-04 | 22 | 64 | Stage 2Delémont - Yverdon-les-Bains (173.0km) | 173.0km |
| 25-04 | 63 | 68 | Stage 1Freiburg - Delémont (116.0km) | 116.0km |
| 24-04 | 83 | 83 | PrologueFreiburg - Freiburg (4.0km) | 4.0km |
| 22-04 | 115 | | Liège-Bastogne-Liège (1.UWT) | 258.0km |
| 18-04 | 72 | | La Flèche Wallonne (1.UWT) | 198.0km |
| 15-04 | DNF | | Tro-Bro Léon (1.1) | 203.0km |
| 14-04 | 57 | | Tour du Finistère (1.1) | 190.0km |
| | | Circuit Cycliste Sarthe-Pays de la Loire (2.1) |
| 36 | | Klassement |
| 06-04 | 40 | 36 | Stage 4Brûlon - Sablé-sur-Sarthe (183.0km) | 183.0km |
| 05-04 | 38 | 38 | Stage 3Abbaye de l'Epau - Pré-en-Pail-Saint-Samson (199.0km) | 199.0km |
| 04-04 | 20 | 26 | Stage 2Riaillé - Ancenis (183.0km) | 183.0km |
| 03-04 | 38 | 39 | Stage 1Abbaye de l'Epau - Baugé-en-Anjou (193.0km) | 193.0km |
| 01-04 | 50 | | La Roue Tourangelle (1.1) | 200.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 55 | | Klassement |
| 25-03 | 61 | 55 | Stage 4Fiorano Modenese - Sassuolo (12.0km) | 12.0km |
| 24-03 | 46 | 55 | Stage 3Crevalcore - Crevalcore (171.0km) | 171.0km |
| 23-03 | 62 | 61 | Stage 2Riccione - Sogliano al Rubicone (130.0km) | 130.0km |
| 22-03 | 18 | 73 | Stage 1bGatteo a Mare - Gatteo (13.0km) | 13.0km |
| 22-03 | 43 | 43 | Stage 1aGatteo - Gatteo (97.0km) | 97.0km |
| 25-02 | 22 | | Royal Bernard Drome Classic (1.1) | |
| 24-02 | 102 | | Classic de l'Ardèche Rhône Crussol (1.1) | |
| | | Tour of Oman (2.HC) |
| 13 | | Klassement |
| 18-02 | 11 | 13 | Stage 6Al Mouj Muscat - Matrah Corniche (135.0km) | 135.0km |
| 17-02 | 17 | 13 | Stage 5Samail - Jabal al Akhdhar (Green Mountain) (152.0km) | 152.0km |
| 16-02 | 51 | 12 | Stage 4Yiti - Ministry of Tourism (117.0km) | 117.0km |
| 15-02 | 18 | 12 | Stage 3German University of Technology - Wadi Dayqah Dam (179.0km) | 179.0km |
| 14-02 | 14 | 10 | Stage 2Sultan Qaboos University - Al Bustan (167.0km) | 167.0km |
| 13-02 | 49 | 53 | Stage 1Nizwa - Sultan Qaboos University (162.0km) | 162.0km |