28.09 | 68 | | | World Championships MU - Road Race (WC) | 179.5 | | | more |
20.09 | DNF | | | Coppa Sabatini - Gran Premio città di Peccioli (1.1) Bahrain Merida Pro Cycling Team | 201.8 | | | more |
19.09 | DNF | | | Giro della Toscana - Memorial Alfredo Martini (1.1) Bahrain Merida Pro Cycling Team | 198.9 | | | more |
02.09 › 09.092-9/9 | | | | Ovo Energy Tour of Britain (2.HC) Great Britain | | | | more |
| 37 | | | General classificationGeneral classification | | | 3 | |
09.09 | 88 | | | S8Stage 8 - London › London | 77 | | | |
08.09 | 98 | 37 | | S7Stage 7 - West Bridgford › Mansfield | 215.6 | | | |
07.09 | 19 | 26 | | S6Stage 6 - Barrow-in-Furness › Whinlatter Pass | 168.3 | | | |
06.09 | 10 | 33 | | S5 (TTT)Stage 5 (TTT) - Cockermouth › Whinlatter Pass | 14 | | | |
05.09 | 85 | 32 | | S4Stage 4 - Nuneaton › Royal Leamington Spa | 183.5 | | | |
04.09 | 63 | 32 | | S3Stage 3 - Bristol › Bristol | 127.2 | | | |
03.09 | 26 | 30 | | S2Stage 2 - Cranbrook › Barnstaple | 174.9 | | | |
02.09 | 81 | 81 | | S1Stage 1 - Pembrey Country Park › Newport | 174.8 | | | |
17.08 › 26.0817-26/8 | | | | Tour de l'Avenir (2.Ncup) | | | | more |
| 79 | | | General classificationGeneral classification | | | | |
26.08 | 114 | | | S10Stage 10 - Val d'Isère › Saint-Colomban-des-Villards Col du Glandon | 150.8 | | | |
25.08 | 85 | 55 | | S9Stage 9 - Séez › Val d'Isère | 89 | | | |
24.08 | 27 | 43 | | S8Stage 8 - La Bathie › Crest-Voland Cohennoz | 81.1 | | | |
23.08 | 77 | 68 | | S7Stage 7 - Moutiers › Méribel | 35.9 | | | |
22.08 | 86 | 46 | | S6Stage 6 - Le Blanc › Cérilly | 183.5 | | | |
21.08 | 40 | 49 | | S5Stage 5 - Beaugency › Levroux | 130.4 | | | |
20.08 | 16 | 67 | | S4 (TTT)Stage 4 (TTT) - Orléans › Orléans | 20.2 | | | |
19.08 | 72 | 47 | | S3Stage 3 - Le Lude › Châteaudu | 165.8 | | | |
18.08 | 52 | 43 | | S2Stage 2 - Drefféac › Châteaubriant | 137.6 | | | |
17.08 | 42 | 43 | | S1Stage 1 - Grand-Champ › Elven | 132.5 | | | |
01.08 › 05.081-5/8 | | | | Tour Alsace (2.2) | | | | more |
| 33 | | | Points classificationPoints classification | | | | |
| 83 | | | General classificationGeneral classification | | | | |
05.08 | 10 | | | S4Stage 4 - Riedisheim › Dannemarie | 145.6 | | | |
04.08 | 58 | 96 | | S3Stage 3 - Ribeauvillé › Station du Lac Blanc | 165.3 | | | |
03.08 | 105 | 128 | | S2Stage 2 - Vesoul › La Planche des Belles Filles | 143.1 | | | |
02.08 | 144 | 141 | | S1Stage 1 - Champ de Feu › Sélestat | 147.5 | | | |
01.08 | 3 | 7 | | ProloguePrologue - Sausheim › Sausheim | 4.7 | 3 | 0.333 | |
01.07 | DNF | | | National Championships Great Britain ME - Road Race (NC) | 185.6 | | | more |
07.06 › 16.067-16/6 | | | | Giro Ciclistico d'Italia (2.2U) | | | | more |
| 4 | | | Mountains classificationMountains classification | | | | |
| 5 | | | General classificationGeneral classification | | 8 | 10 | |
16.06 | 12 | | | S9b (ITT)Stage 9b (ITT) - Il Muro di cà del Poggio › Cà del Poggio | 22.4 | | | |
16.06 | 10 | 3 | | S9aStage 9a - Conegliano › Valdobbiadene | 72.8 | | | |
15.06 | 15 | 6 | | S8Stage 8 - Levico Terme › Asiago | 157.4 | | | |
14.06 | 1 | 3 | | S7Stage 7 - Schio › Pian Delle Fugazze | 136.9 | 5 | 5 | |
13.06 | 30 | 3 | | S6Stage 6 - Dimaro Folgarida › Pergine Valsugana | 120.7 | | | |
12.06 | 2 | 1 | | S5Stage 5 - Darfo Boario Terme › Dimaro Folgarida (Malga di Dimaro) | 127.8 | 2 | 1 | |
11.06 | 6 | 4 | | S4Stage 4 - Mornico Al Serio › Passo Manivia | 127.9 | | | |
10.06 | 29 | 18 | | S3Stage 3 - Rio Saliceto › Mornico Al Serio | 164.3 | | | |
09.06 | 11 | 18 | | S2Stage 2 - Nonantola › Sestola | 138.2 | | | |
08.06 | 47 | 27 | | S1Stage 1 - Riccione › Forlì | 137.7 | | | |
07.06 | 30 | 30 | | ProloguePrologue - Forlì › Forlì | 4.4 | | | |
17.05 › 20.0517-20/5 | | | | Ronde de l'Isard (2.2U) | | | | more |
| 1 | | | Mountains classificationMountains classification | | | | |
| 1 | | | General classificationGeneral classification | | 25 | 30 | |
20.05 | 9 | | | S4Stage 4 - Salies-du-Salat › Saint-Girons | 152.4 | | | |
19.05 | 26 | 1 | | S3Stage 3 - Lévignac › Boulogne-sur-Gesse | 153.4 | | | |
18.05 | 1 | 1 | | S2Stage 2 - Fonsorbes › Goulier-Neige | 154.3 | 5 | 5 | |
17.05 | 1 | 1 | | S1Stage 1 - Lorp-Sentaraille › Eycheil (Ouerdes) | 125.9 | 5 | 5 | |
06.05 | 50 | | | Flèche Ardennaise (1.2) | 179.7 | | | more |
25.04 › 01.0525-1/4 | | | | Le Tour de Bretagne Cycliste (2.2) | | | | more |
| 9 | | | Youth classificationYouth classification | | | | |
| 17 | | | Points classificationPoints classification | | | | |
| 24 | | | General classificationGeneral classification | | | | |
01.05 | 11 | | | S7Stage 7 - Saint-Pôtan › Dinan | 145 | | | |
30.04 | 66 | 32 | | S6Stage 6 - Plancoët › Dol-de-Bretagne | 151.6 | | | |
29.04 | 13 | 30 | | S5Stage 5 - Colpo › Plancoët | 155.7 | | | |
28.04 | 10 | 30 | | S4Stage 4 - Clohars-Carnoët (Le Pouldu) › Grand-Champ | 162.7 | | | |
27.04 | 73 | 49 | | S3Stage 3 - Baden › Clohars-Carnoët | 181.1 | | | |
26.04 | 54 | 55 | | S2Stage 2 - Louisfert › Plougoumelen | 180 | | | |
25.04 | 34 | 37 | | S1Stage 1 - Châteaubriant › Louisfert | 159.8 | | | |
14.04 | 9 | | | Liège - Bastogne - Liège U23 (1.2U) | 173.4 | | 1 | more |
06.04 › 08.046-8/4 | | | | Circuit des Ardennes International (2.2) | | | | more |
| 19 | | | Youth classificationYouth classification | | | | |
| 63 | | | General classificationGeneral classification | | | | |
08.04 | 79 | | | S4Stage 4 - Charleville-Mézières › Charleville-Mézières | 106 | | | |
08.04 | 104 | 71 | | S3Stage 3 - Donchery › Vivier-au-Court | 79 | | | |
07.04 | 91 | 70 | | S2Stage 2 - Beauraing › Givet | 175 | | | |
06.04 | 72 | 72 | | S1Stage 1 - Bazeilles › Bazeilles | 160 | | | |
19.03 › 25.0319-25/3 | | | | Tour de Normandie (2.2) | | | | more |
| 47 | | | Youth classificationYouth classification | | | | |
| 72 | | | General classificationGeneral classification | | | | |
25.03 | 99 | | | S7Stage 7 - La Haye › Caen | 151 | | | |
24.03 | 122 | 69 | | S6Stage 6 - Granville › La Haye | 158 | | | |
23.03 | 73 | 49 | | S5Stage 5 - Villers-Bocage › Bagnoles-de-l'Orne | 174 | | | |
22.03 | 60 | 57 | | S4Stage 4 - Evrecy › Argentan | 152 | | | |
21.03 | 98 | 74 | | S3Stage 3 - Yvetot › Elbeuf-sur-Seine | 138 | | | |
20.03 | 51 | 57 | | S2Stage 2 - Evreux › Forges-les-Eaux | 156 | | | |
19.03 | 83 | 84 | | S1Stage 1 - Saint-Pierre-en-Auge › Le Neubourg | 140 | | | |
11.03 | 59 | | | Rabobank Dorpenomloop Rucphen (1.2) | 187.5 | | | more |