| | | Tour of Taihu Lake (2.Pro) |
| 13-10 | DNF | | Stage 5Nanjing - Nanjing (114.0km) | 114.0km |
| 12-10 | 7 | 10 | Stage 4Huzhou - Changxing (117.0km) | 117.0km |
| 11-10 | 29 | 7 | Stage 3Wujiang - Wujiang (116.0km) | 116.0km |
| 10-10 | 50 | 7 | Stage 2Qidong - Qidong (78.0km) | 78.0km |
| 09-10 | 58 | 5 | Stage 1Wuxi - Wuxi (103.0km) | 103.0km |
| 25-09 | 71 | | Omloop van het Houtland (1.1) | 195.0km |
| 22-09 | 84 | | Gooikse Pijl (1.1) | |
| 20-09 | 64 | | Kampioenschap van Vlaanderen (1.1) | 181.0km |
| 15-09 | 94 | | Grand Prix d'Isbergues - Pas de Calais (1.1) | 198.0km |
| 08-09 | 95 | | GP de Fourmies / La Voix du Nord (1.Pro) | 197.0km |
| 21-07 | 10 | | Grand Prix de la ville de Pérenchies (1.2) | 178.0km |
| 23-06 | 29 | | National Road Championships - Great Britain (CN) | 181.0km |
| 20-06 | 4 | | 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 | 53 | 107 | Stage 5Bergamo - Cremona (136.0km) | 136.0km |
| 12-06 | 35 | 107 | Stage 4Pertusio - Borgomanero (130.0km) | 130.0km |
| 11-06 | 109 | 120 | Stage 3Verrès - Pian della Mussa (127.0km) | 127.0km |
| 10-06 | 131 | 131 | Stage 2Aymavilles - Saint-Vincent (121.0km) | 121.0km |
| 09-06 | 56 | 56 | Stage 1Aosta - Aosta (11.0km) | 11.0km |
| 20-05 | 78 | | Ronde van Limburg (1.1) | 195.0km |
| 18-05 | 83 | | Veenendaal-Veenendaal (1.1) | 171.0km |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 49 | | Klassement |
| 39 | | Punten |
| 41 | | Berg |
| 01-05 | 45 | 49 | Stage 7Le Hinglé - Dinan (159.0km) | 159.0km |
| 30-04 | 36 | 55 | Stage 6Saint-Onen-la-Chapelle - Louvigné-du-Désert (192.0km) | 192.0km |
| 29-04 | 61 | 62 | Stage 5La Gacilly - Saint-Méen-le-Grand (203.0km) | 203.0km |
| 28-04 | 26 | 65 | Stage 4Le Croisic - La Gacilly (171.0km) | 171.0km |
| 27-04 | 5 | 73 | Stage 3Noyal-Pontivy - Guérande (180.0km) | 180.0km |
| 26-04 | 85 | 82 | Stage 2Milizac-Guipronvel - Noyal-Pontivy (206.0km) | 206.0km |
| 25-04 | 44 | 49 | Stage 1Locmaria-Plouzané - Plougonvelin (146.0km) | 146.0km |
| 21-04 | 89 | | Gent-Wevelgem / Kattekoers-Ieper U23 (1.2U) | 182.0km |
| 07-04 | 33 | | Paris-Roubaix Espoirs (1.2U) | 164.0km |
| 03-04 | 70 | | Scheldeprijs (1.Pro) | 205.0km |
| | | Olympia's Tour (2.2) |
| 7 | | Klassement |
| 3 | | Punten |
| 24-03 | 9 | 7 | Stage 5Neede - Tiel (161.0km) | 161.0km |
| 23-03 | 2 | 5 | Stage 4Gieten - Ruurlo (168.0km) | 168.0km |
| 22-03 | 10 | 18 | Stage 3Assen - Roden (140.0km) | 140.0km |
| 21-03 | 32 | 17 | Stage 2Baflo - Baflo (144.0km) | 144.0km |
| 20-03 | 6 | 6 | Stage 1Medemblik - Medemblik (145.0km) | 145.0km |
| 17-03 | 11 | | Dorpenomloop Rucphen (1.2) | 181.0km |
| 15-03 | DNF | | Bredene Koksijde Classic (1.Pro) | 202.0km |
| 13-03 | 43 | | Danilith Nokere Koerse (1.Pro) | 188.0km |
| 03-03 | 22 | | Grote prijs Jean - Pierre Monseré
(1.1) | 200.0km |
| 27-02 | DNF | | Le Samyn (1.1) | 202.0km |
| 25-02 | 1 | | Brussel-Opwijk (National) | 162.0km |
| 28-01 | 134 | | Trofeo Palma (1.1) | 150.0km |
| 26-01 | 127 | | Trofeo Serra Tramuntana (1.1) | |
| 25-01 | 114 | | Trofeo Ses Salines – Felanitx (1.1) | 181.0km |