| | | Tour de l'Avenir (2.NCUP) |
| 29-08 | 10 | 13 | Stage 6aLa Rosière Espace San Bernardo - La Rosière Espace San Bernardo (41.0km) | 41.0km |
| 29-08 | 12 | 10 | Stage 6bLa Rosière-Montvalezan - La Rosière-Montvalezan (10.0km) | 10.0km |
| 28-08 | 13 | 19 | Stage 5Saint-Gervais Mont-Blanc - Tignes (121.0km) | 121.0km |
| 27-08 | 55 | 27 | Stage 4Montagnat - Val Suran (110.0km) | 110.0km |
| 26-08 | 52 | 27 | Stage 3Étang-sur-Arroux - Châtillon-sur-Chalaronne (158.0km) | 158.0km |
| 25-08 | 124 | 28 | Stage 2Saint-Symphorien-sur-Coise - Vitry-en-Charollais (136.0km) | 136.0km |
| 24-08 | 79 | 14 | Stage 1Aoste - Saint-Galmier (188.0km) | 188.0km |
| 23-08 | 13 | 13 | PrologueTignes - Tignes (3.0km) | 3.0km |
| | | Czech Tour (2.1) |
| 17 | | Klassement |
| 47 | | Punten |
| 5 | | Jongeren |
| 17-08 | 15 | 17 | Stage 4Kroměříž - Pustevny (178.0km) | 178.0km |
| 16-08 | 98 | 18 | Stage 3Prostejov - Ostrava (148.0km) | 148.0km |
| 15-08 | 18 | 18 | Stage 2Pardubice - Dlouhé (173.0km) | 173.0km |
| 14-08 | 50 | 50 | Stage 1Praha - Karlovy Vary (163.0km) | 163.0km |
| 10-08 | DNF | | Gran Premio Sportivi di Poggiana-Trofeo Bonin Costruzioni (1.2U) | |
| | | Giro Ciclistico della Valle d'Aosta - Mont Blanc (2.2U) |
| 19-07 | DNS | | Stage 4Saint-Pierre - Valsavarenche (160.0km) | 160.0km |
| 18-07 | 59 | 61 | Stage 3Pré-Saint-Didier - Colle del Gran San Bernardo (121.0km) | 121.0km |
| 16-07 | 66 | 66 | Stage 1Aosta - Aosta (85.0km) | 85.0km |
| 24-06 | DNS | | Giro dell'Appennino (1.1) | 198.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 2 | | Klassement |
| 19 | | Punten |
| 5 | | Berg |
| 22-06 | 4 | 2 | Stage 8Pinerolo - Pinerolo (127.0km) | 127.0km |
| 21-06 | 5 | 1 | Stage 7Bra - Prato Nevoso (163.0km) | 163.0km |
| 20-06 | 39 | 1 | Stage 6Ovada - Acqui Terme (154.0km) | 154.0km |
| 19-06 | 9 | 1 | Stage 5Fiorenzuola d'Arda - Gavi (153.0km) | 153.0km |
| 18-06 | 62 | 3 | Stage 4Manerbio - Salsomaggiore Terme (134.0km) | 134.0km |
| 17-06 | 4 | 3 | Stage 3Albese con Cassano - Passo del Maniva (144.0km) | 144.0km |
| 16-06 | 40 | 13 | Stage 2Rho - Cantù (146.0km) | 146.0km |
| 15-06 | 12 | 12 | Stage 1Rho - Rho (8.0km) | 8.0km |
| 04-05 | 99 | | Lotto Famenne Ardenne Classic (1.1) | 186.0km |
| 03-05 | 32 | | Flèche Ardennaise (1.2) | 174.0km |
| 22-04 | 27 | | G.P. Palio del Recioto - Trofeo Zanotti Mobili (1.2U) | 147.0km |
| 21-04 | 11 | | Giro del Belvedere (1.2U) | 168.0km |
| 19-04 | 8 | | Liège-Bastogne-Liège U23 (1.2U) | 175.0km |
| 05-04 | 69 | | Gran Premio Miguel Indurain (1.Pro) | 198.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 29-03 | DNF | | Stage 5Brisighella - Forlì (132.0km) | 132.0km |
| 28-03 | 35 | 28 | Stage 4Brisighella - Brisighella (150.0km) | 150.0km |
| 27-03 | 39 | 43 | Stage 3Riccione - Cesena (142.0km) | 142.0km |
| 26-03 | 51 | 51 | Stage 2Riccione - Sogliano al Rubicone (163.0km) | 163.0km |
| 25-03 | 110 | 110 | Stage 1Ferrara - Bondeno (174.0km) | 174.0km |
| | | Vuelta a Andalucia Ruta Ciclista Del Sol (2.Pro) |
| 22-02 | DNF | | Stage 4Córdoba - Alhaurín de la Torre (194.0km) | 194.0km |
| 21-02 | 25 | 48 | Stage 3Arjona - Pozoblanco (162.0km) | 162.0km |
| 20-02 | 71 | 60 | Stage 2Alcaudete - Torredelcampo (133.0km) | 133.0km |
| 19-02 | 56 | 56 | Stage 1Torrox - Cueva de Nerja (162.0km) | 162.0km |
| 31-01 | 19 | | Trofeo Serra Tramuntana (1.1) | 151.0km |
| 29-01 | 51 | | Trofeo Calvià (1.1) | 149.0km |