| 01-11 | 30 | | Cyclo-cross International de Dijon (C2) | |
| 03-10 | 100 | | Sparkassen Münsterland Giro (1.Pro) | 205.0km |
| | | Tour de Serbie (2.2) |
| 15-09 | DNF | | Stage 2Mionica - Cacak (153.0km) | 153.0km |
| 14-09 | 69 | 69 | Stage 1Požarevac - Mionica (152.0km) | 152.0km |
| | | Turul Romaniei (2.1) |
| 62 | | Klassement |
| 18 | | Punten |
| 11-09 | 16 | 62 | Stage 6Bucuresti - Bucuresti (96.0km) | 96.0km |
| 10-09 | 65 | 62 | Stage 5Cristia - Curtea de Arges (209.0km) | 209.0km |
| 09-09 | 12 | 13 | Stage 4Târgu Mureș - Fagaras Cetate (154.0km) | 154.0km |
| 08-09 | 11 | 28 | Stage 3Bistrita - Târgu Mureș (181.0km) | 181.0km |
| 07-09 | 8 | 32 | Stage 2Satu Mare - Bistrita Primarie (202.0km) | 202.0km |
| 06-09 | 34 | 34 | Stage 1Satu Mare - Satu Mare (2.0km) | 2.0km |
| | | Kreiz Breizh Elites (2.2) |
| 94 | | Klassement |
| 33 | | Punten |
| 01-08 | 96 | 94 | Stage 4Guingamp - Rostrenen (186.0km) | 186.0km |
| 31-07 | 148 | 107 | Stage 3Priziac - Carhaix (187.0km) | 187.0km |
| 30-07 | 12 | 49 | Stage 2Calanhel - Plouray (200.0km) | 200.0km |
| 29-07 | 83 | 83 | Stage 1Ploumagoar - Ploumagoar (12.0km) | 12.0km |
| 26-06 | 69 | | National Road Championships - France (CN) | 240.0km |
| | | La Route d'Occitanie - La Dépêche du Midi (2.1) |
| 110 | | Klassement |
| 23 | | Punten |
| 19-06 | 101 | 110 | Stage 4Les Angles - Auterive (188.0km) | 188.0km |
| 18-06 | 128 | 123 | Stage 3Sigean - Les Angles (188.0km) | 188.0km |
| 17-06 | 101 | 95 | Stage 2Belmont-sur-Rance - Roquefort-sur-Soulzon (35.0km) | 35.0km |
| 16-06 | 8 | 9 | Stage 1Séméac - L'Isle Jourdain (174.0km) | 174.0km |
| | | ZLM Tour (2.Pro) |
| 59 | | Klassement |
| 21 | | Punten |
| 12-06 | 48 | 59 | Stage 5Made - Rijsbergen (168.0km) | 168.0km |
| 11-06 | 16 | 64 | Stage 4Rucphen - Mierlo (195.0km) | 195.0km |
| 10-06 | 18 | 75 | Stage 3Heythuysen - Buchten (186.0km) | 186.0km |
| 09-06 | 82 | 79 | Stage 2Veere - Goes (183.0km) | 183.0km |
| 08-06 | 22 | 27 | Stage 1Kapelle - Kapelle (101.0km) | 101.0km |
| | | Tour de la Mirabelle (2.2) |
| 81 | | Klassement |
| 37 | | Punten |
| 29-05 | 65 | 81 | Stage 3Baccarat - Damelevières (161.0km) | 161.0km |
| 28-05 | 92 | 94 | Stage 2Breuches - Saint-Amarin (157.0km) | 157.0km |
| 27-05 | 9 | 53 | Stage 1Pont-à-Mousson - Pagny-sur-Moselle (174.0km) | 174.0km |
| 26-05 | 65 | 65 | PrologueVandoeuvre-lès-Nancy - Vandoeuvre-lès-Nancy (2.0km) | 2.0km |
| 22-05 | DNF | | Rund um Köln (1.1) | 199.0km |
| 15-05 | 79 | | Tro-Bro Léon (1.Pro) | 207.0km |
| 14-05 | DNF | | Grand Prix du Morbihan (1.Pro) | |
| | | Presidential Cycling Tour of Türkiye (2.Pro) |
| 85 | | Klassement |
| 41 | | Punten |
| 17-04 | | 85 | Stage 8Istanbul - Istanbul (136.0km) | 136.0km |
| 16-04 | 111 | 85 | Stage 7Gallipoli - Tekirdag (135.0km) | 135.0km |
| 15-04 | 74 | 52 | Stage 6Edremit - Eceabat (205.0km) | 205.0km |
| 14-04 | 31 | | Stage 5Manisa - Ayvalik (192.0km) | 192.0km |
| 13-04 | 72 | 54 | Stage 4İzmir - Manisa (147.0km) | 147.0km |
| 12-04 | 11 | 6 | Stage 3Çeşme - İzmir (123.0km) | 123.0km |
| 11-04 | 17 | 15 | Stage 2Selçuk - Alacati (158.0km) | 158.0km |
| 10-04 | 30 | 30 | Stage 1Bodrum - Kusadasi (207.0km) | 207.0km |
| | | Tour de Normandie (2.2) |
| 25-03 | OTL | | Stage 5Les Monts d'Aunay - Bagnoles de l'Orne (156.0km) | 156.0km |
| 24-03 | 14 | 14 | Stage 4Gacé - Argentan (160.0km) | 160.0km |
| 23-03 | 24 | 14 | Stage 3Nonancourt - Elbeuf (181.0km) | 181.0km |
| 22-03 | 6 | 19 | Stage 2Le Neubourg - Forges-les-Eaux (187.0km) | 187.0km |
| 21-03 | 26 | 27 | Stage 1Ouistreham - Vimoutiers (148.0km) | 148.0km |
| | | Tour of Antalya (2.1) |
| 50 | | Klassement |
| 13-02 | 32 | 50 | Stage 4Antalya - Antalya (162.0km) | 162.0km |
| 12-02 | 58 | 52 | Stage 3Aspendos - Termessos (110.0km) | 110.0km |
| 11-02 | 13 | 11 | Stage 2Kemer - Antalya (183.0km) | 183.0km |
| 10-02 | 7 | 8 | Stage 1Side - Antalya (144.0km) | 144.0km |