| 05-10 | 54 | | Il Lombardia Under 23 (1.2U) | 170.0km |
| 01-10 | 8 | | Coppa Citta' Di San Daniele (1.2) | 160.0km |
| 27-09 | 38 | | UCI World Championship Zurich U23 (CM) | 173.0km |
| 08-09 | 28 | | Eurode Omloop (Nat) | 156.0km |
| 07-09 | DNF | | GP Rik Van Looy (1.2) | |
| | | Tour de l'Avenir (2.NCUP) |
| 25 | | Klassement |
| 12 | | Punten |
| 14 | | Berg |
| 24-08 | 29 | 25 | Stage 6 Bobbio Pellice - Colle delle Finestre (120.0km) | 120.0km |
| 23-08 | 5 | 31 | Stage 5Les Karellis - Condove (120.0km) | 120.0km |
| 22-08 | 2 | 43 | Stage 4La Rosière-Montvalezan - Les Karellis (143.0km) | 143.0km |
| 21-08 | 78 | 71 | Stage 3Peisey-Vallandry - La Rosière-Montvalezan (71.0km) | 71.0km |
| 20-08 | 47 | 32 | Stage 2Mouchard - Plateau d'Hauteville (170.0km) | 170.0km |
| 19-08 | 61 | 44 | Stage 1Sarrebourg - Ronchamp (185.0km) | 185.0km |
| 18-08 | 44 | 44 | PrologueSarrebourg - Sarrebourg (7.0km) | 7.0km |
| 23-06 | 23 | | National Road Championships - Netherlands U23 (CN) | 136.0km |
| 19-06 | DNS | | National Road Championships - Netherlands TT U23 (CN) | 36.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 16 | | Klassement |
| 46 | | Punten |
| 22 | | Berg |
| 16-06 | 47 | 16 | Stage 8Cesena - Forlimpopoli (146.0km) | 146.0km |
| 15-06 | 24 | 16 | Stage 7Montegrotto Terme - Zocca (170.0km) | 170.0km |
| 14-06 | 7 | 17 | Stage 6Borgo Virgilio - Fosse (145.0km) | 145.0km |
| 13-06 | 38 | 25 | Stage 5Bergamo - Cremona (136.0km) | 136.0km |
| 12-06 | 79 | 25 | Stage 4Pertusio - Borgomanero (130.0km) | 130.0km |
| 11-06 | 29 | 26 | Stage 3Verrès - Pian della Mussa (127.0km) | 127.0km |
| 10-06 | 43 | 22 | Stage 2Aymavilles - Saint-Vincent (121.0km) | 121.0km |
| 09-06 | 39 | 39 | Stage 1Aosta - Aosta (11.0km) | 11.0km |
| | | Course de la Paix U23 (2.NCUP) |
| 6 | | Klassement |
| 22 | | Punten |
| 02-06 | 33 | 6 | Stage 4Šumperk - Jeseník (126.0km) | 126.0km |
| 01-06 | 7 | 6 | Stage 3Bruntal - Dlouhé (99.0km) | 99.0km |
| 31-05 | 51 | 55 | Stage 2Uničov - Rýmařov (117.0km) | 117.0km |
| 30-05 | 81 | 81 | Stage 1Krnov - Opava (123.0km) | 123.0km |
| 20-05 | DNF | | Ronde van Limburg (1.1) | 195.0km |
| 12-05 | 55 | | Flèche Ardennaise (1.2) | 174.0km |
| | | Ronde de l'Isard (2.2U) |
| 1 | | Klassement |
| 2 | | Punten |
| 1 | | Berg |
| 05-05 | 12 | 1 | Stage 5Pamiers - Saint-Girons (134.0km) | 134.0km |
| 04-05 | 1 | 1 | Stage 4Lavelanet - Plateau de Beille (122.0km) | 122.0km |
| 03-05 | 2 | 7 | Stage 3Bagnères-de-Luchon - Saverdun (153.0km) | 153.0km |
| 02-05 | 12 | 9 | Stage 2Bagnères-de-Bigorre - Bagnères-de-Luchon (125.0km) | 125.0km |
| 01-05 | 26 | 27 | Stage 1L'Isle-en-Dodon - Trie-sur-Baïse (146.0km) | 146.0km |
| 02-04 | 12 | | G.P. Palio del Recioto - Trofeo C&F Resinatura Blocchi (1.2U) | |
| 01-04 | 12 | | Giro del Belvedere (1.2U) | |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 41 | | Klassement |
| 23-03 | 30 | 41 | Stage 5Forlì - Forlì (157.0km) | 157.0km |
| 22-03 | 63 | 50 | Stage 4Brisighella - Brisighella (150.0km) | 150.0km |
| 21-03 | 62 | 48 | Stage 3Riccione - Riccione (134.0km) | 134.0km |
| 20-03 | 59 | 56 | Stage 2Riccione - Sogliano al Rubicone (140.0km) | 140.0km |
| 19-03 | 75 | 75 | Stage 1Pesaro - Pesaro (109.0km) | 109.0km |
| | | Istarsko Proljece - Istrian Spring Trophy (2.2) |
| 2 | | Klassement |
| 2 | | Punten |
| 1 | | Berg |
| 10-03 | 5 | 2 | Stage 3Pazin - Umag (118.0km) | 118.0km |
| 09-03 | 2 | 2 | Stage 2Novigrad - Motovun (139.0km) | 139.0km |
| 08-03 | 64 | 13 | Stage 1Porec - Funtana (144.0km) | 144.0km |
| 07-03 | 15 | 15 | PrologueVrsar - Vrsar (1.0km) | 1.0km |
| 03-03 | 53 | | Trofej Porec - Porec Trophy (1.2) | |
| 28-02 | 36 | | Trofej Umag - Umag Trophy (1.2) | |