| 26-09 | 19 | | UCI World Championship Zurich U19 (CM) | 127.0km |
| 23-09 | 28 | | UCI World Championship Zurich TT U19 (CM) | 24.0km |
| 14-09 | 45 | | UEC Road European Championships U19 (CC) | 129.0km |
| 11-09 | 15 | | UEC Road European Championships TT U19 (CC) | 31.0km |
| | | Grand Prix Rüebliland (2.1) |
| 10 | | Klassement |
| 9 | | Punten |
| 08-09 | 4 | 10 | Stage 3Vordemwald - Vordemwald (105.0km) | 105.0km |
| 07-09 | 57 | 30 | Stage 2aSeon - Seon (61.0km) | 61.0km |
| 07-09 | 15 | 16 | Stage 2bSeon - Seon (49.0km) | 49.0km |
| 06-09 | 8 | 11 | Stage 1Schneisingen - Schneisingen (85.0km) | 85.0km |
| 25-08 | 9 | | Trofeo Emilio Paganessi (1.1) | 137.0km |
| 24-08 | 3 | | Trofeo Comune di Vertova - Memorial Pietro Merelli (1.1) | 82.0km |
| | | Ain Bugey Valromey Tour (2.1) |
| 89 | | Klassement |
| 14-07 | 81 | 89 | Stage 5Virignin - Champagne-en-Valromey (96.0km) | 96.0km |
| 13-07 | 23 | 93 | Stage 4Frontonas - Tignieu-Jameyzieu (95.0km) | 95.0km |
| 12-07 | 131 | 99 | Stage 3Meximieux - Ordonnaz (89.0km) | 89.0km |
| 11-07 | 73 | 85 | Stage 2Beaupont - Plateau d'Hauteville (130.0km) | 130.0km |
| 10-07 | 101 | 102 | Stage 1Culoz - Artemare (85.0km) | 85.0km |
| 22-06 | 13 | | National Road Championships - Norway U19 (CN) | 116.0km |
| 20-06 | 3 | | National Road Championships - Norway TT U19 (CN) | 23.0km |
| | | LVM Saarland Trofeo (2.NCUP) |
| 4 | | Klassement |
| 16 | | Punten |
| 02-06 | 4 | 4 | Stage 4Walsheim - Walsheim (128.0km) | 128.0km |
| 01-06 | 3 | 3 | Stage 3aBallweiler - Ballweiler (9.0km) | 9.0km |
| 01-06 | | 4 | Stage 3bWolfersheim - Oberwürzbach (94.0km) | 94.0km |
| 31-05 | 26 | 15 | Stage 2Volmunster - Sarreguemines (103.0km) | 103.0km |
| 30-05 | 6 | 6 | Stage 1Friedrichsthal - Neunkirchen (109.0km) | 109.0km |
| | | SPIE Internationale Juniorendriedaagse (2.1) |
| 1 | | Klassement |
| 1 | | Punten |
| 11 | | Berg |
| 19-05 | 15 | 1 | Stage 4Velzeke - Velzeke (99.0km) | 99.0km |
| 18-05 | 1 | 1 | Stage 2Westdorpe - Westdorpe (11.0km) | 11.0km |
| 18-05 | 1 | 1 | Stage 3Sluiskil - Sluiskil (80.0km) | 80.0km |
| 17-05 | 1 | 1 | Stage 1Axel - Axel (103.0km) | 103.0km |
| | | Course de la Paix Juniors (2.NCUP) |
| 6 | | Klassement |
| 7 | | Punten |
| 05-05 | 40 | 6 | Stage 4Terezín - Terezín (98.0km) | 98.0km |
| 04-05 | 2 | 5 | Stage 3Teplice - Olbernhau (133.0km) | 133.0km |
| 03-05 | 62 | 7 | Stage 2bRoudnice - Steti (61.0km) | 61.0km |
| 03-05 | 3 | 7 | Stage 2aTrebivlice - Trebivlice (8.0km) | 8.0km |
| 02-05 | 8 | 8 | Stage 1Litomerice - Litomerice (100.0km) | 100.0km |
| 27-04 | 13 | | E3 Saxo Classic U19 (1.1) | 117.0km |
| | | Eroica Juniores - Nations' Cup (2.NCUP) |
| 50 | | Klassement |
| 11 | | Berg |
| 21-04 | 24 | 50 | Stage 4Siena - Chiusdino (102.0km) | 102.0km |
| 19-04 | 72 | 61 | Stage 2Cinigiano - Siena (110.0km) | 110.0km |
| 18-04 | 64 | 46 | Stage 1bCastiglione della Pescaia - Castiglione della Pescaia (68.0km) | 68.0km |
| 18-04 | | 44 | Stage 1aPunta Ala - Castiglione della Pescaia (22.0km) | 22.0km |
| 07-04 | DNF | | Paris-Roubaix Juniors (1.NCUP) | 111.0km |
| | | Guido Reybrouck Classic (2.1) |
| 4 | | Klassement |
| 1 | | Punten |
| 17-03 | 8 | 4 | Stage 2Damme - Damme (121.0km) | 121.0km |
| 16-03 | 5 | | Stage 1Damme - Damme (11.0km) | 11.0km |
| 09-03 | 39 | | Danilith Nokere Koerse MJ (1.1) | 127.0km |