| 15-10 | 21 | | Japan Cup Cycle Road Race (1.Pro) | 164.0km |
| 14-10 | 13 | | Japan Cup Criterium (CRTP) | |
| 05-10 | 37 | | Gran Piemonte (1.Pro) | 152.0km |
| 03-10 | 59 | | Tre Valli Varesine (1.Pro) | 196.0km |
| 02-10 | 57 | | Coppa Bernocchi (1.Pro) | 187.0km |
| 22-09 | 7 | | UEC Road European Championships U23 (CC) | 136.0km |
| 17-09 | 11 | | Trofeo Matteotti (1.1) | 195.0km |
| 16-09 | DNF | | Memorial Marco Pantani (1.1) | 193.0km |
| 14-09 | 13 | | Gran Premio città di Peccioli - Coppa Sabatini (1.Pro) | |
| 13-09 | 52 | | Giro della Toscana (1.1) | |
| 10-09 | 38 | | Grand Prix de la Somme Conseil Départemental 80 (1.2) | |
| | | Tour de l'Avenir (2.NCUP) |
| 42 | | Standings |
| 4 | | Points |
| 18 | | Mountain |
| 27-08 | 63 | 42 | Stage 8Val Cenis - Sainte-Foy-Tarentaise | 100.0km |
| 26-08 | 67 | 40 | Stage 7bLes Karellis - Col du Mont Cenis | 70.0km |
| 26-08 | 61 | 42 | Stage 7aMontricher-Albanne - Les Karellis | 11.0km |
| 25-08 | 67 | 42 | Stage 6Méribel - Col de la Loze (Méribel) | 65.0km |
| 24-08 | 3 | 10 | Stage 5La Tour-de-Salvagny - Lac d'Aiguebelette | 141.0km |
| 23-08 | 4 | 13 | Stage 4Aigurande - Évaux-les-Bains | 149.0km |
| 22-08 | | 21 | Stage 3Vatan - Issoudun | 21.0km |
| 21-08 | 10 | 9 | Stage 2Nozay - Château-Chinon | 189.0km |
| 20-08 | 10 | 10 | Stage 1Carnac - La Gacilly | 140.0km |
| 12-08 | DNF | | UCI World Championship Glasgow U23 (CM) | 168.0km |
| | | Czech Tour (2.1) |
| 14 | | Standings |
| 19 | | Points |
| 30-07 | 6 | 14 | Stage 4Šumperk - Šumperk | 178.0km |
| 29-07 | 22 | 23 | Stage 3Moravská Třebová - Cervenohorské sedlo | 161.0km |
| 28-07 | 27 | 27 | Stage 2Olomouc - Pustevny | 166.0km |
| 27-07 | 52 | 52 | Stage 1Prostejov - Uničov | 167.0km |
| 24-06 | 1 | | National Road Championships - Italy U23 (CN) | |
| | | Giro d'Italia Giovani (2.2U) |
| 20 | | Standings |
| 12 | | Points |
| 18-06 | 12 | 20 | Stage 8Tavagnacco - Trieste | 131.0km |
| 17-06 | 22 | 21 | Stage 7Possagno - Pian del Cansiglio | 175.0km |
| 16-06 | 59 | 26 | Stage 6Pergine Valsugana - Povegliano | 166.0km |
| 15-06 | 3 | 24 | Stage 5Cesano Maderno - Manerba del Garda | 164.0km |
| 14-06 | 31 | 27 | Stage 4Morbegno - Passo dello Stelvio | 118.0km |
| 13-06 | 61 | 10 | Stage 3Priocca - Magenta | 146.0km |
| 12-06 | 2 | 10 | Stage 2San Francesco al Campo - Cherasco | 151.0km |
| 11-06 | 16 | 16 | Stage 1Aglie - Aglie | 9.0km |
| 02-06 | 4 | | Giro dell'Appennino (1.1) | 198.0km |
| | | Orlen Nations Grand Prix (2.NCUP) |
| 20 | | Standings |
| 28-05 | 27 | 20 | Stage 5Sanok - Arlamów | 146.0km |
| 27-05 | 3 | 16 | Stage 4Bukovina - Nowy Sacz | 128.0km |
| 26-05 | 1 | 17 | Stage 3Levoca - Strbské Pleso | 130.0km |
| 25-05 | 31 | 22 | Stage 2Hatvan - Bükkszentkereszt | 154.0km |
| 24-05 | 4 | 4 | Stage 1Kapsosvár - Balatonföldvár | 136.0km |
| 21-05 | 29 | | Rund um Köln (1.1) | 201.0km |
| 18-05 | 22 | | Circuit de Wallonie (1.1) | |
| 07-05 | 2 | | Flèche Ardennaise (1.2) | 170.0km |
| 15-04 | 1 | | Liège-Bastogne-Liège U23 (1.2U) | 174.0km |
| 12-04 | 14 | | De Brabantse Pijl (1.Pro) | 205.0km |
| | | Circuit des Ardennes (2.2) |
| 6 | | Standings |
| 4 | | Points |
| 09-04 | 6 | 6 | Stage 4Bazeilles - Charleville-Mézières | 180.0km |
| 08-04 | 5 | 8 | Stage 3Chooz - Haybes | 166.0km |
| 07-04 | 10 | 10 | Stage 2Renneville - Gruyères | 187.0km |
| 06-04 | 18 | 18 | Stage 1Nouvion-sur-Meuse - Sedan | 90.0km |
| 01-04 | DNF | | Volta Limburg Classic (1.1) | 196.0km |
| 15-03 | 42 | | Milano - Torino (1.Pro) | 192.0km |
| 01-03 | 42 | | Trofeo Laigueglia (1.Pro) | 201.0km |
| 26-02 | 21 | | Faun Drome Classic (1.Pro) | |
| 25-02 | 70 | | Faun-Ardèche Classic
(1.Pro) | |
| | | Tour of Oman (2.Pro) |
| 44 | | Standings |
| 15-02 | 54 | 44 | Stage 5Samail - Jabal al Akhdhar (Green Mountain) | 152.0km |
| 14-02 | 33 | 45 | Stage 4Izki - Yitti Hills | 204.0km |
| 13-02 | 53 | 48 | Stage 3Al Khobar - Jabal Haat | 151.0km |
| 12-02 | 43 | 44 | Stage 2Muscat - Qurayyat | 174.0km |
| 11-02 | 109 | 109 | Stage 1Al Rustaq Fort - Muscat | 147.0km |
| 10-02 | 4 | | Muscat Classic (1.1) | 173.0km |