| 27-09 | DNF | | UCI World Championship Zurich U23 (CM) | 173.0km |
| | | Tour of Britain (2.Pro) |
| 11 | | Klassement |
| 11 | | Punten |
| 4 | | Jongeren |
| 08-09 | 8 | 11 | Stage 6Lowestoft - Felixstowe (158.0km) | 158.0km |
| 07-09 | 6 | 15 | Stage 5Northampton - Northampton (146.0km) | 146.0km |
| 06-09 | 6 | 15 | Stage 4Derby - Newark-on-Trent (138.0km) | 138.0km |
| 05-09 | 17 | 15 | Stage 3Sheffield - Barnsley (166.0km) | 166.0km |
| 04-09 | 18 | 11 | Stage 2Darlington - Redcar (152.0km) | 152.0km |
| 03-09 | 3 | 4 | Stage 1Kelso - Kelso (181.0km) | 181.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 63 | | Klassement |
| 29 | | Punten |
| 24-08 | 50 | 63 | Stage 6 Bobbio Pellice - Colle delle Finestre (120.0km) | 120.0km |
| 23-08 | 60 | 64 | Stage 5Les Karellis - Condove (120.0km) | 120.0km |
| 22-08 | 74 | 65 | Stage 4La Rosière-Montvalezan - Les Karellis (143.0km) | 143.0km |
| 21-08 | 55 | 53 | Stage 3Peisey-Vallandry - La Rosière-Montvalezan (71.0km) | 71.0km |
| 20-08 | 63 | 20 | Stage 2Mouchard - Plateau d'Hauteville (170.0km) | 170.0km |
| 19-08 | 8 | 28 | Stage 1Sarrebourg - Ronchamp (185.0km) | 185.0km |
| 18-08 | 27 | 27 | PrologueSarrebourg - Sarrebourg (7.0km) | 7.0km |
| | | Tour Alsace (2.2) |
| 35 | | Klassement |
| 2 | | Punten |
| 12 | | Berg |
| 21 | | Jongeren |
| 28-07 | 6 | 35 | Stage 5Rust (Europapark) - Selestat (166.0km) | 166.0km |
| 27-07 | 2 | 36 | Stage 4L'Isle-sur-le-Doubs - Valentigney (176.0km) | 176.0km |
| 26-07 | 59 | 47 | Stage 3Vesoul - La Planche des Belles Filles (132.0km) | 132.0km |
| 25-07 | 28 | 20 | Stage 2Riedisheim - Ferrette (154.0km) | 154.0km |
| 24-07 | | 4 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| 23-06 | 6 | | National Road Championships - Great Britain (CN) | 181.0km |
| 20-06 | DNS | | National Road Championships - Great Britain TT U23 (CN) | 29.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 14-06 | DNF | | Stage 6Borgo Virgilio - Fosse (145.0km) | 145.0km |
| 13-06 | 17 | 59 | Stage 5Bergamo - Cremona (136.0km) | 136.0km |
| 12-06 | 13 | 59 | Stage 4Pertusio - Borgomanero (130.0km) | 130.0km |
| 11-06 | 92 | 63 | Stage 3Verrès - Pian della Mussa (127.0km) | 127.0km |
| 10-06 | 52 | 10 | Stage 2Aymavilles - Saint-Vincent (121.0km) | 121.0km |
| 09-06 | 16 | 16 | Stage 1Aosta - Aosta (11.0km) | 11.0km |
| | | Course de la Paix U23 (2.NCUP) |
| 54 | | Klassement |
| 8 | | Punten |
| 02-06 | 6 | 54 | Stage 4Šumperk - Jeseník (126.0km) | 126.0km |
| 01-06 | 72 | 60 | Stage 3Bruntal - Dlouhé (99.0km) | 99.0km |
| 31-05 | 8 | 11 | Stage 2Uničov - Rýmařov (117.0km) | 117.0km |
| 30-05 | 8 | 8 | Stage 1Krnov - Opava (123.0km) | 123.0km |
| | | 4 Jours de Dunkerque (2.Pro) |
| 19 | | Klassement |
| 20 | | Punten |
| 12 | | Berg |
| 11 | | Jongeren |
| 19-05 | 26 | 19 | Stage 6Loon-Plage - Dunkerque (176.0km) | 176.0km |
| 18-05 | 29 | 23 | Stage 5Arques - Cassel (179.0km) | 179.0km |
| 17-05 | 24 | 21 | Stage 4Mazingarbe - Pont-à-Marcq (171.0km) | 171.0km |
| 16-05 | 63 | 29 | Stage 3Saint-Laurent-Blangy - Bouchain (165.0km) | 165.0km |
| 15-05 | 36 | 23 | Stage 2Wimereux - Abbeville (184.0km) | 184.0km |
| 14-05 | 16 | 16 | Stage 1Dunkerque - Le Touquet-Paris-Plage (173.0km) | 173.0km |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 44 | | Klassement |
| 24 | | Punten |
| 5 | | Berg |
| 01-05 | 39 | 44 | Stage 7Le Hinglé - Dinan (159.0km) | 159.0km |
| 30-04 | 55 | 51 | Stage 6Saint-Onen-la-Chapelle - Louvigné-du-Désert (192.0km) | 192.0km |
| 29-04 | 45 | 58 | Stage 5La Gacilly - Saint-Méen-le-Grand (203.0km) | 203.0km |
| 28-04 | 76 | 61 | Stage 4Le Croisic - La Gacilly (171.0km) | 171.0km |
| 27-04 | 54 | 35 | Stage 3Noyal-Pontivy - Guérande (180.0km) | 180.0km |
| 26-04 | 21 | 15 | Stage 2Milizac-Guipronvel - Noyal-Pontivy (206.0km) | 206.0km |
| 25-04 | 6 | 13 | Stage 1Locmaria-Plouzané - Plougonvelin (146.0km) | 146.0km |
| 21-04 | 15 | | Gent-Wevelgem / Kattekoers-Ieper U23 (1.2U) | 182.0km |
| 07-04 | 2 | | Paris-Roubaix Espoirs (1.2U) | 164.0km |
| | | Olympia's Tour (2.2) |
| 32 | | Klassement |
| 24-03 | 41 | 32 | Stage 5Neede - Tiel (161.0km) | 161.0km |
| 23-03 | 33 | 23 | Stage 4Gieten - Ruurlo (168.0km) | 168.0km |
| 22-03 | 18 | 23 | Stage 3Assen - Roden (140.0km) | 140.0km |
| 21-03 | 42 | 28 | Stage 2Baflo - Baflo (144.0km) | 144.0km |
| 20-03 | 16 | 16 | Stage 1Medemblik - Medemblik (145.0km) | 145.0km |
| 17-03 | 16 | | Dorpenomloop Rucphen (1.2) | 181.0km |
| 15-03 | 13 | | Youngster Coast Challenge (1.2U) | |