| 07-10 | DNF | | Il Lombardia (1.UWT) | 238.0km |
| 03-10 | 70 | | Tre Valli Varesine (1.Pro) | 196.0km |
| 30-09 | DNF | | Giro dell'Emilia (1.Pro) | 204.0km |
| 28-09 | 3 | | Coppa Agostoni - Giro delle Brianze (1.1) | 195.0km |
| 10-09 | DNF | | Grand Prix Cycliste de Montréal (1.UWT) | 221.0km |
| 08-09 | 12 | | Grand Prix Cycliste de Québec (1.UWT) | 201.0km |
| 03-09 | DNF | | Maryland Cycling Classic (1.Pro) | 196.0km |
| | | Tour Poitou - Charentes (2.1) |
| 96 | | Klassement |
| 25-08 | 89 | 96 | Stage 4Moncoutant - Poitiers (170.0km) | 170.0km |
| 24-08 | 60 | 103 | Stage 3bLa Roche-Posay - La Roche-Posay (22.0km) | 22.0km |
| 24-08 | 91 | 103 | Stage 3aCoussay-les-Bois - La Roche-Posay (94.0km) | 94.0km |
| 23-08 | 100 | 101 | Stage 2Aulnay - Bressuire (185.0km) | 185.0km |
| 22-08 | 107 | 107 | Stage 1Confolens - Mathay (195.0km) | 195.0km |
| | | Tour de France (2.UWT) |
| 22-07 | DNF | | Stage 20Belfort - Le Markstein (133.0km) | 133.0km |
| 21-07 | 128 | 99 | Stage 19Moirans-en-Montagne - Poligny (173.0km) | 173.0km |
| 20-07 | 149 | 93 | Stage 18Moûtiers - Bourg-en-Bresse (185.0km) | 185.0km |
| 19-07 | 107 | 90 | Stage 17Saint-Gervais Mont-Blanc - Courchevel (166.0km) | 166.0km |
| 18-07 | 133 | 89 | Stage 16Passy - Combloux (22.0km) | 22.0km |
| 16-07 | 86 | 90 | Stage 15Les Gets - Saint-Gervais Mont-Blanc (179.0km) | 179.0km |
| 15-07 | 118 | 88 | Stage 14Annemasse - Morzine (152.0km) | 152.0km |
| 14-07 | 121 | 92 | Stage 13Chatillon-sur-Chalaronne - Le Grand Colombier (138.0km) | 138.0km |
| 13-07 | 75 | 92 | Stage 12Roanne - Belleville-en-Beaujolais (169.0km) | 169.0km |
| 12-07 | 148 | | Stage 11Clermont-Ferrand - Moulins (180.0km) | 180.0km |
| 11-07 | 121 | 94 | Stage 10Vulcania (Auvergne) - Issoire (167.0km) | 167.0km |
| 09-07 | 158 | 85 | Stage 9Saint-Léonard-de-Noblat - Puy de Dôme (182.0km) | 182.0km |
| 08-07 | 68 | 75 | Stage 8Libourne - Limoges (201.0km) | 201.0km |
| 07-07 | 162 | 79 | Stage 7Mont-de-Marsan - Bordeaux (170.0km) | 170.0km |
| 06-07 | 92 | 77 | Stage 6Tarbes - Cauterets-Cambasque (145.0km) | 145.0km |
| 05-07 | 119 | 54 | Stage 5Pau - Laruns (163.0km) | 163.0km |
| 04-07 | 97 | 4 | Stage 4Dax - Nogaro (182.0km) | 182.0km |
| 03-07 | 62 | 4 | Stage 3Amorebieta - Bayonne (193.0km) | 193.0km |
| 02-07 | 1 | 4 | Stage 2Vitoria-Gasteiz - San Sebastián (209.0km) | 209.0km |
| 01-07 | 6 | 6 | Stage 1Bilbao - Bilbao (182.0km) | 182.0km |
| 25-06 | 16 | | National Road Championships - France (CN) | 224.0km |
| | | La Route d'Occitanie - La Dépêche du Midi (2.1) |
| 7 | | Klassement |
| 22 | | Punten |
| 15 | | Berg |
| 18-06 | 16 | 7 | Stage 4Saint-Gaudens - Saint-Girons (164.0km) | 164.0km |
| 17-06 | 4 | 7 | Stage 3Gimont - Nistos Cap Nestès (189.0km) | 189.0km |
| 16-06 | 50 | 51 | Stage 2Cazouls-lès-Béziers - Graulhet (182.0km) | 182.0km |
| 15-06 | 60 | 60 | Stage 1Narbonne - Gruissan (184.0km) | 184.0km |
| 09-06 | 23 | | Grosser Preis des Kantons Aargau (1.1) | 173.0km |
| 30-05 | 18 | | Mercan'Tour Classic Alpes-Maritimes (1.1) | 167.0km |
| | | 4 Jours de Dunkerque (2.Pro) |
| 20-05 | DNF | | Stage 5Roubaix - Cassel (183.0km) | 183.0km |
| 19-05 | 119 | 111 | Stage 4Maubeuge - Achicourt (173.0km) | 173.0km |
| 18-05 | 82 | 47 | Stage 3Saint-Quentin - Saint-Quentin (15.0km) | 15.0km |
| 17-05 | 5 | 23 | Stage 2Compiègne - Laon (165.0km) | 165.0km |
| 16-05 | 84 | 86 | Stage 1Dunkerque - Abbeville (193.0km) | 193.0km |
| 23-04 | 32 | | Liège-Bastogne-Liège (1.UWT) | 258.0km |
| 19-04 | 6 | | La Flèche Wallonne (1.UWT) | 194.0km |
| 15-04 | 7 | | Tour du Jura Cycliste (1.1) | 168.0km |
| 14-04 | 1 | | Classic Grand Besançon Doubs (1.1) | 180.0km |
| 01-04 | 40 | | Gran Premio Miguel Indurain (1.Pro) | 203.0km |
| | | Tirreno-Adriatico (2.UWT) |
| 11-03 | DNF | | Stage 6Osimo - Osimo (194.0km) | 194.0km |
| 10-03 | 142 | 82 | Stage 5Morro d'Oro - Sarnano Sassotetto (168.0km) | 168.0km |
| 09-03 | 7 | 56 | Stage 4Greccio - Tortoreto Lido (219.0km) | 219.0km |
| 08-03 | 165 | 139 | Stage 3Follonica - Foligno (216.0km) | 216.0km |
| 07-03 | 123 | 61 | Stage 2Camaiore - Follonica (209.0km) | 209.0km |
| 06-03 | 69 | 69 | Stage 1Lido di Camaiore - Lido di Camaiore (11.0km) | 11.0km |
| 01-03 | 16 | | Trofeo Laigueglia (1.Pro) | 201.0km |
| 26-02 | 42 | | Faun Drome Classic (1.Pro) | |
| 25-02 | 4 | | Faun-Ardèche Classic
(1.Pro) | |
| | | Tour des Alpes Maritimes et du Var (2.1) |
| 13 | | Klassement |
| 10 | | Berg |
| 19-02 | 12 | 13 | Stage 3Villefranche-sur-Mer - Vence (139.0km) | 139.0km |
| 18-02 | 23 | 26 | Stage 2Mandelieu-la-Napoule - Antibes (179.0km) | 179.0km |
| 17-02 | 49 | 50 | Stage 1Saint-Raphaël - Ramatuelle (197.0km) | 197.0km |
| | | Santos Tour Down Under (2.UWT) |
| 44 | | Klassement |
| 25 | | Berg |
| 22-01 | 61 | 44 | Stage 5Unley - Mount Lofty (114.0km) | 114.0km |
| 21-01 | 73 | 39 | Stage 4Willunga - Willunga (135.0km) | 135.0km |
| 20-01 | 17 | 19 | Stage 3Norwood - Campbelltown (118.0km) | 118.0km |
| 19-01 | 41 | 35 | Stage 2Brighton - Victor Harbor (156.0km) | 156.0km |
| 18-01 | 71 | 54 | Stage 1Tanunda - Tanunda (149.0km) | 149.0km |
| 17-01 | 59 | 59 | PrologueAdelaide - Adelaide (5.0km) | 5.0km |