| | | Tour of Hainan (2.HC) |
| 61 | | Klassement |
| 31-10 | 37 | 61 | Stage 9Changjiang - Danzhou (181.0km) | 181.0km |
| 30-10 | 27 | 61 | Stage 8Longmuwan - Changjiang (197.0km) | 197.0km |
| 29-10 | 27 | 81 | Stage 7Wuzhishan - Sanya (127.0km) | 127.0km |
| 28-10 | 74 | 82 | Stage 6Lingshui - Wuzhishan (193.0km) | 193.0km |
| 27-10 | 63 | 84 | Stage 5Wanning - Lingshui (178.0km) | 178.0km |
| 26-10 | 97 | 65 | Stage 4Qionghai - Wanning (142.0km) | 142.0km |
| 25-10 | 28 | 54 | Stage 3Chengmai - Qionghai (231.0km) | 231.0km |
| 24-10 | 33 | 66 | Stage 2Danzhou - Chengmai (139.0km) | 139.0km |
| 23-10 | 98 | 99 | Stage 1Danzhou - Danzhou (90.0km) | 90.0km |
| | | Tour of Taihu Lake (2.1) |
| 26 | | Klassement |
| 14-10 | 20 | 26 | Stage 8Wuxing - Changxing (137.0km) | 137.0km |
| 13-10 | 33 | 27 | Stage 7Wujiang - Wujiang (116.0km) | 116.0km |
| 12-10 | 30 | 27 | Stage 6Nantong - Haimen (146.0km) | 146.0km |
| 11-10 | 24 | 27 | Stage 5Jiangnan - Jiangnan (98.0km) | 98.0km |
| 10-10 | 18 | 26 | Stage 4Jinhu - Jinhu (88.0km) | 88.0km |
| 09-10 | 17 | 26 | Stage 3Jurong Chishanhu - Maoshan (130.0km) | 130.0km |
| 08-10 | 29 | 43 | Stage 2Wuxi - Binhu (85.0km) | 85.0km |
| 07-10 | 44 | 44 | Stage 1Wuxi - Wuxi (5.0km) | 5.0km |
| 28-09 | DNF | | UCI World Championship Innsbruck U23 (CM) | 186.0km |
| 24-09 | 52 | | UCI World Championship Innsbruck TT U23 (CM) | 28.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 23-08 | OTL | | Stage 7Moûtiers - Méribel (34.0km) | 34.0km |
| 22-08 | 29 | 105 | Stage 6Le Blanc - Cérilly (181.0km) | 181.0km |
| 21-08 | 56 | 112 | Stage 5Beaugency - Levroux (135.0km) | 135.0km |
| 20-08 | | 121 | Stage 4Orléans - Orléans (20.0km) | 20.0km |
| 19-08 | 132 | 124 | Stage 3Le Lude - Châteaudun (170.0km) | 170.0km |
| 18-08 | 59 | 74 | Stage 2Dréfféac - Chateaubriant (144.0km) | 144.0km |
| 17-08 | 100 | 100 | Stage 1Grand Champ - Elven (138.0km) | 138.0km |
| | | Tour Alsace (2.2) |
| 77 | | Klassement |
| 05-08 | 93 | 77 | Stage 5Riedisheim - Dannemarie (145.0km) | 145.0km |
| 04-08 | 76 | 67 | Stage 4Ribeauville - Lac Blanc (165.0km) | 165.0km |
| 03-08 | 55 | 55 | Stage 3Vesoul - La Planche des Belles Filles (143.0km) | 143.0km |
| 02-08 | 44 | 106 | Stage 2Champ du Feu - Selestat (147.0km) | 147.0km |
| 01-08 | 114 | 114 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| 27-05 | DNF | | Paris-Roubaix Espoirs (1.2U) | |
| | | A Travers Les Hauts De France (2.2) |
| 56 | | Klassement |
| 56 | | Punten |
| 20-05 | 60 | 56 | Stage 3Hermies - Arras (192.0km) | 192.0km |
| 19-05 | 72 | 66 | Stage 2Lens - Liévin (189.0km) | 189.0km |
| 18-05 | 30 | 32 | Stage 1Le Cateau-Cambrésis - Villers les Cagnicourt (121.0km) | 121.0km |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 30-04 | DNF | | Stage 6Plancoët - Dol-de-Bretagne (151.0km) | 151.0km |
| 29-04 | 82 | 97 | Stage 5Colpo - Plancoët (155.0km) | 155.0km |
| 28-04 | 95 | 106 | Stage 4Clohars-Carnoët - Grand Champ (162.0km) | 162.0km |
| 27-04 | 117 | 117 | Stage 3Baden - Clohars-Carnoët (181.0km) | 181.0km |
| 26-04 | 95 | 99 | Stage 2Louisfert - Plougoumelen (180.0km) | 180.0km |
| 25-04 | 91 | 94 | Stage 1Chateaubriant - Louisfert (159.0km) | 159.0km |
| 14-04 | 56 | | Liège - Bastogne - Liège U23 (1.2U) | |
| | | Circuit des Ardennes International (2.2) |
| 08-04 | 103 | 101 | Stage 3aDonchery - Vivier-au-Court (79.0km) | 79.0km |
| 08-04 | 98 | 91 | Stage 3bCharleville-Mézières - Charleville-Mézières (104.0km) | 104.0km |
| 07-04 | 94 | 103 | Stage 2Beauraing - Givet (175.0km) | 175.0km |
| 06-04 | 94 | 94 | Stage 1Bazeilles - Bazeilles (160.0km) | 160.0km |
| 10-02 | 18 | | Asian Road Championships U23 (CC) | |
| | | Tour of Indonesia (2.1) |
| 25 | | Klassement |
| 28-01 | 25 | 25 | Stage 4Gilimanuk - Denpasar (155.0km) | 155.0km |
| 27-01 | 29 | 52 | Stage 3Probolinggo - Banyuwangi (198.0km) | 198.0km |
| 26-01 | 43 | 62 | Stage 2Madiun - Prigen (211.0km) | 211.0km |
| 25-01 | 81 | 82 | Stage 1Barobudur - Madiun (191.0km) | 191.0km |