05.10 | 11 | | | Gran Piemonte (1.Pro) Soudal Quick-Step | 152 | 20 | 30 | more |
03.10 | DNF | | | Tre Valli Varesine (1.Pro) Soudal Quick-Step | 196.54 | | | more |
01.10 | 1 | | | Il Lombardia Under 23 (1.2U) | 170.6 | 15 | 30 | more |
26.09 | 6 | | | Ruota d'Oro - GP Festa del Perdono (1.2U) | 170.5 | 1 | 5 | more |
19.09 | 11 | | | Textielprijs Vichte (NAT) | 168.5 | 50 | | more |
12.09 | 25 | | | Memorial Briek Schotte (NAT) | 155 | 9 | | more |
11.09 | 5 | | | Neigem (NAT) | 114 | 48 | | more |
03.09 | 1 | | | Memorial Igor Decraene MU (NAT) | 21.2 | | | more |
20.08 › 27.0820-27/8 | | | | Tour de l'Avenir (2.Ncup) | | | | more |
| 3 | | | Mountains classificationMountains classification | | | | |
| 6 | | | Points classificationPoints classification | | | | |
| 5 | | | General classificationGeneral classification | | 8 | 50 | |
27.08 | 3 | | | S8Stage 8 - Val-Cenis › Sainte-Foy-Tarentaise | 99.6 | 1 | 5 | |
26.08 | 4 | 6 | | S7bStage 7b - Les Karellis › Val-Cenis Col du Mont Cenis | 70 | | | |
26.08 | 5 | 8 | | S7a (ITT)Stage 7a (ITT) - Montricher-Albanne › Les Karellis | 11.1 | | | |
25.08 | 5 | 11 | | S6Stage 6 - Méribel › Col de la Loze | 65 | | | |
24.08 | 64 | 30 | | S5Stage 5 - La Tour-de-Salvagny › Lac d'Aiguebelette | 141 | | | |
23.08 | 5 | 20 | | S4Stage 4 - Aigurande › Evaux-les-Bains | 133 | | | |
22.08 | 3 | 28 | | S3 (TTT)Stage 3 (TTT) - Issoudun › Vatan | 26.5 | | 1.25 | |
21.08 | 77 | 65 | | S2Stage 2 - Nozay › Chinon | 189 | | | |
20.08 | 43 | 43 | | S1Stage 1 - Carnac › La Gacilly | 140 | | | |
15.08 | 22 | | | Tour of Leuven - Memorial Jef Scherens (1.1) | 192.4 | | 3 | more |
26.07 › 30.0726-30/7 | | | | Tour Alsace (2.2) | | | | more |
| 2 | | | Youth classificationYouth classification | | | | |
| 5 | | | Mountains classificationMountains classification | | | | |
| 4 | | | Points classificationPoints classification | | | | |
| 4 | | | General classificationGeneral classification | | 11 | 20 | |
30.07 | 2 | | | S5Stage 5 - Ribeauville › Cernay | 137.7 | 2 | 3 | |
29.07 | 20 | 5 | | S4Stage 4 - Tagolsheim › Altkirch | 197 | | | |
28.07 | 5 | 5 | | S3Stage 3 - Vesoul › La Planche des Belles-Filles | 132.6 | | | |
27.07 | 99 | 24 | | S2Stage 2 - Rust (Europa-Park) › Sélestat | 166.1 | | | |
26.07 | 8 | 19 | | S1 (TTT)Stage 1 (TTT) - Sausheim › Sausheim | 4.3 | | | |
09.07 | 16 | | | Omloop der Zevenheuvelen (NAT) | 119.8 | | | more |
05.07 | 1 | | | Klimkoers Herbeumont U23 (NAT) | 143 | | | more |
01.07 | 2 | | | GP Color Code Bassenge (NAT) | 159 | | | more |
11.06 › 18.0611-18/6 | | | | Giro Next Gen (2.2U) | | | | more |
| 8 | | | Mountains classificationMountains classification | | | | |
| 17 | | | Points classificationPoints classification | | | | |
| 8 | | | General classificationGeneral classification | | 3 | 1 | |
18.06 | 8 | | | S8Stage 8 - Tavagnacco › Trieste | 131 | | | |
17.06 | 11 | 8 | | S7Stage 7 - Possagno › Pian del Cansiglio | 176 | | | |
16.06 | 89 | 7 | | S6Stage 6 - Pergine Valsugana › Povegliano | 166 | | | |
15.06 | 7 | 7 | | S5Stage 5 - Cesano Maderno › Manerba del Garda | 159 | | | |
14.06 | 8 | 8 | | S4Stage 4 - Morbegno › Passo dello Stelvio | 119 | | | |
13.06 | 43 | 19 | | S3Stage 3 - Priocca › Magenta | 146 | | | |
12.06 | 4 | 18 | | S2Stage 2 - San Francesco al Campo › Cherasco | 151 | | | |
11.06 | 25 | 25 | | S1 (ITT)Stage 1 (ITT) - Agliè › Agliè | 9.4 | | | |
14.05 | 5 | | | GP Vermarc (NAT) | 164 | 80 | | more |
07.05 | 3 | | | Flèche Ardennaise (1.2) | 175.3 | 7 | 25 | more |
15.04 | 9 | | | Liège - Bastogne - Liège U23 (1.2U) | 174.1 | | 1 | more |
06.04 › 09.046-9/4 | | | | Circuit des Ardennes (2.2) | | | | more |
| 36 | | | Youth classificationYouth classification | | | | |
| 10 | | | Mountains classificationMountains classification | | | | |
| 59 | | | General classificationGeneral classification | | | | |
09.04 | 114 | | | S4Stage 4 - Bazeilles › Charleville-Mézières | 138.7 | | | |
08.04 | 44 | 56 | | S3Stage 3 - Chooz › Haybes | 169.6 | | | |
07.04 | 95 | 83 | | S2Stage 2 - Renneville › Gruyères | 185.6 | | | |
06.04 | 56 | 56 | | S1Stage 1 - Nouvion-sur-Meuse › Sedan | 89.6 | | | |
21.03 › 25.0321-25/3 | | | | Settimana Internazionale Coppi e Bartali (2.1) Soudal Quick-Step | | | | more |
| 16 | | | Youth classificationYouth classification | | | | |
| 39 | | | General classificationGeneral classification | | | | |
25.03 | 66 | | | S5 (ITT)Stage 5 (ITT) - Carpi › Carpi | 18.6 | | | |
24.03 | 26 | 38 | | S4Stage 4 - Fiorano Modenese › Fiorano Modenese | 159.9 | | | |
23.03 | 64 | 48 | | S3Stage 3 - Forlì › Forlì | 139.7 | | | |
22.03 | 53 | 46 | | S2Stage 2 - Riccione › Longiano | 172.5 | | | |
21.03 | 19 | 19 | | S1Stage 1 - Riccione › Riccione | 161.8 | | | |
12.03 | 20 | | | La Get Up Cup (NAT) | 134 | 11 | | more |
19.02 › 26.0219-26/2 | | | | Tour du Rwanda (2.1) | | | | more |
| 2 | | | Youth classificationYouth classification | | | | |
| 9 | | | Mountains classificationMountains classification | | | | |
| 3 | | | General classificationGeneral classification | | 50 | 70 | |
26.02 | 4 | | | S8Stage 8 - Kigali › Kigali | 75.3 | 5 | | |
25.02 | 23 | 3 | | S7Stage 7 - Nyamata › Mont Kigali | 115.8 | | | |
24.02 | 7 | 1 | | S6Stage 6 - Rubavu › Gicumbi | 157 | 2 | | |
23.02 | 4 | 1 | | S5Stage 5 - Rusizi › Gisenyi (Rubavu) | 195.5 | 5 | | |
22.02 | 23 | 3 | | S4Stage 4 - Musanze › Karongi | 138.5 | | | |
21.02 | 2 | 2 | | S3Stage 3 - Huye › Musanze | 199.5 | 12 | 5 | |
20.02 | 13 | 32 | | S2Stage 2 - Kigali › Gisagara | 132.9 | | | |
19.02 | 75 | 75 | | S1Stage 1 - Kigali Golf › Rwamagana | 115.6 | | | |