| 20-09 | 92 | | SUPER 8 Classic (1.Pro) | 204.0km |
| 17-09 | 33 | | Grand Prix de Wallonie (1.Pro) | 187.0km |
| | | Tour du Limousin (2.1) |
| 17 | | Klassement |
| 22-08 | 27 | 17 | Stage 4Bonneval - Limoges (164.0km) | 164.0km |
| 21-08 | 10 | 17 | Stage 3Saint-Jal - Masseret (182.0km) | 182.0km |
| 20-08 | 19 | 20 | Stage 2Thiviers - Grèzes (174.0km) | 174.0km |
| 19-08 | 10 | 14 | Stage 1Panazol - La Courtine (184.0km) | 184.0km |
| 17-08 | 30 | | La Polynormande (1.1) | 168.0km |
| | | Ethias-Tour de Wallonie (2.Pro) |
| 23 | | Klassement |
| 27 | | Punten |
| 32 | | Berg |
| 30-07 | 13 | 23 | Stage 5Bertrix - Bertrix (183.0km) | 183.0km |
| 29-07 | 18 | 31 | Stage 4Welkenraedt - Seraing (163.0km) | 163.0km |
| 28-07 | 87 | 58 | Stage 3Estinnes - Antoing (165.0km) | 165.0km |
| 27-07 | 17 | 63 | Stage 2Huy - Sambreville (153.0km) | 153.0km |
| 26-07 | 18 | 89 | Stage 1Nassogne - Nassogne (182.0km) | 182.0km |
| 05-07 | 6 | | Kirchheimer Radsportnacht (CRTP) | |
| 29-06 | 57 | | National Road Championships - Italy (CN) | 223.0km |
| 22-06 | DNS | | Andorra MoraBanc Clàssica (1.1) | 138.0km |
| | | La Route d'Occitanie - CIC (2.1) |
| 67 | | Klassement |
| 22 | | Berg |
| 21-06 | 68 | 67 | Stage 4Saint-Gaudens - Saint-Girons (128.0km) | 128.0km |
| 20-06 | 61 | 64 | Stage 3Pujaudran - Luz-Ardiden (173.0km) | 173.0km |
| 19-06 | 81 | | Stage 2Gignac - Carmaux (195.0km) | 195.0km |
| 18-06 | 118 | 118 | Stage 1Saint-Affrique - Roquefortf (10.0km) | 10.0km |
| | | Boucles de la Mayenne (2.Pro) |
| 41 | | Klassement |
| 01-06 | 80 | 41 | Stage 3Javron-les-Chapelles - Laval (163.0km) | 163.0km |
| 31-05 | 46 | 41 | Stage 2Sainte-Suzanne - Bais (210.0km) | 210.0km |
| 30-05 | 36 | 74 | Stage 1Saint-Berthevin - Juvigné (166.0km) | 166.0km |
| 29-05 | 120 | 120 | PrologueLaval - Laval (5.0km) | 5.0km |
| 09-05 | 95 | | Tour du Finistère Pays de Quimper (1.1) | 168.0km |
| 08-05 | DNF | | Boucles de l'Aulne - Châteaulin (1.1) | 183.0km |
| | | Presidential Cycling Tour of Turkiye (2.Pro) |
| 111 | | Klassement |
| 13 | | Berg |
| 04-05 | 140 | 111 | Stage 8Çeşme - İzmir (105.0km) | 105.0km |
| 03-05 | 118 | 99 | Stage 7Selçuk - Çeşme (144.0km) | 144.0km |
| 02-05 | 132 | 100 | Stage 6Kusadasi - Selçuk (161.0km) | 161.0km |
| 01-05 | | 90 | Stage 5Marmaris - Aydin (151.0km) | 151.0km |
| 30-04 | 122 | 90 | Stage 4Marmaris - Akkaya (115.0km) | 115.0km |
| 29-04 | 81 | 91 | Stage 3Fethiye - Marmaris (175.0km) | 175.0km |
| 28-04 | 115 | 119 | Stage 2Kemer - Kalkan (167.0km) | 167.0km |
| 27-04 | 143 | 143 | Stage 1Antalya - Antalya (132.0km) | 132.0km |
| | | Région Pays de la Loire Tour (2.1) |
| 08-04 | DNS | | Stage 1Machecoul-Saint-Même - La Baule-Escoublac (208.0km) | 208.0km |
| 05-04 | 29 | | Volta NXT Classic (1.1) | 192.0km |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 29-03 | DNF | | Stage 5Brisighella - Forlì (132.0km) | 132.0km |
| 28-03 | 111 | 94 | Stage 4Brisighella - Brisighella (150.0km) | 150.0km |
| 27-03 | 119 | 89 | Stage 3Riccione - Cesena (142.0km) | 142.0km |
| 26-03 | 77 | 77 | Stage 2Riccione - Sogliano al Rubicone (163.0km) | 163.0km |
| 25-03 | 90 | 90 | Stage 1Ferrara - Bondeno (174.0km) | 174.0km |
| 05-03 | 21 | | Trofeo Laigueglia (1.Pro) | 190.0km |
| | | Tour de la Provence (2.1) |
| 12 | | Klassement |
| 27 | | Punten |
| 12 | | Berg |
| 16-02 | 37 | 12 | Stage 3Rognac - Arles (197.0km) | 197.0km |
| 15-02 | 11 | 11 | Stage 2Forcalquier - Manosque (169.0km) | 169.0km |
| 14-02 | 15 | 16 | Stage 1Marseille - Saint-Victoret (175.0km) | 175.0km |
| | | Etoile de Bessèges - Tour du Gard (2.1) |
| 16 | | Klassement |
| 09-02 | 39 | 16 | Stage 5Alès - Alès (10.0km) | 10.0km |
| 08-02 | 22 | 16 | Stage 4Vauvert - Le Mont Bouquet (119.0km) | 119.0km |
| 07-02 | 21 | 18 | Stage 3Bessèges - Bessèges (136.0km) | 136.0km |
| 06-02 | 25 | 27 | Stage 2Domessargues - Marguerittes (165.0km) | 165.0km |
| 05-02 | 39 | 39 | Stage 1Bellegarde - Bellegarde (159.0km) | 159.0km |
| 02-02 | 11 | | Grand Prix Cycliste de Marseille La Marseillaise (1.1) | 164.0km |