| | | Tour Alsace (2.2) |
| 03-08 | DNF | | Stage 4Ribeauville - Lac Blanc | 161.0km |
| 02-08 | 91 | 90 | Stage 3Vesoul - La Planche des Belles Filles | 143.0km |
| 01-08 | 153 | 51 | Stage 2Selestat - Selestat | 153.0km |
| 31-07 | | 52 | Stage 1Sausheim - Sausheim | 4.0km |
| | | Giro Ciclistico della Valle d'Aosta Mont Blanc (2.2U) |
| 18-07 | DNF | | Stage 2Aymavilles - Valsavarenche | 137.0km |
| 17-07 | 68 | 16 | Stage 1Sainte-Foy-Tarentaise - Saint-Gervais Mont-Blanc | 126.0km |
| 16-07 | 4 | 4 | PrologueAosta - Aosta | 2.0km |
| 30-06 | 26 | | National Road Championships - Great Britain (CN) | |
| 27-06 | 27 | | National Road Championships - Great Britain TT U23 (CN) | |
| | | Baby Giro (2.2U) |
| 25 | | Standings |
| 55 | | Points |
| 29 | | Mountain |
| 23-06 | 58 | 25 | Stage 9Agordo - Passo Fedaia | 35.0km |
| 22-06 | 8 | 23 | Stage 8Rosà - Falcade | 134.0km |
| 21-06 | 64 | 33 | Stage 7Dimaro Folgarida - Levico Terme | 153.0km |
| 20-06 | 48 | 35 | Stage 6Aprica - Aprica | 94.0km |
| 19-06 | 33 | 37 | Stage 5Sorbolo - Passo Maniva | 155.0km |
| 17-06 | 21 | 41 | Stage 4Buonconvento - Vetta Amiata | 163.0km |
| 16-06 | 79 | 81 | Stage 3Sesto Fiorentino - Gaiole in Chianti | 145.0km |
| 15-06 | 90 | 41 | Stage 2Bagno di Romagna - Pescia | 174.0km |
| 14-06 | 84 | 21 | Stage 1Riccione - Santa Sofia | 143.0km |
| 13-06 | 22 | 22 | PrologueRiccione - Riccione | 3.0km |
| 02-06 | 108 | | Paris-Roubaix Espoirs (1.2U) | |
| | | A Travers les Hauts de France (2.2) |
| 35 | | Standings |
| 26-05 | 37 | 35 | Stage 3Petite-Forêt - Pecquencourt | 188.0km |
| 25-05 | 24 | 45 | Stage 2Seclin - Bonningues-lès-Calais | 197.0km |
| 24-05 | 79 | 97 | Stage 1Gavrelle - Épinoy | 125.0km |
| | | Tour d'Eure-et-Loir (2.2) |
| 55 | | Standings |
| 19-05 | 81 | 55 | Stage 3Châteauneuf-en-Thymerais - Chartres | 192.0km |
| 18-05 | 51 | 56 | Stage 2Maintenon - Authon-du-Perche | 188.0km |
| 20-04 | DNF | | Liège - Bastogne - Liège U23 (1.2U) | 171.0km |
| | | Volta ao Alentejo (2.2) |
| 31 | | Standings |
| 24-03 | 41 | 31 | Stage 6Portalegre - Évora | 152.0km |
| 23-03 | 26 | 28 | Stage 4Ponte de Sor - Portalegre | 74.0km |
| 23-03 | 88 | 33 | Stage 5Castelo de Vide - Castelo de Vide | 8.0km |
| 22-03 | 52 | 38 | Stage 3Santiago do Cacém - Mora | 176.0km |
| 21-03 | 40 | 40 | Stage 2Mértola - Odemira | 182.0km |
| 20-03 | 32 | 34 | Stage 1Montemor-o-Novo - Moura | 208.0km |
| 17-03 | 32 | | Classica da Arrabida - Cyclin'Portugal (1.2) | |
| 02-02 | 19 | | UCI Cyclo-cross World Championships Bogense U23 (CM) | |
| 27-01 | 32 | | Telenet UCI Cyclo-cross World Cup Hoogerheide U23 (CDM) | |
| 13-01 | 5 | | British National Championships (CN) | |
| 06-01 | 4 | | British National Trophy Series #6 - Shrewsbury (C2) | |
| 01-01 | 8 | | DVV verzekeringen trofee - GP Sven Nys U23 (C1) | |