| 20-10 | 58 | | Veneto Classic (1.Pro) | 191.0km |
| 16-10 | 31 | | Giro del Veneto (1.Pro) | 173.0km |
| 12-10 | 55 | | Il Lombardia (1.UWT) | 252.0km |
| 10-10 | 34 | | Gran Piemonte (1.Pro) | 182.0km |
| 27-09 | 24 | | UCI World Championship Zurich U23 (CM) | 173.0km |
| | | Skoda Tour de Luxembourg (2.Pro) |
| 61 | | Standings |
| 26 | | Points |
| 4 | | Mountain |
| 24 | | Youth |
| 22-09 | 51 | 61 | Stage 5Mersch - Luxembourg | 176.0km |
| 21-09 | 76 | 63 | Stage 4Differdange - Differdange | 15.0km |
| 20-09 | 67 | 62 | Stage 3Rosport - Diekirch | 201.0km |
| 19-09 | 88 | 61 | Stage 2Junglinster - Schifflange | 155.0km |
| 18-09 | 64 | 64 | Stage 1Luxembourg - Luxembourg | 156.0km |
| | | Lidl Deutschland Tour (2.Pro) |
| 64 | | Standings |
| 25 | | Youth |
| 25-08 | 64 | 64 | Stage 4Annweiler am Trifels - Saarbrücken | 172.0km |
| 24-08 | 89 | 68 | Stage 3Schwäbisch Gmünd - Villingen-Schwenningen | 212.0km |
| 23-08 | 61 | 60 | Stage 2Heilbronn - Schwäbisch Gmünd | 173.0km |
| 22-08 | 65 | 67 | Stage 1Schweinfurt - Heilbronn | 177.0km |
| 21-08 | 99 | 99 | PrologueSchweinfurt - Schweinfurt | 2.0km |
| 10-08 | DNF | | Donostia San Sebastian Klasikoa (1.UWT) | 236.0km |
| | | Tour de France (2.UWT) |
| 47 | | Standings |
| 124 | | Points |
| 12 | | Youth |
| 21-07 | 76 | 47 | Stage 21Monaco - Nice | 33.0km |
| 20-07 | 48 | 46 | Stage 20Nice - Col de la Couillole | 132.0km |
| 19-07 | 38 | 49 | Stage 19Embrun - Isola 2000 | 144.0km |
| 18-07 | 106 | 52 | Stage 18Gap - Barcelonnette | 179.0km |
| 17-07 | 19 | 47 | Stage 17Saint-Paul-Trois-Châteaux - Superdévoluy | 177.0km |
| 16-07 | 95 | 52 | Stage 16Gruissan - Nîmes | 188.0km |
| 14-07 | 46 | 54 | Stage 15Loudenvielle-Le Louron - Plateau de Beille | 197.0km |
| 13-07 | 66 | 57 | Stage 14Pau - Saint-Lary-Soulan (Pla d'Adet) | 151.0km |
| 12-07 | 49 | 57 | Stage 13Agen - Pau | 165.0km |
| 11-07 | 138 | 67 | Stage 12Aurillac - Villeneuve-sur-Lot | 203.0km |
| 10-07 | 131 | 64 | Stage 11Évaux-les-Bains - Le Lioran | 211.0km |
| 09-07 | 103 | 52 | Stage 10Orléans - Saint-Amand-Montrond | 187.0km |
| 07-07 | 40 | 53 | Stage 9Troyes - Troyes | 199.0km |
| 06-07 | 166 | 56 | Stage 8Semur-en-Auxois - Colombey-les-Deux-Églises | 183.0km |
| 05-07 | 97 | 51 | Stage 7Nuits-Saint-Georges - Gevrey-Chambertin | 25.0km |
| 04-07 | 100 | 51 | Stage 6Mâcon - Dijon | 163.0km |
| 03-07 | 80 | 51 | Stage 5Saint-Jean-de-Maurienne - Saint-Vulbas | 177.0km |
| 02-07 | 70 | 51 | Stage 4Pinerolo - Valloire | 139.0km |
| 01-07 | 76 | 50 | Stage 3Piacenza - Torino | 230.0km |
| 30-06 | 88 | 51 | Stage 2Cesenatico - Bologna | 199.0km |
| 29-06 | 33 | 33 | Stage 1Florence - Rimini | 206.0km |
| 23-06 | DNS | | National Road Championships - Norway (CN) | 199.0km |
| | | Tour of Slovenia (2.Pro) |
| 14-06 | DSQ | | Stage 3 Ljubljana - Nova Gorica | 160.0km |
| 13-06 | 52 | 59 | Stage 2Zalec - Rogaška Slatina | 180.0km |
| 12-06 | 86 | 87 | Stage 1Murska Sobota - Ormoz | 192.0km |
| 21-04 | 62 | | Liège-Bastogne-Liège (1.UWT) | 259.0km |
| 14-04 | 57 | | Tour du Doubs (1.1) | 200.0km |
| 13-04 | 17 | | Tour du Jura Cycliste (1.1) | |
| 12-04 | 69 | | Classic Grand Besançon Doubs (1.1) | 171.0km |
| | | Région Pays de la Loire Tour (2.1) |
| 28 | | Standings |
| 30 | | Points |
| 05-04 | 34 | 28 | Stage 4Marolles-les-Braults - Le Mans | 174.0km |
| 04-04 | 30 | 18 | Stage 3Segré-en-Anjou Bleu - Château-Gontier | 159.0km |
| 03-04 | 13 | 14 | Stage 2Chateaubriant - Saumur | 162.0km |
| 02-04 | 28 | 32 | Stage 1Fontenay-le-Comte - Saint-Jean-de-Monts | 210.0km |
| | | Volta Ciclista a Catalunya (2.UWT) |
| 21 | | Standings |
| 24-03 | 49 | 21 | Stage 7Barcelona - Barcelona | 145.0km |
| 23-03 | 24 | 23 | Stage 6Berga - Nuestra Senore de Queralt | 154.0km |
| 22-03 | 30 | 28 | Stage 5Altafulla - Viladecans | 167.0km |
| 21-03 | 62 | 28 | Stage 4Sort - Lleida | 169.0km |
| 20-03 | 33 | 28 | Stage 3Port Ainé-Rialp - Sant Joan de les Abadesses | 176.0km |
| 19-03 | 22 | 20 | Stage 2Mataró - Vallter 2000 | 186.0km |
| 18-03 | 78 | 65 | Stage 1San Felíu de Guixols - San Felíu de Guixols | 174.0km |
| 25-02 | 21 | | Faun Drome Classic (1.1) | 189.0km |
| 24-02 | 31 | | Faun-Ardèche Classic (1.Pro) | 169.0km |
| | | Tour of Oman (2.Pro) |
| 8 | | Standings |
| 33 | | Points |
| 14-02 | 9 | 8 | Stage 5Samail - Jabal al Akhdhar (Green Mountain) | 72.0km |
| 13-02 | 16 | 16 | Stage 4Fanja - Yitti Hills | 104.0km |
| 12-02 | 18 | 16 | Stage 3Naseem Garden - Al Bustan | 76.0km |
| 11-02 | 17 | 16 | Stage 2Al Sifah - Qurayyat | 170.0km |
| 10-02 | 20 | 21 | Stage 1Nizwa - Muscat | 181.0km |
| 09-02 | 21 | | Muscat Classic (1.1) | 174.0km |
| 27-01 | 20 | | Trofeo Pollença - Port d'Andratx (1.1) | |
| 26-01 | 26 | | Trofeo Serra Tramuntana (1.1) | |
| 24-01 | 16 | | Trofeo Calvià (1.1) | 150.0km |