| | | Tour of China II (2.1) |
| 13 | | Klassement |
| 30-09 | 55 | 13 | Stage 6Tianjin - Tianjin (100.0km) | 100.0km |
| 28-09 | 51 | 13 | Stage 5Wuhan Jiangxia - Wuhan Caidia (133.0km) | 133.0km |
| 27-09 | 66 | 11 | Stage 4Zaoyang - Wuhan Caidia (207.0km) | 207.0km |
| 26-09 | 42 | 10 | Stage 3Xiangyang Laohekou - Xiangyang Laohekou (132.0km) | 132.0km |
| 24-09 | 12 | 9 | Stage 2Yueyang - Yueyang (132.0km) | 132.0km |
| 23-09 | 20 | 22 | Stage 1Changsha - Changsha (124.0km) | 124.0km |
| | | Tour of China I (2.1) |
| 16 | | Klassement |
| 20-09 | 25 | 16 | Stage 6Zunyi Songkan - Zunyi (137.0km) | 137.0km |
| 19-09 | 11 | 4 | Stage 5Chongqing Banan - Chongqing Banan (124.0km) | 124.0km |
| 18-09 | 2 | 4 | Stage 4Chengdu Dujiangyan - Chengdu Dujiangyan (101.0km) | 101.0km |
| 17-09 | 90 | 10 | Stage 3Chengdu Pengzhou - Chengdu Pengzhou (151.0km) | 151.0km |
| 16-09 | 71 | 9 | Stage 2Deyang - Deyang Shifang (201.0km) | 201.0km |
| 14-09 | 40 | 41 | Stage 1Xi'an - Xi'an (96.0km) | 96.0km |
| | | Settimana Ciclistica Lombarda by Bergamasca (2.1) |
| 66 | | Klassement |
| 07-09 | 22 | 66 | Stage 3Gorle - Bergamo (159.0km) | 159.0km |
| 06-09 | 115 | 73 | Stage 2Boltiere - Foppolo (153.0km) | 153.0km |
| 05-09 | 54 | 54 | Stage 1Brembate Sopra - Valtorta (168.0km) | 168.0km |
| 01-09 | 107 | | Rabo Ronde van Midden-Nederland (1.2) | |
| 21-08 | 106 | | Coppa Agostoni - Giro delle Brianze (1.1) | 198.0km |
| 04-08 | 128 | | Antwerpse Havenpijl (1.2) | |
| | | Tour Alsace (2.2) |
| 80 | | Klassement |
| 28-07 | 32 | 80 | Stage 6Ribeauville - Cernay (139.0km) | 139.0km |
| 27-07 | 69 | 98 | Stage 5Selestat - Le Markstein (176.0km) | 176.0km |
| 26-07 | 101 | 104 | Stage 4Dannemarie - Colmar (164.0km) | 164.0km |
| 25-07 | 88 | 81 | Stage 3Strasbourg - Bischoffsheim (153.0km) | 153.0km |
| 24-07 | 123 | 15 | Stage 2Mulhouse - Huningue (157.0km) | 157.0km |
| 23-07 | 134 | 134 | Stage 1Le Bioscope Ungersheim - Sausheim (118.0km) | 118.0km |
| 21-07 | 42 | | European Championship U23 (CC) | 165.0km |
| 19-07 | 33 | | European Championship TT U23 (CC) | 34.0km |
| | | Czech Cycling Tour (2.2) |
| 60 | | Klassement |
| 14-07 | 76 | 60 | Stage 4Olomouc - Olomouc (176.0km) | 176.0km |
| 13-07 | 80 | 42 | Stage 3Šternberk - Šternberk (173.0km) | 173.0km |
| 12-07 | 65 | 6 | Stage 2Mohelnická - Mohelnická (156.0km) | 156.0km |
| 11-07 | 1 | 5 | Stage 1Uničov - Uničov (25.0km) | 25.0km |
| 23-06 | 8 | | National Road Championships - Luxembourg (CN) | 170.0km |
| 20-06 | 4 | | National Road Championships - Luxembourg TT (CN) | 22.0km |
| | | Skoda-Tour de Luxembourg (2.HC) |
| 49 | | Klassement |
| 16-06 | 34 | 49 | Stage 4Mersch - Luxembourg (143.0km) | 143.0km |
| 15-06 | 86 | 65 | Stage 3Eschweiler - Diekirch (178.0km) | 178.0km |
| 14-06 | 65 | 63 | Stage 2Schifflange - Walferdange (173.0km) | 173.0km |
| 13-06 | 90 | 17 | Stage 1Luxembourg - Hautcharage (183.0km) | 183.0km |
| 12-06 | 18 | 18 | PrologueLuxembourg - Luxembourg (2.0km) | 2.0km |
| 02-06 | 131 | | Grand Prix Südkärnten (1.2) | |
| | | Course de la Paix U23 (2.2U) |
| 101 | | Klassement |
| 26-05 | 53 | 101 | Stage 3Jeseník - Jeseník (150.0km) | 150.0km |
| 25-05 | 119 | 116 | Stage 2Jeseník - Bruntal (112.0km) | 112.0km |
| 25-05 | 37 | 37 | Stage 1Jeseník - Jeseník (2.0km) | 2.0km |
| | | Flèche du Sud (2.2) |
| 76 | | Klassement |
| 12-05 | 75 | 76 | Stage 5Esch-sur-Alzette - Esch-sur-Alzette (136.0km) | 136.0km |
| 11-05 | 53 | 92 | Stage 4Kayl - Soleuvre (157.0km) | 157.0km |
| 10-05 | 80 | 113 | Stage 3Bourscheid - Clervaux (146.0km) | 146.0km |
| 09-05 | 124 | 124 | Stage 2Schifflange - Rumelange (145.0km) | 145.0km |
| 08-05 | 145 | 145 | Stage 1Roeser - Roeser (81.0km) | 81.0km |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 65 | | Klassement |
| 01-05 | 53 | 65 | Stage 7Huelgoat - Quimperlé (141.0km) | 141.0km |
| 30-04 | 24 | 82 | Stage 6Huelgoat - Huelgoat (15.0km) | 15.0km |
| 29-04 | 84 | 87 | Stage 5Saint-Thélo - Le Quillio (170.0km) | 170.0km |
| 28-04 | 81 | 97 | Stage 4Le Rheu - Fougères (156.0km) | 156.0km |
| 27-04 | 105 | 94 | Stage 3La Turballe - Le Rheu (183.0km) | 183.0km |
| 26-04 | 92 | 98 | Stage 2Ploemel - La Turballe (174.0km) | 174.0km |
| 25-04 | 120 | 120 | Stage 1Sainte-Anne-d'Auray - Pluvigner (166.0km) | 166.0km |
| 10-04 | 57 | | La Côte Picarde (1.NCUP) | |
| 06-04 | 43 | | Ronde van Vlaanderen Beloften (1.NCUP) | 173.0km |
| | | Le Triptyque des Monts et Châteaux (2.2) |
| 29-03 | DNF | | Stage 1Mouscron - Quevaucamps (178.0km) | 178.0km |
| | | Istarsko proljece - Istrian Spring Trophy (2.2) |
| 23 | | Klassement |
| 17-03 | 47 | 23 | Stage 3Pazin - Umag (153.0km) | 153.0km |
| 16-03 | 29 | 23 | Stage 2Vrsar - Motovun (165.0km) | 165.0km |
| 15-03 | 39 | 19 | Stage 1Umag - Labin (163.0km) | 163.0km |
| 14-03 | 49 | 49 | PrologueUmag - Umag (2.0km) | 2.0km |
| 10-03 | 103 | | Porec Trophy - Trofej Porec (1.2) | |