| 09-10 | 11 | | UCI Gravel World Championship (CM) | 194.0km |
| 25-09 | 40 | | UCI World Championship Wollongong (CM) | 266.0km |
| | | Skoda Tour de Luxembourg (2.Pro) |
| 34 | | Klassement |
| 17-09 | 48 | 34 | Stage 5Mersch - Luxembourg (178.0km) | 178.0km |
| 16-09 | 49 | 31 | Stage 4Remich - Remich (26.0km) | 26.0km |
| 15-09 | 31 | 28 | Stage 3Rosport - Diekirch (188.0km) | 188.0km |
| 14-09 | 40 | 35 | Stage 2Junglinster - Schifflange (163.0km) | 163.0km |
| 13-09 | 39 | 39 | Stage 1Luxembourg - Luxembourg (163.0km) | 163.0km |
| 04-09 | 27 | | Tour du Doubs (1.1) | 204.0km |
| | | Deutschland Tour (2.Pro) |
| 34 | | Klassement |
| 33 | | Punten |
| 28-08 | 42 | 34 | Stage 4Schiltach - Stuttgart (188.0km) | 188.0km |
| 27-08 | 32 | 33 | Stage 3Freiburg - Schauinsland (150.0km) | 150.0km |
| 26-08 | 39 | 40 | Stage 2Meiningen - Marburg (199.0km) | 199.0km |
| 25-08 | 77 | 75 | Stage 1Weimar - Meiningen (171.0km) | 171.0km |
| 24-08 | 88 | 88 | PrologueWeimar - Weimar (2.0km) | 2.0km |
| 14-08 | 26 | | UEC Road European Championships (CC) | 209.0km |
| | | Tour de l'Ain (2.1) |
| 11-08 | DNF | | Stage 3Plateau d'Hauteville - Lélex (131.0km) | 131.0km |
| 10-08 | 105 | 100 | Stage 2Saint-Vulbas - Lagnieu (144.0km) | 144.0km |
| 09-08 | 56 | 56 | Stage 1Chatillon-sur-Chalaronne - Val-Revermont (152.0km) | 152.0km |
| | | Tour de France (2.UWT) |
| 34 | | Klassement |
| 97 | | Punten |
| 27 | | Berg |
| 24-07 | 36 | 34 | Stage 21Paris - Paris (112.0km) | 112.0km |
| 23-07 | 80 | 35 | Stage 20Lacapelle-Marival - Rocamadour (40.0km) | 40.0km |
| 22-07 | 36 | 33 | Stage 19Castelnaudary - Cahors (188.0km) | 188.0km |
| 21-07 | 35 | 37 | Stage 18Lourdes - Hautacam (143.0km) | 143.0km |
| 20-07 | 39 | 45 | Stage 17Saint-Gaudens - Peyragudes (129.0km) | 129.0km |
| 19-07 | 58 | 43 | Stage 16Carcassonne - Foix (178.0km) | 178.0km |
| 17-07 | 31 | 42 | Stage 15Rodez - Carcassonne (202.0km) | 202.0km |
| 16-07 | 52 | 46 | Stage 14Saint-Étienne - Mende (192.0km) | 192.0km |
| 15-07 | 117 | 41 | Stage 13Bourg-d'Oisans - Saint-Étienne (192.0km) | 192.0km |
| 14-07 | 28 | 30 | Stage 12Briançon - L'Alpe-d'Huez (165.0km) | 165.0km |
| 13-07 | 42 | 43 | Stage 11Albertville - Col du Granon (151.0km) | 151.0km |
| 12-07 | 41 | 40 | Stage 10Morzine - Megève (148.0km) | 148.0km |
| 10-07 | 59 | 41 | Stage 9Aigle - Les Portes du Soleil (192.0km) | 192.0km |
| 09-07 | 42 | 39 | Stage 8Dôle - Lausanne (186.0km) | 186.0km |
| 08-07 | 45 | 42 | Stage 7Tomblaine - La Planche des Belles Filles (176.0km) | 176.0km |
| 07-07 | 42 | 59 | Stage 6Binche - Longwy (219.0km) | 219.0km |
| 06-07 | 110 | 96 | Stage 5Lille - Arenberg (157.0km) | 157.0km |
| 05-07 | 78 | 93 | Stage 4Dunkerque - Calais (171.0km) | 171.0km |
| 03-07 | 115 | 129 | Stage 3Vejle - Sønderborg (182.0km) | 182.0km |
| 02-07 | 89 | 138 | Stage 2Roskilde - Nyborg (202.0km) | 202.0km |
| 01-07 | 137 | 137 | Stage 1København (Copenhagen) - København (Copenhagen) (13.0km) | 13.0km |
| 14-06 | 22 | | Mont Ventoux Dénivelé Challenge (1.1) | 154.0km |
| | | Critérium du Dauphiné (2.UWT) |
| 51 | | Klassement |
| 29 | | Punten |
| 17 | | Berg |
| 12-06 | 65 | 51 | Stage 8Saint-Alban-Leysse - Plateau de Solaison (139.0km) | 139.0km |
| 11-06 | 50 | 50 | Stage 7Saint-Chaffrey - Vaujany (134.0km) | 134.0km |
| 10-06 | 52 | 64 | Stage 6Rives - Gap (196.0km) | 196.0km |
| 09-06 | 11 | 68 | Stage 5Thizy-les-Bourgs - Chaintré (162.0km) | 162.0km |
| 08-06 | 117 | 80 | Stage 4Montbrison - La Bâtie d'Urfé (31.0km) | 31.0km |
| 07-06 | 75 | 70 | Stage 3Saint-Paulien - Chastreix (164.0km) | 164.0km |
| 06-06 | 75 | 72 | Stage 2Saint-Péray - Brives-Charensac (169.0km) | 169.0km |
| 05-06 | 67 | 69 | Stage 1La Voulte-sur-Rhône - Beauchastel (191.0km) | 191.0km |
| 31-05 | 14 | | Mercan'Tour Classic Alpes-Maritimes (1.1) | 167.0km |
| | | Alpes Isère Tour (2.2) |
| 14 | | Klassement |
| 36 | | Punten |
| 9 | | Berg |
| 29-05 | 13 | 14 | Stage 5Les Échelles - Allevard-les-Bains (133.0km) | 133.0km |
| 28-05 | 29 | 13 | Stage 4Saint-Maurice-l'Exil - Beaurepaire (174.0km) | 174.0km |
| 27-05 | 15 | 14 | Stage 3Saint-Exupéry - Toussieu (145.0km) | 145.0km |
| 26-05 | 16 | 13 | Stage 2Les Abrets-en-Dauphiné - Saint-Quentin-Fallavier (161.0km) | 161.0km |
| 25-05 | 39 | 43 | Stage 1Charvieu-Chavagneux - Charvieu-Chavagneux (118.0km) | 118.0km |
| 22-05 | 6 | | Boucles de l'Aulne - Châteaulin (1.1) | 177.0km |
| | | 4 Jours de Dunkerque (2.Pro) |
| 15 | | Klassement |
| 08-05 | 38 | 15 | Stage 6Ardres - Dunkerque (182.0km) | 182.0km |
| 07-05 | 14 | 15 | Stage 5Roubaix - Cassel (183.0km) | 183.0km |
| 06-05 | 50 | 44 | Stage 4Mazingarbe - Aire-sur-la-Lys (174.0km) | 174.0km |
| 05-05 | 46 | 43 | Stage 3Péronne - Mont-Saint-Éloi (170.0km) | 170.0km |
| 04-05 | 52 | 44 | Stage 2Béthune - Maubeuge (181.0km) | 181.0km |
| 03-05 | 39 | 41 | Stage 1Dunkerque - Aniche (161.0km) | 161.0km |
| 01-05 | 24 | | Eschborn-Frankfurt (1.UWT) | 183.0km |
| 27-02 | DNF | | Drome Classic (1.Pro) | 191.0km |
| 26-02 | 68 | | Faun-Ardèche Classic
(1.Pro) | 168.0km |
| | | Tour de la Provence (2.Pro) |
| 17 | | Klassement |
| 13-02 | 16 | 17 | Stage 3Manosque - La Montagne de Lure (166.0km) | 166.0km |
| 12-02 | 14 | 38 | Stage 2Arles - Manosque (180.0km) | 180.0km |
| 11-02 | 41 | 73 | Stage 1Istres - Les Saintes-Maries-de-la-Mer (152.0km) | 152.0km |
| 10-02 | 87 | 87 | PrologueBerre l'Etang - Berre l'Etang (7.0km) | 7.0km |
| | | Etoile de Bessèges (2.1) |
| 32 | | Klassement |
| 17 | | Berg |
| 06-02 | 100 | 32 | Stage 5Alès - Alès (10.0km) | 10.0km |
| 05-02 | 29 | 30 | Stage 4Saint-Hilaire-de-Brethmas - Le Mont Bouquet (145.0km) | 145.0km |
| 04-02 | 71 | 44 | Stage 3Bessèges - Bessèges (155.0km) | 155.0km |
| 03-02 | 25 | 31 | Stage 2Saint-Christol-lès-Alès - Rousson (155.0km) | 155.0km |
| 02-02 | 58 | 58 | Stage 1Bellegarde - Bellegarde (160.0km) | 160.0km |