17.10 | 3 | | | National Championships Great Britain ME - Road Race (NC) | 166 | 7 | 60 | more |
14.10 | 1 | | | National Championships Great Britain ME - ITT (NC) | 44.7 | 15 | 50 | more |
07.10 | 11 | | | Gran Piemonte (1.Pro) | 168 | 20 | 30 | more |
05.10 | DNF | | | Tre Valli Varesine (1.Pro) | 196.7 | | | more |
04.10 | 17 | | | Coppa Bernocchi - GP BPM (1.Pro) | 197.15 | 9 | 5 | more |
26.09 | 35 | | | World Championships ME - Road Race (WC) | 268.3 | 15 | 10 | more |
19.09 | 8 | | | World Championships ME - ITT (WC) | 43.3 | 70 | 70 | more |
05.09 › 12.095-12/9 | | | | Tour of Britain (2.Pro) | | | | more |
| 27 | | | Mountains classificationMountains classification | | | | |
| 1 | | | Points classificationPoints classification | | | | |
| 2 | | | General classificationGeneral classification | | 110 | 150 | |
12.09 | 11 | | | S8Stage 8 - Stonehaven › Aberdeen | 173 | | | |
11.09 | 6 | 1 | | S7Stage 7 - Hawick › Edinburgh | 194.8 | 3 | | |
10.09 | 2 | 1 | | S6Stage 6 - Carlisle › Gateshead | 198 | 18 | 10 | |
09.09 | 1 | 1 | | S5Stage 5 - Alderley Park › Warrington | 152.2 | 30 | 20 | |
08.09 | 5 | 2 | | S4Stage 4 - Aberaeron › Great Orme, Llandudno | 210 | 4 | | |
07.09 | 1 | 1 | | S3 (TTT)Stage 3 (TTT) - Carmarthenshire (Llandeilo) › Carmarthenshire (National Botanic Garden of Wales) | 18.2 | 15 | 3.33 | |
06.09 | 2 | 3 | | S2Stage 2 - Sherford › Exeter | 183.9 | 18 | 10 | |
05.09 | 4 | 4 | | S1Stage 1 - Penzance › Bodmin | 180.8 | 7 | | |
29.08 | 4 | | | Bretagne Classic - Ouest-France (1.UWT) | 251 | 90 | 220 | more |
19.08 › 22.0819-22/8 | | | | Tour of Norway (2.Pro) | | | | more |
| 6 | | | Mountains classificationMountains classification | | | | |
| 2 | | | Points classificationPoints classification | | | | |
| 1 | | | General classificationGeneral classification | | 150 | 200 | |
22.08 | 33 | | | S4Stage 4 - Hinna Park › Stavanger | 156.5 | | | |
21.08 | 5 | 1 | | S3Stage 3 - Jørpeland › Jørpeland | 159.9 | 4 | | |
20.08 | 1 | 1 | | S2Stage 2 - Sirdal (Tjørhomfjellet) › Sirdal (Fidjeland) | 185.3 | 30 | 20 | |
19.08 | 1 | 1 | | S1Stage 1 - Egersund › Sokndal (Kroheia) | 150.8 | 30 | 20 | |
18.05 › 22.0518-22/5 | | | | Vuelta a Andalucia Ruta Ciclista Del Sol (2.Pro) | | | | more |
| 18 | | | Mountains classificationMountains classification | | | | |
| 1 | | | Points classificationPoints classification | | | | |
| 7 | | | General classificationGeneral classification | | 55 | 60 | |
22.05 | 1 | | | S5Stage 5 - Vera › Pulpí | 107 | 30 | 20 | |
21.05 | 8 | 8 | | S4Stage 4 - Baza › Cúllar Vega | 182.9 | 1 | | |
20.05 | 12 | 9 | | S3Stage 3 - Beas de Segura › Villarrodrigo (Puerto de Onsares) | 176.9 | | | |
19.05 | 1 | 1 | | S2Stage 2 - Iznájar › Alcalá la Real | 184.8 | 30 | 20 | |
18.05 | 4 | 4 | | S1Stage 1 - Mijas › Zahara de la Sierra | 152.1 | 7 | | |
05.05 › 09.055-9/5 | | | | Volta ao Algarve em Bicicleta (2.Pro) | | | | more |
| 4 | | | Mountains classificationMountains classification | | | | |
| 6 | | | Points classificationPoints classification | | | | |
| 2 | | | General classificationGeneral classification | | 110 | 150 | |
09.05 | 10 | | | S5Stage 5 - Albufeira › Malhão | 170.1 | | | |
08.05 | 9 | 1 | | S4 (ITT)Stage 4 (ITT) - Lagoa › Lagoa | 20.3 | | | |
07.05 | 37 | 1 | | S3Stage 3 - Faro › Tavira | 203.1 | | | |
06.05 | 1 | 1 | | S2Stage 2 - Sagres › Fóia | 182.8 | 30 | 20 | |
05.05 | 9 | 9 | | S1Stage 1 - Lagos › Portimão | 189.5 | | | |
04.04 | 53 | | | Ronde van Vlaanderen - Tour des Flandres ME (1.UWT) | 254.3 | 5 | 5 | more |
31.03 | 11 | | | Dwars door Vlaanderen - A travers la Flandre ME (1.UWT) | 184.1 | 38 | 40 | more |
23.03 › 27.0323-27/3 | | | | Settimana Internazionale Coppi e Bartali (2.1) | | | | more |
| 1 | | | Youth classificationYouth classification | | | | |
| 2 | | | Points classificationPoints classification | | | | |
| 4 | | | General classificationGeneral classification | | 36 | 60 | |
27.03 | 4 | | | S5Stage 5 - Forlì › Forlì | 166.2 | 5 | | |
26.03 | 4 | 3 | | S4Stage 4 - San Marino › San Marino | 154.8 | 5 | | |
25.03 | 1 | 2 | | S3Stage 3 - Riccione › Riccione | 139 | 20 | 14 | |
24.03 | 5 | 6 | | S2Stage 2 - Riccione › Sogliano al Rubicone | 163.5 | 4 | | |
23.03 | 5 | 21 | | S1b (TTT)Stage 1b (TTT) - Gatteo › Gatteo | 10.8 | 2 | | |
23.03 | 5 | 5 | | S1aStage 1a - Gatteo › Gatteo | 97.8 | 4 | | |
19.03 | 60 | | | Bredene Koksijde Classic (1.Pro) | 199.9 | | | more |
17.03 | 27 | | | Danilith Nokere Koerse ME (1.Pro) | 195 | | 5 | more |
07.03 | 22 | | | GP Industria & Artigianato (1.Pro) | 193.4 | 4 | 5 | more |
28.02 | DNF | | | Kuurne-Brussel-Kuurne (1.Pro) | 197 | | | more |
27.02 | 66 | | | Omloop Het Nieuwsblad ME (1.UWT) | 200.5 | 5 | | more |
03.02 › 07.023-7/2 | | | | Etoile de Bessèges - Tour du Gard (2.1) | | | | more |
| 19 | | | Youth classificationYouth classification | | | | |
| 5 | | | Mountains classificationMountains classification | | | | |
| 18 | | | Points classificationPoints classification | | | | |
| 120 | | | General classificationGeneral classification | | | | |
07.02 | 3 | | | S5 (ITT)Stage 5 (ITT) - Alès › Alès | 10.74 | 7 | 3 | |
06.02 | 22 | 130 | | S4Stage 4 - Rousson › Saint-Siffret | 152 | | | |
05.02 | 115 | 137 | | S3Stage 3 - Bessèges › Bessèges | 156.9 | | | |
04.02 | 140 | 142 | | S2Stage 2 - Saint-Geniès › La Calmette | 153.8 | | | |
03.02 | 68 | 68 | | S1Stage 1 - Bellegarde › Bellegarde | 143.6 | | | |