| 08-10 | DNF | | Il Lombardia (1.UWT) | 253.0km |
| 06-10 | 106 | | Paris - Bourges (1.1) | 198.0km |
| 02-10 | 67 | | Tour de Vendée (1.1) | 206.0km |
| | | Tour de l'Ain (2.1) |
| 11-08 | DNS | | Stage 3Plateau d'Hauteville - Lélex (131.0km) | 131.0km |
| 10-08 | 113 | 106 | Stage 2Saint-Vulbas - Lagnieu (144.0km) | 144.0km |
| 09-08 | 65 | 65 | Stage 1Chatillon-sur-Chalaronne - Val-Revermont (152.0km) | 152.0km |
| 26-06 | 49 | | National Road Championships - France (CN) | 240.0km |
| | | La Route d'Occitanie - La Dépêche du Midi (2.1) |
| 9 | | Klassement |
| 14 | | Berg |
| 19-06 | 30 | 9 | Stage 4Les Angles - Auterive (188.0km) | 188.0km |
| 18-06 | 11 | 10 | Stage 3Sigean - Les Angles (188.0km) | 188.0km |
| 17-06 | 47 | 47 | Stage 2Belmont-sur-Rance - Roquefort-sur-Soulzon (35.0km) | 35.0km |
| 16-06 | 69 | 70 | Stage 1Séméac - L'Isle Jourdain (174.0km) | 174.0km |
| 14-06 | 11 | | Mont Ventoux Dénivelé Challenge (1.1) | 154.0km |
| 10-06 | 45 | | Grosser Preis des Kantons Aargau (1.1) | 173.0km |
| 02-06 | 13 | | Giro dell'Appennino (1.1) | 191.0km |
| 31-05 | 40 | | Mercan'Tour Classic Alpes-Maritimes (1.1) | 167.0km |
| 22-05 | 33 | | Boucles de l'Aulne - Châteaulin (1.1) | 177.0km |
| 21-05 | 41 | | Tour du Finistère (1.1) | 193.0km |
| | | Vuelta Asturias Julio Alvarez Mendo (2.1) |
| 3 | | Klassement |
| 6 | | Punten |
| 8 | | Berg |
| 01-05 | 11 | 3 | Stage 3Cangas del Narcea - Oviedo (122.0km) | 122.0km |
| 30-04 | 5 | 3 | Stage 2Candás - Cangas del Narcea (202.0km) | 202.0km |
| 29-04 | 6 | 6 | Stage 1Oviedo - Pola de Lena (168.0km) | 168.0km |
| | | Presidential Cycling Tour of Türkiye (2.Pro) |
| 4 | | Klassement |
| 13 | | Punten |
| 3 | | Berg |
| 17-04 | | 4 | Stage 8Istanbul - Istanbul (136.0km) | 136.0km |
| 16-04 | 3 | 4 | Stage 7Gallipoli - Tekirdag (135.0km) | 135.0km |
| 15-04 | 16 | 6 | Stage 6Edremit - Eceabat (205.0km) | 205.0km |
| 14-04 | 35 | 6 | Stage 5Manisa - Ayvalik (192.0km) | 192.0km |
| 13-04 | 8 | 6 | Stage 4İzmir - Manisa (147.0km) | 147.0km |
| 12-04 | 75 | 36 | Stage 3Çeşme - İzmir (123.0km) | 123.0km |
| 11-04 | 56 | 37 | Stage 2Selçuk - Alacati (158.0km) | 158.0km |
| 10-04 | 58 | 58 | Stage 1Bodrum - Kusadasi (207.0km) | 207.0km |
| 27-03 | 14 | | GP Industria & Artigianato (1.Pro) | 192.0km |
| 20-03 | 33 | | Cholet - Pays de la Loire (1.1) | 202.0km |
| 19-03 | 46 | | Classic Loire Atlantique (1.1) | 182.0km |
| | | Paris-Nice (2.UWT) |
| 36 | | Klassement |
| 13-03 | 29 | 36 | Stage 8Nice - Nice (115.0km) | 115.0km |
| 12-03 | 40 | 45 | Stage 7Nice - Col de Turini (155.0km) | 155.0km |
| 11-03 | 57 | 63 | Stage 6Courthézon - Aubagne (213.0km) | 213.0km |
| 10-03 | 36 | 74 | Stage 5Saint-Just-Saint-Rambert - Saint-Sauveur-de-Montagut (188.0km) | 188.0km |
| 09-03 | 50 | 106 | Stage 4Domérat - Montluçon (13.0km) | 13.0km |
| 08-03 | 69 | 109 | Stage 3Vierzon - Dun-le-Palestel (190.0km) | 190.0km |
| 07-03 | 133 | 140 | Stage 2Auffargis - Orléans (159.0km) | 159.0km |
| 06-03 | 125 | 126 | Stage 1Mantes-la-Ville - Mantes-la-Ville (159.0km) | 159.0km |
| 26-02 | 84 | | Faun-Ardèche Classic
(1.Pro) | 168.0km |
| | | Tour des Alpes Maritimes et du Var (2.1) |
| 28 | | Klassement |
| 20-02 | 35 | 28 | Stage 3Villefranche-sur-Mer - Blausasc (113.0km) | 113.0km |
| 19-02 | 30 | 31 | Stage 2Puget-Théniers - La Turbie (149.0km) | 149.0km |
| 18-02 | 61 | 65 | Stage 1Saint-Raphaël - La Seyne-sur-Mer (176.0km) | 176.0km |
| | | Tour de la Provence (2.Pro) |
| 48 | | Klassement |
| 13-02 | 30 | 48 | Stage 3Manosque - La Montagne de Lure (166.0km) | 166.0km |
| 12-02 | 50 | 75 | Stage 2Arles - Manosque (180.0km) | 180.0km |
| 11-02 | 95 | 88 | Stage 1Istres - Les Saintes-Maries-de-la-Mer (152.0km) | 152.0km |
| 10-02 | 51 | 51 | PrologueBerre l'Etang - Berre l'Etang (7.0km) | 7.0km |
| 27-01 | DNS | | Trofeo Alcúdia - Port d'Alcúdia (1.1) | |