| | | Presidential Cycling Tour of Türkiye (2.Pro) |
| 13-10 | DNF | | Stage 6Bodrum - Kusadasi (198.0km) | 198.0km |
| 12-10 | 67 | 18 | Stage 5Marmaris - Bodrum (212.0km) | 212.0km |
| 11-10 | 55 | 18 | Stage 4Fethiye - Marmaris (184.0km) | 184.0km |
| 10-10 | 18 | 18 | Stage 3Kas - Fethiye (164.0km) | 164.0km |
| 09-10 | 69 | | Stage 2Antalya - Demre (147.0km) | 147.0km |
| 08-10 | 121 | | Stage 1Antalya - Antalya (175.0km) | 175.0km |
| 17-09 | DNF | | Trofeo Matteotti (1.1) | 195.0km |
| 13-09 | DNF | | Giro della Toscana (1.1) | |
| | | PostNord Danmark Rundt - Tour of Denmark (2.Pro) |
| 93 | | Klassement |
| 19-08 | 97 | 93 | Stage 5Helsingør - Helsingør (16.0km) | 16.0km |
| 18-08 | 102 | 92 | Stage 4Kalundborg - Bagsværd (177.0km) | 177.0km |
| 17-08 | 102 | 94 | Stage 3Vejle - Vejle (209.0km) | 209.0km |
| 16-08 | 111 | 101 | Stage 2Kjellerup - Silkeborg (163.0km) | 163.0km |
| 15-08 | 65 | 66 | Stage 1Aalborg - Aalborg (169.0km) | 169.0km |
| | | Czech Tour (2.1) |
| 29 | | Klassement |
| 30-07 | 69 | 29 | Stage 4Šumperk - Šumperk (178.0km) | 178.0km |
| 29-07 | 23 | 25 | Stage 3Moravská Třebová - Cervenohorské sedlo (161.0km) | 161.0km |
| 28-07 | 53 | 53 | Stage 2Olomouc - Pustevny (166.0km) | 166.0km |
| 27-07 | 105 | 105 | Stage 1Prostejov - Uničov (167.0km) | 167.0km |
| | | Tour of Qinghai Lake (2.Pro) |
| 20 | | Klassement |
| 1 | | Berg |
| 16-07 | 61 | 20 | Stage 8Gonghe - Chaka (200.0km) | 200.0km |
| 15-07 | 21 | 16 | Stage 7Xihaizhen - Gonghe (127.0km) | 127.0km |
| 14-07 | 59 | 22 | Stage 6Qilian - Xihaizhen (206.0km) | 206.0km |
| 13-07 | 75 | 22 | Stage 5Menyuan - Qilian (170.0km) | 170.0km |
| 12-07 | 57 | 22 | Stage 4Huzhu - Menyuan (188.0km) | 188.0km |
| 11-07 | 27 | 24 | Stage 3Guide - Huzhu (201.0km) | 201.0km |
| 10-07 | 34 | 34 | Stage 2Duoba - Guide (132.0km) | 132.0km |
| 09-07 | 131 | 131 | Stage 1Xining - Xining (108.0km) | 108.0km |
| 24-06 | 44 | | National Road Championships - Italy (CN) | 227.0km |
| 04-06 | 50 | | Coppa della Pace - Trofeo F.lli Anelli (1.2U) | |
| | | Alpes Isère Tour (2.2) |
| 21 | | Klassement |
| 35 | | Punten |
| 4 | | Berg |
| 28-05 | 14 | 21 | Stage 5Saint-Thibaud-de-Couz - Saint-Pierre-de-Chartreuse (161.0km) | 161.0km |
| 27-05 | 37 | 47 | Stage 4Monsteroux-Milieu - Saint-Maurice-l'Exil (182.0km) | 182.0km |
| 26-05 | 116 | 88 | Stage 3Saint-Exupéry - Colombier-Saugnieu (145.0km) | 145.0km |
| 25-05 | 82 | 79 | Stage 2Saint-André-le-Gaz - Four CAPI (144.0km) | 144.0km |
| 24-05 | 98 | 97 | Stage 1Charvieu-Chavagneux - Charvieu-Chavagneux (145.0km) | 145.0km |
| 14-05 | 62 | | Gran Premio Industrie del Marmo (1.2U) | |
| 07-05 | 20 | | Flèche Ardennaise (1.2) | 170.0km |
| | | Tour of the Alps (2.Pro) |
| 21-04 | DNF | | Stage 5Cavalese - Brunico (144.0km) | 144.0km |
| 20-04 | 48 | 53 | Stage 4Rovereto - Predazzo (152.0km) | 152.0km |
| 19-04 | 38 | 58 | Stage 3Ritten - Brentonico San Valentino (162.0km) | 162.0km |
| 18-04 | 52 | 74 | Stage 2Reith im Alpbachtal - Ritten (165.0km) | 165.0km |
| 17-04 | 112 | 112 | Stage 1Rattenberg - Alpbach (127.0km) | 127.0km |
| 11-04 | 51 | | G.P. Palio del Recioto - Trofeo C&F Resinatura Blocchi (1.2U) | |
| 10-04 | DNF | | Giro del Belvedere (1.2U) | 171.0km |
| 26-03 | 68 | | GP Adria Mobil (1.2) | |
| 19-03 | 63 | | GP Slovenian Istria (1.2) | 156.0km |
| 15-03 | 108 | | Milano - Torino (1.Pro) | 192.0km |
| | | Istarsko Proljece-Istrian Spring Trophy (2.2) |
| 128 | | Klassement |
| 12-03 | 132 | 128 | Stage 3Pazin - Umag (114.0km) | 114.0km |
| 11-03 | 122 | 139 | Stage 2Novigrad - Motovun (173.0km) | 173.0km |
| 10-03 | 136 | 139 | Stage 1Porec - Funtana (153.0km) | 153.0km |
| 09-03 | 136 | | PrologueVrsar - Vrsar (1.0km) | 1.0km |
| 05-02 | 72 | | Grand Prix Apollon Temple (1.2) | |
| 29-01 | 96 | | Trofeo Playa de Palma - Palma (1.1) | 141.0km |
| 28-01 | 47 | | Trofeo Port d'Andratx - Port d'Pollença (Mirador D'es Colomer) (1.1) | 155.0km |
| 27-01 | 47 | | Trofeo Serra de Tramuntana (Lloseta - Lloseta) (1.1) | 160.0km |