08.10 | 91 | | | Paris-Tours Elite (1.HC) Team Dimension Data | 234.5 | | | more |
03.10 | 89 | | | Sparkassen Münsterland Giro (1.HC) Team Dimension Data | 198.7 | | | more |
01.10 | DNF | | | Piccolo Giro di Lombardia (1.2U) | 163.1 | | | more |
26.09 | DNF | | | Ruota d'Oro - GP Festa del Perdono (1.2U) | 167 | | | more |
14.09 | DNF | | | Coppa Bernocchi (1.1) | 194 | | | more |
13.09 | DNF | | | Coppa Agostoni - Giro delle Brianze (1.1) | 199.9 | | | more |
05.09 » 10.09 | | | | Olympia's Tour (2.2U) | | | | more |
| 18 | | | General classification | | | | more |
10.09 | 22 | | | Stage 6 - Margraten › Noorbeek | 173.3 | | | more |
09.09 | 36 | 19 | | Stage 5 - Offenbeek › Offenbeek | 129 | | | more |
08.09 | 43 | 20 | | Stage 4 - Hardenberg › Hardenberg | 141.8 | | | more |
07.09 | 64 | 19 | | Stage 3 - Uffelte › Vledder | 126.3 | | | more |
06.09 | 31 | 28 | | Stage 2 - Assen › Assen | 131 | | | more |
05.09 | 27 | 27 | | Prologue - Eelde-Paterswolde › Eelde-Paterswolde | 4.5 | | | more |
16.08 | 29 | | | GP Capodarco - Comunità di Capodarco (1.2U) | 180 | | | more |
10.08 » 13.08 | | | | Arctic Race of Norway (2.HC) Team Dimension Data | | | | more |
| 29 | | | Youth classification | | | | more |
| 54 | | | General classification | | | | more |
13.08 | 69 | | | Stage 4 - Tromsø › Tromsø | 160.5 | | | more |
12.08 | 47 | 44 | | Stage 3 - Lyngseidet › Finnvikdalen (Tromsø) | 185.5 | | | more |
11.08 | 27 | 49 | | Stage 2 - Sjøvegan › Bardufoss | 184.5 | | | more |
10.08 | 60 | 60 | | Stage 1 - Engenes (Andørja) › Narvik | 156.5 | | | more |
01.08 » 05.08 | | | | Vuelta a Burgos (2.HC) Team Dimension Data | | | | more |
| 9 | | | Youth classification | | | | more |
| 38 | | | Points classification | | | | more |
| 60 | | | General classification | | | | more |
05.08 | 71 | | | Stage 5 - Comunero de Revenga › Lagunas de Neila | 136 | | | more |
04.08 | 14 | 67 | | Stage 4 - Bodegas Nabal › Clunia | 147 | | | more |
03.08 | 73 | 69 | | Stage 3 - Oja Guareña › Picón Blanco | 173 | | | more |
02.08 | 80 | 77 | | Stage 2 - Oña › Belorado | 153 | | | more |
01.08 | 79 | 79 | | Stage 1 - Burgos › Burgos | 151 | | | more |
12.07 » 16.07 | | | | Giro Ciclistico della Valle d'Aosta Mont Blanc (2.2U) | | | | more |
16.07 | DNF | | | Stage 4 - Aoste › Valgrisenche | 103.7 | | | more |
15.07 | 56 | 51 | | Stage 3 - Valtournenche › Breuil Cervinia | 170.1 | | | more |
14.07 | 66 | 45 | | Stage 2 - Villeneuve › Introd (Les Combes) | 138.4 | | | more |
13.07 | 25 | 28 | | Stage 1 - Quassolo › Quincinetto (Scalaro) | 172.6 | | | more |
12.07 | 90 | 90 | | Prologue - Saint Gervais Mont Blanc › Saint Nicolas de Veroce | 8 | | | more |
09.07 | DNF | | | Giro del Medio Brenta (1.2) | 175 | | | more |
27.06 » 02.07 | | | | Tour de Hongrie (2.2) | | | | more |
| 3 | | | Youth classification | | | | more |
| 5 | | | General classification | | 8 | 15 | more |
02.07 | 10 | | | Stage 5 - Jaszbereny › Budapest | 112 | | | more |
01.07 | 12 | 5 | | Stage 4 - Karcag › Miskolc | 177 | | | more |
30.06 | 36 | 5 | | Stage 3 - Paks › Cegled | 178 | | | more |
29.06 | 22 | 6 | | Stage 2 - Velence › Siofok | 138 | | | more |
27.06 | 4 | 4 | | Prologue - Szombathely › Szombathely | 1 | | | more |
09.06 » 15.06 | | | | Giro Ciclistico d'Italia (2.2U) | | | | more |
| 1 | | | Mountains classification | | | | more |
| 42 | | | Points classification | | | | more |
| 37 | | | General classification | | | | more |
15.06 | 48 | | | Stage 7 - Francavilla al Mare › Campo Imperatore | 148.9 | | | more |
14.06 | 4 | 22 | | Stage 6 - Francavilla al Mare › Casalincontrada | 133.2 | | | more |
13.06 | 47 | 29 | | Stage 5b (ITT) - Campocavallo › Campocavallo | 14 | | | more |
13.06 | 56 | 33 | | Stage 5a - Senigallia › Osimo | 87.2 | | | more |
12.06 | 55 | 32 | | Stage 4 - Forlì › Gabicce Mare | 155.5 | | | more |
11.06 | 36 | 33 | | Stage 3 - Bagnara di Romagna › Forlì | 140.5 | | | more |
10.06 | 49 | 46 | | Stage 2 - Castellarano › San Valentino di Castellarano | 145.8 | | | more |
09.06 | 48 | 49 | | Stage 1 - Imola › Imola | 131.7 | | | more |
04.06 | 13 | | | Coppa della Pace - Trofeo F.lli Anelli (1.2) | 170 | | | more |
02.06 | 14 | | | Trofeo Alcide Degasperi (1.2) | 156.4 | | | more |
19.05 » 21.05 | | | | A Travers Les Hauts De France - Trophee Paris-Arras Tour (2.2) | | | | more |
| 55 | | | General classification | | | | more |
21.05 | 43 | | | Stage 3 - Doullens › Arras | 186 | | | more |
20.05 | 64 | 60 | | Stage 2 - Lallaing › Merlimont | 199 | | | more |
19.05 | 30 | 31 | | Stage 1 - Marquion › Gouy-sous-Bellonne | 114.7 | | | more |
14.05 | 6 | | | Gran Premio Industrie del Marmo (1.2U) | 174.7 | 1 | 5 | more |
25.04 » 01.05 | | | | Le Tour de Bretagne Cycliste (2.2) | | | | more |
| 32 | | | Youth classification | | | | more |
| 66 | | | General classification | | | | more |
01.05 | 60 | | | Stage 7 - Saint-Brice-en-Coglès › Fougères | 145.4 | | | more |
30.04 | 109 | 85 | | Stage 6 - Montauban-de-Bretagne › Pontivy | 160.9 | | | more |
29.04 | 84 | 59 | | Stage 5 - Saint-Gildas-des-Bois › Saint-Pern | 152.4 | | | more |
28.04 | 91 | 68 | | Stage 4 - Scaër › Saint-Gildas-des-Bois | 198.5 | | | more |
27.04 | 47 | 70 | | Stage 3 - Saint-Pol-de-Léon › Scaër | 166.1 | | | more |
26.04 | 71 | 73 | | Stage 2 - Saint-Launeuc › Saint-Pol-De-Léon | 202.7 | | | more |
25.04 | 115 | 139 | | Stage 1 - Rennes › Merdrinac | 153.2 | | | more |
23.04 | 27 | | | Tr. Città di S. Vendemiano - 57th GP Industria & Commercio (1.2U) | 171.8 | | | more |
08.04 | 38 | | | Trofeo Edil C (1.2U) | 149.1 | | | more |
02.04 | 34 | | | Trofeo Piva (1.2U) | 179.8 | | | more |
19.02 | DNF | | | African Continental Championships - Road Race (CC) | 163.6 | | | more |
12.02 | 8 | | | National Championships South Africa ME - Road Race (NC) | 179.5 | | 10 | more |
09.02 | 6 | | | National Championships South Africa ME - ITT (NC) | 39.8 | | 5 | more |