| 16-10 | 66 | | Veneto Classic (1.1) | 190.0km |
| 12-10 | 59 | | Giro del Veneto (1.1) | 159.0km |
| 09-10 | 4 | | Paris - Tours Espoirs (1.2U) | 178.0km |
| 23-09 | 48 | | UCI World Championship Wollongong U23 (CM) | 169.0km |
| | | Okolo jiznich Cech / Tour of South Bohemia (2.2) |
| 4 | | Klassement |
| 4 | | Punten |
| 11-09 | 4 | 4 | Stage 4České Velenice - Jindřichův Hradec (152.0km) | 152.0km |
| 10-09 | 17 | 4 | Stage 3Studená - Protivin (157.0km) | 157.0km |
| 09-09 | 2 | 5 | Stage 2Třeboň - Nova Bystrice (143.0km) | 143.0km |
| 08-09 | 7 | 7 | Stage 1Kaplice - Kaplice (7.0km) | 7.0km |
| 04-09 | 30 | | Tour du Doubs (1.1) | 204.0km |
| 07-08 | 10 | | Commonwealth Games (JR) | |
| | | Tour d'Alsace (2.2) |
| 92 | | Klassement |
| 46 | | Punten |
| 31-07 | 10 | 92 | Stage 5Mulhouse - Berrwiller (158.0km) | 158.0km |
| 30-07 | 13 | 94 | Stage 4Kembs - Altkirch (169.0km) | 169.0km |
| 29-07 | 84 | 103 | Stage 3Vesoul - La Planche des Belles Filles (144.0km) | 144.0km |
| 28-07 | 113 | 111 | Stage 2Rust (Europapark) - Scherwiller (156.0km) | 156.0km |
| 27-07 | 26 | 26 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| | | Giro Ciclistico della Valle d'Aosta - Mont Blanc (2.2U) |
| 64 | | Klassement |
| 22 | | Punten |
| 24 | | Berg |
| 17-07 | 57 | 64 | Stage 5Valtournenche - Cervinia (119.0km) | 119.0km |
| 16-07 | 63 | 66 | Stage 4Pont-Saint-Martin - Fontainemore (173.0km) | 173.0km |
| 15-07 | 6 | 67 | Stage 3Aosta - Aosta (138.0km) | 138.0km |
| 14-07 | 90 | 91 | Stage 2Saint-Christophe - Saint-Christophe (124.0km) | 124.0km |
| 13-07 | 102 | 102 | Stage 1Saint-Gervais Mont-Blanc - Saint-Gervais Mont-Blanc (82.0km) | 82.0km |
| 26-06 | DNF | | National Road Championships - Great Britain (CN) | |
| | | Baby Giro (2.2U) |
| 62 | | Klassement |
| 10 | | Punten |
| 18-06 | 64 | 62 | Stage 7Cuneo - Pinerolo (142.0km) | 142.0km |
| 17-06 | 112 | 62 | Stage 6Boves - Colle Fauniera (110.0km) | 110.0km |
| 16-06 | 9 | 51 | Stage 5Busca - Peveragno (146.0km) | 146.0km |
| 14-06 | 7 | 65 | Stage 4Chiuro - Chiavenna (101.0km) | 101.0km |
| 13-06 | 69 | 65 | Stage 3Pinzolo - Santa Caterina Valfurva (177.0km) | 177.0km |
| 12-06 | 14 | 4 | Stage 2Rossano Veneto - Pinzolo (168.0km) | 168.0km |
| 11-06 | 7 | 7 | Stage 1Gradara - Argenta (163.0km) | 163.0km |
| 29-05 | 8 | | Coppa della Pace - Trofeo F.lli Anelli (1.2U) | |
| 28-05 | 4 | | Strade Bianche di Romagna (1.2U) | |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 32 | | Klassement |
| 14 | | Punten |
| 01-05 | 66 | 32 | Stage 7Ploumilliau - Lannion (158.0km) | 158.0km |
| 30-04 | 49 | 10 | Stage 6Plumergat - Camors (162.0km) | 162.0km |
| 29-04 | 12 | 14 | Stage 5Ploërmel - Scaer (193.0km) | 193.0km |
| 28-04 | 20 | 12 | Stage 4Saint-Jacut-de-la-Mer - Guillac (167.0km) | 167.0km |
| 27-04 | 23 | 11 | Stage 3Lohéac - Le Hinglé (171.0km) | 171.0km |
| 26-04 | 6 | 7 | Stage 2Missilac - La Chapelle Bouexic (152.0km) | 152.0km |
| 25-04 | 11 | 12 | Stage 1Guenrouet - Sainte-Reine-de-Bretagne (162.0km) | 162.0km |
| 16-04 | 48 | | Liège-Bastogne-Liège U23 (1.2U) | 174.0km |
| | | Le Triptyque des Monts et Châteaux
(2.2U) |
| 9 | | Klassement |
| 14 | | Punten |
| 15 | | Berg |
| 03-04 | 27 | 9 | Stage 3bEllezelles - Saint-Sauveur (96.0km) | 96.0km |
| 03-04 | 33 | 9 | Stage 3aWodecq - Wodecq (14.0km) | 14.0km |
| 02-04 | 5 | 4 | Stage 2Bernissart - Tertre (169.0km) | 169.0km |
| 01-04 | 10 | 10 | Stage 1Antoing - Mont-Saint-Aubert (131.0km) | 131.0km |
| 20-03 | 20 | | Cholet - Pays de la Loire (1.1) | 202.0km |
| 19-03 | 24 | | Classic Loire Atlantique (1.1) | 182.0km |
| | | Istarsko Proljece-Istrian Spring Trophy (2.2) |
| 3 | | Klassement |
| 4 | | Punten |
| 4 | | Berg |
| 13-03 | 25 | 3 | Stage 3Pazin - Umag (136.0km) | 136.0km |
| 12-03 | 35 | 4 | Stage 2Novigrad - Motovun (175.0km) | 175.0km |
| 11-03 | 1 | 1 | Stage 1Porec - Funtana (152.0km) | 152.0km |
| 10-03 | 10 | 10 | PrologueVrsar - Vrsar (1.0km) | 1.0km |
| 06-03 | 5 | | Trofej Porec - Porec Trophy
(1.2) | |
| 02-03 | 37 | | Trofej Umag - Umag Trophy (1.2) | |