| | | Tour of Rwanda (2.2) |
| 20-11 | DNF | | Stage 3Rubavu - Kinigi | 62.0km |
| 19-11 | 3 | 1 | Stage 2Rwamagana - Musanze | 152.0km |
| 18-11 | 1 | 1 | Stage 1Kigali - Kirehe | 130.0km |
| 17-11 | 8 | 8 | PrologueKigali - Kigali | 3.0km |
| 13-10 | 17 | | Paris - Tours (1.HC) | 235.0km |
| 10-10 | 22 | | Gran Premio Città di Peccioli - Coppa Sabatini (1.1) | |
| 06-10 | DNF | | Giro di Lombardia (WT) | 242.0km |
| 02-10 | 105 | | Milano-Torino (1.HC) | 193.0km |
| 25-09 | 55 | | UCI World Championship Firenze TT (CM) | 57.0km |
| 07-09 | 50 | | Brussels Cycling Classic (1.HC) | 198.0km |
| 01-09 | 49 | | Schaal Sels (1.1) | 200.0km |
| | | World Ports Classic (2.1) |
| 67 | | Standings |
| 31-08 | 36 | 67 | Stage 2Rotterdam - Antwerpen | 191.0km |
| 30-08 | 78 | 78 | Stage 1Antwerpen - Rotterdam | 165.0km |
| 25-08 | 64 | | Vattenfall Cyclassics (WT) | 246.0km |
| | | Volta a Portugal (2.1) |
| 59 | | Standings |
| 18-08 | 88 | 59 | Stage 10Viseu - Viseu | 130.0km |
| 17-08 | 51 | 59 | Stage 9Sabugal - Guarda | 35.0km |
| 16-08 | 42 | 61 | Stage 8Oliveira do Hospital - Alto da Torre | 166.0km |
| 15-08 | 31 | 67 | Stage 7Termas Monfortinho - Gouveia | 176.0km |
| 14-08 | 114 | 102 | Stage 6Sertã - Castelo Branco | 180.0km |
| 12-08 | 101 | 99 | Stage 5Lousada - Oliveira do Bairro | 177.0km |
| 11-08 | 86 | 93 | Stage 4Arouca - Mondim de Basto | 181.0km |
| 10-08 | 81 | 79 | Stage 3Trofa - Fafe | 165.0km |
| 09-08 | 79 | 83 | Stage 2Oliveira de Azeméis - Viana do Castelo | 187.0km |
| 08-08 | 93 | 100 | Stage 1Bombarral - Aveiro | 203.0km |
| 07-08 | 5 | 120 | PrologueLisboa - Lisboa | 5.0km |
| 04-08 | 43 | | RideLondon Classic (1.1) | 200.0km |
| | | Skoda-Tour de Luxembourg (2.HC) |
| 82 | | Standings |
| 5 | | Mountain |
| 16-06 | 64 | 82 | Stage 4Mersch - Luxembourg | 143.0km |
| 15-06 | 75 | 103 | Stage 3Eschweiler - Diekirch | 178.0km |
| 14-06 | 122 | 124 | Stage 2Schifflange - Walferdange | 173.0km |
| 13-06 | 123 | 124 | Stage 1Luxembourg - Hautcharage | 183.0km |
| 12-06 | 100 | 100 | PrologueLuxembourg - Luxembourg | 2.0km |
| 09-06 | 99 | | Garmin ProRace Berlin (1.1) | 185.0km |
| 06-06 | 78 | | GP Kanton Aargau (1.1) | 181.0km |
| 02-06 | 58 | | Ronde Van Zeeland Seaports (1.1) | 197.0km |
| | | Bayern-Rundfahrt (2.HC) |
| 26-05 | DNF | | Stage 5Kelheim - Nürnberg | 169.0km |
| 25-05 | 56 | 112 | Stage 4Schierling - Schierling | 31.0km |
| 24-05 | 104 | 116 | Stage 3Viechtach - Kelheim | 196.0km |
| 23-05 | 79 | 121 | Stage 2Mühldorf am Inn - Viechtach | 192.0km |
| 22-05 | 126 | 126 | Stage 1Pfaffenhofen an der Ilm - Mühldorf am Inn | 193.0km |
| 12-05 | 108 | | Rund um Köln (1.1) | 192.0km |
| | | Quatre Jours de Dunkerque (2.HC) |
| 96 | | Standings |
| 05-05 | 76 | 96 | Stage 5Estaires - Dunkerque | 164.0km |
| 04-05 | 105 | 99 | Stage 4Lens - Parc d'Olhain | 182.0km |
| 03-05 | 95 | 97 | Stage 3Oignies - Liévin | 179.0km |
| 02-05 | 102 | 92 | Stage 2Lewarde - Douchy-les-Mines | 178.0km |
| 01-05 | 77 | | Stage 1Dunkerque - Courrières | 155.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 21-03 | DNF | | Stage 2Gatteo - Sogliano al Rubicone | 162.0km |
| 20-03 | 27 | 145 | Stage 1bCittà Sant'Angelo - Gatteo | 11.0km |
| 20-03 | 177 | 177 | Stage 1aGatteo - Gatteo | 99.0km |
| 17-03 | DNF | | Milano-Sanremo (WT) | 252.0km |
| | | Tirreno-Adriatico (WT) |
| 11-03 | DNF | | Stage 6Porto Sant'Elpidio - Porto Sant'Elpidio | 209.0km |
| 10-03 | 108 | 158 | Stage 5Ortona - Chieti | 230.0km |
| 09-03 | 103 | 161 | Stage 4Narni - Prati di Tivo | 173.0km |
| 08-03 | 171 | 169 | Stage 3Indicatore - Narni Scalo | 190.0km |
| 07-03 | 103 | 100 | Stage 2San Vincenzo - Indicatore | 232.0km |
| 06-03 | 17 | 97 | Stage 1San Vincenzo - Donoratico | 16.0km |
| 03-03 | 1 | | National Road Championships - South Africa (CN) | 160.0km |
| 28-02 | 2 | | National Road Championships - South Africa TT (CN) | 33.0km |