| 26-12 | 11 | | Cross-Race / Pfaffnau GP Luzern (C2) | |
| | | Tour of Hainan (2.HC) |
| 2 | | Klassement |
| 12 | | Punten |
| 3 | | Berg |
| 31-10 | 33 | 2 | Stage 9Changjiang - Danzhou (181.0km) | 181.0km |
| 30-10 | 2 | 2 | Stage 8Longmuwan - Changjiang (197.0km) | 197.0km |
| 29-10 | 42 | 2 | Stage 7Wuzhishan - Sanya (127.0km) | 127.0km |
| 28-10 | 1 | 2 | Stage 6Lingshui - Wuzhishan (193.0km) | 193.0km |
| 27-10 | 22 | 27 | Stage 5Wanning - Lingshui (178.0km) | 178.0km |
| 26-10 | 53 | 40 | Stage 4Qionghai - Wanning (142.0km) | 142.0km |
| 25-10 | 33 | 39 | Stage 3Chengmai - Qionghai (231.0km) | 231.0km |
| 24-10 | 43 | 41 | Stage 2Danzhou - Chengmai (139.0km) | 139.0km |
| 23-10 | 46 | 48 | Stage 1Danzhou - Danzhou (90.0km) | 90.0km |
| 07-10 | 28 | | 90° Il Piccolo Lombardia (1.2U) | 174.0km |
| 28-09 | 4 | | UCI World Championship Innsbruck U23 (CM) | 186.0km |
| 16-09 | 20 | | Coppa Bernocchi (1.1) | 194.0km |
| 15-09 | 33 | | Coppa Agostoni (1.1) | 191.0km |
| | | 54° Giro della Regione Friuli Venezia Giulia (2.2) |
| 32 | | Klassement |
| 7 | | Punten |
| 08-09 | 2 | 32 | Stage 3Lignano Sabbiadoro - Gorizia (157.0km) | 157.0km |
| 07-09 | 48 | 35 | Stage 2Feletto Umberto - Monte Matajur (152.0km) | 152.0km |
| 06-09 | 14 | 14 | Stage 1Fagagna - Spilimbergo (166.0km) | 166.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 3 | | Klassement |
| 15 | | Punten |
| 4 | | Berg |
| 26-08 | 1 | 3 | Stage 10Val-d'Isère - Saint-Colomban-des-Villards (149.0km) | 149.0km |
| 25-08 | 7 | 5 | Stage 9Séez - Val-d'Isère (83.0km) | 83.0km |
| 24-08 | 1 | 4 | Stage 8La Bâthie - Crest-Voland Cohennoz (81.0km) | 81.0km |
| 23-08 | 11 | 9 | Stage 7Moûtiers - Méribel (34.0km) | 34.0km |
| 22-08 | 41 | 39 | Stage 6Le Blanc - Cérilly (181.0km) | 181.0km |
| 21-08 | 81 | 41 | Stage 5Beaugency - Levroux (135.0km) | 135.0km |
| 20-08 | | 48 | Stage 4Orléans - Orléans (20.0km) | 20.0km |
| 19-08 | 74 | 57 | Stage 3Le Lude - Châteaudun (170.0km) | 170.0km |
| 18-08 | 83 | 53 | Stage 2Dréfféac - Chateaubriant (144.0km) | 144.0km |
| 17-08 | 37 | 37 | Stage 1Grand Champ - Elven (138.0km) | 138.0km |
| | | Tour Alsace (2.2) |
| 27 | | Klassement |
| 1 | | Punten |
| 05-08 | 1 | 27 | Stage 5Riedisheim - Dannemarie (145.0km) | 145.0km |
| 04-08 | 16 | 30 | Stage 4Ribeauville - Lac Blanc (165.0km) | 165.0km |
| 03-08 | 84 | 80 | Stage 3Vesoul - La Planche des Belles Filles (143.0km) | 143.0km |
| 02-08 | 98 | 87 | Stage 2Champ du Feu - Selestat (147.0km) | 147.0km |
| 01-08 | 93 | 93 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| 15-07 | 27 | | UEC Road European Championships U23 (CC) | 140.0km |
| 01-07 | DNF | | National Road Championships - Switzerland (CN) | 200.0km |
| 27-06 | 2 | | National Road Championships - Switzerland TT U23 (CN) | 40.0km |
| | | Baby Giro (2.2U) |
| 59 | | Klassement |
| 35 | | Punten |
| 2 | | Berg |
| 16-06 | 17 | 59 | Stage 9bSan Pietro di Feletto - San Pietro di Feletto (22.0km) | 22.0km |
| 16-06 | 131 | 62 | Stage 9aConegliano - Valdobbiadene (72.0km) | 72.0km |
| 15-06 | 34 | 65 | Stage 8Levico Terme - Asiago (157.0km) | 157.0km |
| 14-06 | 126 | 84 | Stage 7Schio - Pian Delle Fugazze (136.0km) | 136.0km |
| 13-06 | 34 | 67 | Stage 6Dimaro - Pergine Valsugana (120.0km) | 120.0km |
| 12-06 | 101 | 91 | Stage 5Darfo Boario Terme - Malga Folgarida di Dimaro (127.0km) | 127.0km |
| 11-06 | 3 | 86 | Stage 4Mornico Al Serio - Passo Manivia (127.0km) | 127.0km |
| 10-06 | 48 | 134 | Stage 3Rio Saliceto - Mornico Al Serio (164.0km) | 164.0km |
| 09-06 | 151 | 135 | Stage 2Nonantola - Sestola (138.0km) | 138.0km |
| 08-06 | 54 | 54 | Stage 1Riccione - Forlì (137.0km) | 137.0km |
| 07-06 | 36 | 36 | PrologueForlì - Forlì (4.0km) | 4.0km |
| | | Course de la Paix U23 (2.NCUP) |
| 26 | | Klassement |
| 21 | | Berg |
| 03-06 | 54 | 26 | Stage 3Jeseník - Jeseník (158.0km) | 158.0km |
| 02-06 | 16 | 16 | Stage 2Krnov - Dlouhé (151.0km) | 151.0km |
| 01-06 | 67 | 49 | Stage 1Jeseník - Rýmařov (133.0km) | 133.0km |
| 31-05 | 56 | 56 | PrologueKrnov - Krnov (2.0km) | 2.0km |
| | | Ronde de l'Isard (2.2U) |
| 37 | | Klassement |
| 9 | | Punten |
| 7 | | Berg |
| 20-05 | 1 | 37 | Stage 4Salies-du-Salat - Saint-Girons (152.0km) | 152.0km |
| 19-05 | 31 | 88 | Stage 3Lévignac - Boulogne-sur-Gesse (153.0km) | 153.0km |
| 18-05 | 118 | 103 | Stage 2Fonsorbes - Goulier Neige (154.0km) | 154.0km |
| 17-05 | 81 | 81 | Stage 1Lorp - Eycheil (125.0km) | 125.0km |
| 01-05 | 14 | | Eschborn-Frankfurt - Rund um den Finanzplatz U23 (1.2U) | |
| | | Tour du Jura Cycliste (2.2) |
| 34 | | Klassement |
| 22-04 | 40 | 34 | Stage 2Villeneuve-sous-Pymont - Arbois (161.0km) | 161.0km |
| 21-04 | 40 | 40 | Stage 1Poligny - Salins-Les-Bains (163.0km) | 163.0km |
| 14-04 | 39 | | ZLM tour (1.NCUP) | |
| 07-04 | 43 | | Ronde van Vlaanderen U23 (1.NCUP) | 165.0km |
| 03-04 | 4 | | 57° G.P. Palio del Recioto (1.2U) | |
| 01-04 | 17 | | 70° Trofeo Piva (1.2U) | |
| 25-03 | DNF | | Gent-Wevelgem/Kattekoers-Ieper (1.NCUP) | |
| 03-03 | 90 | | Trofej Porec - Porec Trophy (1.2) | |
| 25-02 | 29 | | GP Izola (1.2) | |