14.09 | DNF | | | Giro della Toscana - Memorial Alfredo Martini (1.1) | 199.2 | | | more |
11.09 | 60 | | | Grand Prix Cycliste de Montréal (1.UWT) | 221.4 | 5 | 3 | more |
09.09 | 115 | | | Grand Prix Cycliste de Québec (1.UWT) | 201.6 | 5 | | more |
04.09 | 19 | | | Maryland Cycling Classic, presented by UnitedHealthcare (1.Pro) | 196.9 | 7 | 5 | more |
30.07 › 05.0830-5/7 | | | | Tour de Pologne (2.UWT) | | | | more |
| 44 | | | Points classificationPoints classification | | | | |
| 19 | | | General classificationGeneral classification | | 24 | 24 | |
05.08 | 83 | | | S7Stage 7 - Valsir › Kraków | 177.8 | | | |
04.08 | 12 | 19 | | S6 (ITT)Stage 6 (ITT) - Nowy Targ (Gronków) › Stacja Narciarska Rusiński | 11.8 | | | |
03.08 | 94 | 34 | | S5Stage 5 - Łańcut › Rzeszów | 178.1 | | | |
02.08 | 53 | 35 | | S4Stage 4 - Lesko › Sanok | 179.4 | | | |
01.08 | 35 | 36 | | S3Stage 3 - Kraśnik › Przemyśl | 237.9 | | | |
31.07 | 113 | 112 | | S2Stage 2 - Chełm › Zamość | 205.6 | | | |
30.07 | 99 | 100 | | S1Stage 1 - Kielce › Lublin | 218.8 | | | |
26.06 | DNF | | | National Championships Great Britain ME - Road Race (NC) | 201 | | | more |
23.06 | 14 | | | National Championships Great Britain ME - ITT (NC) | 44.2 | | | more |
16.06 › 19.0616-19/6 | | | | La Route d'Occitanie - La Dépêche du Midi (2.1) | | | | more |
| 40 | | | Youth classificationYouth classification | | | | |
| 84 | | | General classificationGeneral classification | | | | |
19.06 | 107 | | | S4Stage 4 - Les Angles › Auterive | 188.3 | | | |
18.06 | 89 | 77 | | S3Stage 3 - Sigean › Les Angles | 188.7 | | | |
17.06 | 81 | 79 | | S2Stage 2 - Belmont-sur-Rance › Roquefort-sur-Soulzon | 33.6 | | | |
16.06 | 88 | 89 | | S1Stage 1 - Séméac › L'Isle Jourdain | 174.4 | | | |
14.06 | 16 | | | Mont Ventoux Dénivelé Challenge (1.1) | 154 | 5 | 3 | more |
06.05 › 29.056-29/5 | | | | Giro d'Italia (2.UWT) | | | | more |
14.05 | DNS | | | S8Stage 8 - Napoli › Napoli | 153 | | | |
13.05 | 157 | 85 | | S7Stage 7 - Diamante › Potenza | 196 | | | |
12.05 | 140 | 28 | | S6Stage 6 - Palmi › Scalea | 192 | | | |
11.05 | 102 | 28 | | S5Stage 5 - Catania › Messina | 174 | | | |
10.05 | 27 | 25 | | S4Stage 4 - Avola › Etna | 172 | | | |
08.05 | 147 | 54 | | S3Stage 3 - Kaposvár › Balatonfüred | 201 | | | |
07.05 | 72 | 54 | | S2 (ITT)Stage 2 (ITT) - Budapest › Budapest | 9.2 | | | |
06.05 | 56 | 57 | | S1Stage 1 - Budapest › Visegrád | 195 | | | |
24.04 | DNF | | | Liège-Bastogne-Liège (1.UWT) | 257.2 | | | more |
20.04 | 107 | | | La Flèche Wallonne (1.UWT) | 202.1 | 5 | | more |
22.03 › 26.0322-26/3 | | | | Settimana Internazionale Coppi e Bartali (2.1) | | | | more |
| 3 | | | Youth classificationYouth classification | | | | |
| 14 | | | Points classificationPoints classification | | | | |
| 4 | | | General classificationGeneral classification | | 36 | 60 | |
26.03 | 20 | | | S5Stage 5 - Casalguidi › Cantagrillo | 160 | | | |
25.03 | 40 | 4 | | S4Stage 4 - Montecatini › Montecatini | 158.7 | | | |
24.03 | 4 | 4 | | S3Stage 3 - San Marino › San Marino | 147 | 5 | | |
23.03 | 17 | 13 | | S2Stage 2 - Riccione › Longiano | 165.9 | | | |
22.03 | 17 | 17 | | S1Stage 1 - Riccione › Riccione | 164.6 | | | |
06.03 › 13.036-13/3 | | | | Paris - Nice (2.UWT) | | | | more |
13.03 | DNF | | | S8Stage 8 - Nice › Nice | 115.6 | | | |
12.03 | 48 | 81 | | S7Stage 7 - Nice › Col de Turini 132k | 155.2 | | | |
11.03 | 109 | 96 | | S6Stage 6 - Courthézon › Aubagne | 213.6 | | | |
10.03 | 76 | 86 | | S5Stage 5 - Saint-Just-Saint-Rambert › Saint-Sauveur-de-Montagut | 188.8 | | | |
09.03 | 30 | 108 | | S4 (ITT)Stage 4 (ITT) - Domérat › Montluçon | 13.4 | | | |
08.03 | 100 | 114 | | S3Stage 3 - Vierzon › Dun-le-Palestel | 190.8 | | | |
07.03 | 124 | 118 | | S2Stage 2 - Auffargis › Orléans | 159.2 | | | |
06.03 | 92 | 92 | | S1Stage 1 - Mantes-la-Ville › Mantes-la-Ville | 159.8 | | | |
18.02 › 20.0218-20/2 | | | | Tour des Alpes Maritimes et du Var (2.1) | | | | more |
20.02 | DNF | | | S3Stage 3 - Villefranche-sur-Mer › Blausasc | 112.6 | | | |
19.02 | 96 | 96 | | S2Stage 2 - Puget-Théniers › La Turbie | 149.1 | | | |
18.02 | 88 | 90 | | S1Stage 1 - Saint-Raphaël › La Seyne-sur-Mer | 176.3 | | | |