| 20-10 | 26 | | Veneto Classic (1.Pro) | 191.0km |
| 16-10 | DNF | | Giro del Veneto (1.Pro) | 173.0km |
| 12-10 | 25 | | Il Lombardia (1.UWT) | 252.0km |
| 29-09 | 61 | | UCI World Championship Zurich (CM) | 273.0km |
| | | Skoda Tour de Luxembourg (2.Pro) |
| 34 | | Klassement |
| 22-09 | 73 | 34 | Stage 5Mersch - Luxembourg (176.0km) | 176.0km |
| 21-09 | 64 | 32 | Stage 4Differdange - Differdange (15.0km) | 15.0km |
| 20-09 | 30 | 29 | Stage 3Rosport - Diekirch (201.0km) | 201.0km |
| 19-09 | 54 | 26 | Stage 2Junglinster - Schifflange (155.0km) | 155.0km |
| 18-09 | 22 | 23 | Stage 1Luxembourg - Luxembourg (156.0km) | 156.0km |
| 15-09 | 26 | | Grand Prix Cycliste de Montréal (1.UWT) | 209.0km |
| 13-09 | 3 | | Grand Prix Cycliste de Québec (1.UWT) | 201.0km |
| 08-09 | 49 | | BEMER Cyclassics (1.UWT) | 198.0km |
| | | Ethias-Tour de Wallonie (2.Pro) |
| 9 | | Klassement |
| 26 | | Punten |
| 26-07 | 9 | 9 | Stage 5Mouscron - Thuin (192.0km) | 192.0km |
| 25-07 | 17 | 9 | Stage 4Verviers - Herve (190.0km) | 190.0km |
| 24-07 | 13 | 9 | Stage 3Arlon - La Roche-en-Ardenne (192.0km) | 192.0km |
| 23-07 | 30 | 25 | Stage 2Saint-Ghislain - Ouffet (188.0km) | 188.0km |
| 22-07 | 29 | 30 | Stage 1Tournai - Fleurus (178.0km) | 178.0km |
| | | Tour de l'Ain (2.1) |
| 5 | | Klassement |
| 3 | | Punten |
| 11 | | Berg |
| 15-07 | 4 | 5 | Stage 3Lagnieu - L'Île Chambod (153.0km) | 153.0km |
| 14-07 | 3 | 3 | Stage 2Saint-Vulbas - Lélex Monts-Jura (145.0km) | 145.0km |
| 13-07 | 36 | 4 | Stage 1Laiz - Bourg-en-Bresse (132.0km) | 132.0km |
| 23-06 | 22 | | National Road Championships - France (CN) | 240.0km |
| | | Tour de Suisse (2.UWT) |
| 34 | | Klassement |
| 16-06 | 101 | 34 | Stage 8Villars-sur-Ollon - Villars-sur-Ollon (15.0km) | 15.0km |
| 15-06 | 42 | 29 | Stage 7Villars-sur-Ollon - Villars-sur-Ollon (118.0km) | 118.0km |
| 14-06 | 42 | 29 | Stage 6Locarno - Blatten (151.0km) | 151.0km |
| 13-06 | 36 | 29 | Stage 5Ambri - Carì (148.0km) | 148.0km |
| 12-06 | 44 | 41 | Stage 4Rüschlikon - Gotthard Pass (171.0km) | 171.0km |
| 11-06 | 45 | 49 | Stage 3Steinmaur - Rüschlikon (161.0km) | 161.0km |
| 10-06 | 31 | 72 | Stage 2Regensdorf - Regensdorf (177.0km) | 177.0km |
| 09-06 | 124 | 124 | Stage 1Vaduz - Vaduz (4.0km) | 4.0km |
| 16-05 | 27 | | Mercan'Tour Classic Alpes-Maritimes (1.1) | 168.0km |
| | | 4 Jours de Dunkerque (2.Pro) |
| 17-05 | DNS | | Stage 4Mazingarbe - Pont-à-Marcq (171.0km) | 171.0km |
| 16-05 | 114 | 99 | Stage 3Saint-Laurent-Blangy - Bouchain (165.0km) | 165.0km |
| 15-05 | 93 | 95 | Stage 2Wimereux - Abbeville (184.0km) | 184.0km |
| 14-05 | 94 | 99 | Stage 1Dunkerque - Le Touquet-Paris-Plage (173.0km) | 173.0km |
| 12-05 | 43 | | Boucles de l'Aulne - Châteaulin (1.1) | 181.0km |
| 11-05 | 3 | | Tour du Finistère (1.1) | 199.0km |
| | | Tour de Romandie (2.UWT) |
| 36 | | Klassement |
| 28-04 | 93 | 36 | Stage 5Vernier - Vernier (150.0km) | 150.0km |
| 27-04 | 42 | 40 | Stage 4Bains de Saillon - Leysin (151.0km) | 151.0km |
| 26-04 | 88 | 63 | Stage 3Oron - Oron (15.0km) | 15.0km |
| 25-04 | 70 | 61 | Stage 2Freiburg - Salvan (171.0km) | 171.0km |
| 24-04 | 87 | 64 | Stage 1Château-d'Œx - Freiburg (165.0km) | 165.0km |
| 23-04 | 102 | 102 | ProloguePayerne - Payerne (2.0km) | 2.0km |
| | | Santos Tour Down Under (2.UWT) |
| 18-01 | DNF | | Stage 3Tea Tree Gully - Campbelltown (145.0km) | 145.0km |
| 17-01 | 41 | 38 | Stage 2Norwood - Lobethal (141.0km) | 141.0km |
| 16-01 | 51 | 54 | Stage 1Tanunda - Tanunda (144.0km) | 144.0km |
| 13-01 | 99 | | Down Under Classic (CRTP) | |