| | | Tour of Hainan (2.HC) |
| 13 | | Klassement |
| 28-10 | 21 | 13 | Stage 9Sanya - Sanya (88.0km) | 88.0km |
| 27-10 | 16 | 13 | Stage 8Wuzhishan - Sanya (140.0km) | 140.0km |
| 26-10 | 12 | 12 | Stage 7Dongfang - Wuzhishan (172.0km) | 172.0km |
| 25-10 | 16 | 26 | Stage 6Danzhou - Dongfang (128.0km) | 128.0km |
| 24-10 | 33 | 27 | Stage 5Chengmai - Danzhou (228.0km) | 228.0km |
| 23-10 | 15 | 25 | Stage 4Haikou - Chengmai (160.0km) | 160.0km |
| 22-10 | 18 | 28 | Stage 3Wenchang - Haikou (163.0km) | 163.0km |
| 21-10 | 28 | 50 | Stage 2Wanning - Wenchang (163.0km) | 163.0km |
| 20-10 | 78 | 79 | Stage 1Sanya - Xinglong | |
| 22-09 | 63 | | UCI World Championship Limburg U23 (CM) | 161.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 46 | | Klassement |
| 01-09 | 44 | 46 | Stage 6Beaufort - Le Grand-Bornand (82.0km) | 82.0km |
| 31-08 | 66 | 60 | Stage 5Valloire - Le Saisies (130.0km) | 130.0km |
| 30-08 | 56 | 54 | Stage 4Seyssel - Valloire (155.0km) | 155.0km |
| 29-08 | 73 | 50 | Stage 3Pont-d'Ain - Annemasse (152.0km) | 152.0km |
| 28-08 | 104 | 68 | Stage 2Parc des Oiseaux - Chatillon-sur-Chalaronne (139.0km) | 139.0km |
| 27-08 | 47 | 68 | Stage 1Dôle - Belleville (172.0km) | 172.0km |
| 26-08 | 72 | 72 | PrologueDôle - Dôle (3.0km) | 3.0km |
| 12-08 | 23 | | European Championship U23 (EC) | 172.0km |
| | | Giro Ciclistico della Valle d'Aosta Mont Blanc (2.2U) |
| 21-07 | DNF | | Stage 5Aigle - Châtel (142.0km) | 142.0km |
| 20-07 | 36 | 84 | Stage 4Antey-Saint-André - Antey-Saint-André (166.0km) | 166.0km |
| 19-07 | 77 | 98 | Stage 3Quincinetto - Tavagnasco (138.0km) | 138.0km |
| 18-07 | 93 | 104 | Stage 2Issogne - Champdepraz (160.0km) | 160.0km |
| 17-07 | 106 | 102 | Stage 1Arvier - Arvier (133.0km) | 133.0km |
| 16-07 | 51 | 51 | PrologueHône - Forte di Bard (3.0km) | 3.0km |
| | | An Post Ras (2.2) |
| 83 | | Klassement |
| 27-05 | 131 | 83 | Stage 8Cootehill - Skerries (139.0km) | 139.0km |
| 26-05 | 80 | 78 | Stage 7Donegal - Cootehill (161.0km) | 161.0km |
| 25-05 | 78 | 80 | Stage 6Buncrana - Killybegs (134.0km) | 134.0km |
| 24-05 | 81 | 79 | Stage 5Bundoran - Buncrana (149.0km) | 149.0km |
| 23-05 | 140 | 78 | Stage 4Westport - Bundoran (135.0km) | 135.0km |
| 22-05 | 27 | 19 | Stage 3Gort - Westport (145.0km) | 145.0km |
| 21-05 | 34 | 29 | Stage 2Kilkenny - Gort (158.0km) | 158.0km |
| 20-05 | 12 | 16 | Stage 1Dunboyne - Kilkenny (147.0km) | 147.0km |
| | | Ronde van Overijssel (1.2) |
| 50 | | Klassement |
| 05-05 | 46 | 50 | Stage 1Rijssen - Rijssen (202.0km) | 202.0km |
| 04-05 | 84 | 84 | PrologueHolten - Holterberg (2.0km) | 2.0km |
| 01-05 | 34 | | Rund um den Finanzplatz Eschborn-Frankfurt (U23) (1.2U) | |
| | | Toscana-Terra di ciclismo-Coppa delle Nazioni (2.NCUP) |
| 44 | | Klassement |
| 21-04 | 32 | 44 | Stage 5Greve in Chianti - Bonconvento | |
| 20-04 | 44 | 54 | Stage 4Cortona - Terranova Bracciolini | |
| 19-04 | 111 | 72 | Stage 3Cavriglia - Parco di Cavriglia | |
| 18-04 | 39 | 35 | Stage 2Figlile Valdarno - Gaiole in Chianti | |
| 17-04 | 64 | 64 | Stage 1Camping Girasole - Scarperia | |
| 14-04 | 57 | | ZLM tour (1.NCUP) | |
| 11-04 | 22 | | La Côte Picarde (1.NCUP) | |
| 07-04 | 61 | | Ronde van Vlaanderen Beloften (1.NCUP) | 173.0km |
| | | Le Triptyque des Monts et Châteaux (2.2) |
| 73 | | Klassement |
| 01-04 | 69 | 73 | Stage 4Bel?il - Tournai (162.0km) | 162.0km |
| 31-03 | 9 | 96 | Stage 3Mont-de-l'Enclus - Vieux-Condé (85.0km) | 85.0km |
| 31-03 | 110 | 102 | Stage 2Mont-de-l'Enclus - Mont-de-l'Enclus (9.0km) | 9.0km |
| 30-03 | 115 | 115 | Stage 1Château d'Estaimbourg - Quevaucamps (179.0km) | 179.0km |
| 11-03 | 9 | | Paris-Troyes (1.2) | 174.0km |
| 04-03 | 35 | | Grand Prix de la Ville de Lillers Souvenir Bruno Comini (1.2) | 171.0km |
| 26-02 | 73 | | G.P. Città di Lugano (1.1) | |
| 04-02 | 29 | | G.P. Costa degli Etruschi (1.1) | 194.0km |