| 20-10 | 36 | | Utsunomiya Japan Cup Road Race (1.Pro) | 144.0km |
| 13-10 | 1 | | CAC African Road Championships (CC) | 175.0km |
| 07-10 | 100 | | Coppa Bernocchi (1.Pro) | 174.0km |
| 29-09 | DNF | | UCI World Championship Zurich (CM) | 273.0km |
| 20-09 | 96 | | Kampioenschap van Vlaanderen (1.1) | 181.0km |
| 18-09 | 82 | | Grand Prix de Wallonie (1.Pro) | 202.0km |
| 15-09 | 54 | | Trofeo Matteotti (1.1) | 194.0km |
| 14-09 | DNF | | Memorial Marco Pantani (1.1) | 195.0km |
| 12-09 | DNF | | Gran Premio città di Peccioli - Coppa Sabatini (1.Pro) | 197.0km |
| 11-09 | DNF | | Giro della Toscana - Memorial Alfredo Martini (1.1) | 182.0km |
| | | Tour of Hainan (2.Pro) |
| 2 | | Klassement |
| 8 | | Punten |
| 23 | | Berg |
| 31-08 | 50 | 2 | Stage 5Changjiang - Changjiang (203.0km) | 203.0km |
| 30-08 | 35 | 3 | Stage 4Wuzhishan - Changjiang (151.0km) | 151.0km |
| 29-08 | 3 | 3 | Stage 3Lingshui - Wuzhishan (181.0km) | 181.0km |
| 28-08 | 6 | 54 | Stage 2Qionghai - Lingshui (178.0km) | 178.0km |
| 27-08 | 108 | 109 | Stage 1Qionghai - Qionghai (95.0km) | 95.0km |
| | | Tour de Pologne (2.UWT) |
| 67 | | Klassement |
| 18-08 | 62 | 67 | Stage 7Wieliczka - Kraków (142.0km) | 142.0km |
| 17-08 | 33 | 68 | Stage 6Wadowice - Bukovina Resort (183.0km) | 183.0km |
| 16-08 | 100 | 102 | Stage 5Katowice - Katowice (187.0km) | 187.0km |
| 15-08 | 110 | 108 | Stage 4 Kudowa Zdrój - Prudnik (195.0km) | 195.0km |
| 14-08 | 129 | 113 | Stage 3Walbrzych - Duszniki Zdrój (156.0km) | 156.0km |
| 13-08 | 63 | 48 | Stage 2Mysłakowice - Karpacz (15.0km) | 15.0km |
| 12-08 | 42 | 42 | Stage 1Wroclaw - Karpacz (156.0km) | 156.0km |
| | | Tour of Qinghai Lake (2.Pro) |
| 4 | | Klassement |
| 1 | | Punten |
| 2 | | Berg |
| 14-07 | 6 | 4 | Stage 8Menyuan - Menyuan (121.0km) | 121.0km |
| 13-07 | 55 | 4 | Stage 7Qilian - Menyuan (169.0km) | 169.0km |
| 12-07 | 5 | 4 | Stage 6Xihaizhen - Qilian (206.0km) | 206.0km |
| 11-07 | 12 | 5 | Stage 5Gonghe - Xihaizhen (126.0km) | 126.0km |
| 10-07 | 5 | 5 | Stage 4Guide - Gonghe (136.0km) | 136.0km |
| 09-07 | 2 | 2 | Stage 3Huzhu - Guide (202.0km) | 202.0km |
| 08-07 | 13 | 10 | Stage 2Duoba - Huzhu (112.0km) | 112.0km |
| 07-07 | 132 | 139 | Stage 1Xining - Xining (121.0km) | 121.0km |
| 15-06 | 7 | | National Road Championships - Eritrea (CN) | |
| 13-06 | 2 | | National Road Championships - Eritrea TT (CN) | 37.0km |
| | | Giro d'Italia (2.UWT) |
| 47 | | Klassement |
| 15 | | Jongeren |
| 26-05 | 83 | 47 | Stage 21Roma - Roma (122.0km) | 122.0km |
| 25-05 | 35 | 48 | Stage 20Alpago - Bassano del Grappa (181.0km) | 181.0km |
| 24-05 | 49 | 49 | Stage 19Mortegliano - Sappada (157.0km) | 157.0km |
| 23-05 | 67 | 46 | Stage 18Fiera di Primeiro - Padua (171.0km) | 171.0km |
| 22-05 | 53 | 47 | Stage 17Selva di Valgardena - Passo del Brocon (159.0km) | 159.0km |
| 21-05 | 39 | 45 | Stage 16Livigno - Santa Cristina Valgardena (202.0km) | 202.0km |
| 19-05 | 85 | 50 | Stage 15Manerba del Garda - Livigno (220.0km) | 220.0km |
| 18-05 | 103 | 46 | Stage 14Castiglione delle Stiviere - Desenzano del Garda (31.0km) | 31.0km |
| 17-05 | 82 | 46 | Stage 13Riccione - Cento (179.0km) | 179.0km |
| 16-05 | 68 | 46 | Stage 12Martinsciuro - Fano (190.0km) | 190.0km |
| 15-05 | 58 | 46 | Stage 11Foiano di Val Fortore - Francavilla al Mare (207.0km) | 207.0km |
| 14-05 | 53 | 48 | Stage 10Pompeii - Cusano Mutri (142.0km) | 142.0km |
| 12-05 | 39 | 47 | Stage 9Avvezano - Napoli (214.0km) | 214.0km |
| 11-05 | 44 | 55 | Stage 8Spoleto - Prati di Tivo (153.0km) | 153.0km |
| 10-05 | 87 | 63 | Stage 7Foligno - Perugia (38.0km) | 38.0km |
| 09-05 | 108 | 62 | Stage 6Viareggio - Rapolano Terme (180.0km) | 180.0km |
| 08-05 | 160 | 44 | Stage 5Genua - Lucca (178.0km) | 178.0km |
| 07-05 | 70 | 22 | Stage 4Acqui Terme - Andora (190.0km) | 190.0km |
| 06-05 | 78 | 23 | Stage 3Novara - Fossano (166.0km) | 166.0km |
| 05-05 | 19 | 23 | Stage 2San Francesco al Campo - Santuario di Oropa (161.0km) | 161.0km |
| 04-05 | 43 | 43 | Stage 1Venaria Reale - Torino (143.0km) | 143.0km |
| | | Tour de Romandie (2.UWT) |
| 46 | | Klassement |
| 28-04 | 78 | 46 | Stage 5Vernier - Vernier (150.0km) | 150.0km |
| 27-04 | 36 | 50 | Stage 4Bains de Saillon - Leysin (151.0km) | 151.0km |
| 26-04 | 92 | 91 | Stage 3Oron - Oron (15.0km) | 15.0km |
| 25-04 | 54 | 93 | Stage 2Freiburg - Salvan (171.0km) | 171.0km |
| 24-04 | 123 | 135 | Stage 1Château-d'Œx - Freiburg (165.0km) | 165.0km |
| 23-04 | 160 | 160 | ProloguePayerne - Payerne (2.0km) | 2.0km |
| 30-03 | 65 | | Gran Premio Miguel Indurain (1.Pro) | 198.0km |
| | | Volta Ciclista a Catalunya (2.UWT) |
| 72 | | Klassement |
| 24-03 | 44 | 72 | Stage 7Barcelona - Barcelona (145.0km) | 145.0km |
| 23-03 | 100 | 80 | Stage 6Berga - Nuestra Senore de Queralt (154.0km) | 154.0km |
| 22-03 | 32 | 80 | Stage 5Altafulla - Viladecans (167.0km) | 167.0km |
| 21-03 | 60 | 93 | Stage 4Sort - Lleida (169.0km) | 169.0km |
| 20-03 | 86 | 95 | Stage 3Port Ainé-Rialp - Sant Joan de les Abadesses (176.0km) | 176.0km |
| 19-03 | 82 | 99 | Stage 2Mataró - Vallter 2000 (186.0km) | 186.0km |
| 18-03 | 105 | 105 | Stage 1San Felíu de Guixols - San Felíu de Guixols (174.0km) | 174.0km |
| 10-03 | 53 | | 2024 African Games (JO) | 137.0km |
| | | AlUla Tour (2.1) |
| 02-02 | DNF | | Stage 4Hegra - Maraya (142.0km) | 142.0km |
| 01-02 | 38 | 30 | Stage 3AlUla International Airport - AlUla Camel Cup Track (170.0km) | 170.0km |
| 31-01 | 2 | 3 | Stage 2Winter Park - Sharaan Nature Reserve (199.0km) | 199.0km |
| 30-01 | 17 | 20 | Stage 1Al Manshiyah - Al Manshiyah (149.0km) | 149.0km |