| 05-10 | DNF | | Tre Valli Varesine (1.Pro) | 196.0km |
| 04-10 | 77 | | Coppa Bernocchi (1.Pro) | 197.0km |
| 02-10 | 99 | | Giro dell'Emilia (1.Pro) | 195.0km |
| 19-09 | 91 | | Eschborn-Frankfurt (1.UWT) | 187.0km |
| 12-09 | DNF | | UEC Road European Championships (CC) | 179.0km |
| 09-09 | 34 | | UEC Road European Championships TT (CC) | 22.0km |
| | | PostNord Danmark Rundt - Tour of Denmark (2.Pro) |
| 13-08 | DNF | | Stage 4Holbæk - Kalundborg (189.0km) | 189.0km |
| 12-08 | 31 | 75 | Stage 3Tønder - Vejle (219.0km) | 219.0km |
| 11-08 | 93 | 94 | Stage 2Ribe - Sønderborg (183.0km) | 183.0km |
| 10-08 | 83 | 84 | Stage 1Struer - Esbjerg (176.0km) | 176.0km |
| | | Tour de l'Ain (2.1) |
| 23 | | Klassement |
| 31-07 | 21 | 23 | Stage 3Izernore - Lélex (125.0km) | 125.0km |
| 30-07 | 34 | 44 | Stage 2Lagnieu - Saint-Vulbas (136.0km) | 136.0km |
| 29-07 | 75 | 75 | Stage 1Parc des Oiseaux - Bourg-en-Bresse (141.0km) | 141.0km |
| 24-07 | 73 | | Olympic Games (OS) | 234.0km |
| 19-06 | 10 | | National Road Championships - Luxembourg (CN) | |
| 17-06 | 2 | | National Road Championships - Luxembourg TT (CN) | |
| | | La Route d'Occitanie - La Dépêche du Midi (2.1) |
| 26 | | Klassement |
| 13-06 | 33 | 26 | Stage 4Lavelanet - Duilhac-sous-Peyrepertuse (151.0km) | 151.0km |
| 12-06 | 31 | 30 | Stage 3Pierrefitte-Nestalas - Station du Mourtis (191.0km) | 191.0km |
| 11-06 | 65 | 42 | Stage 2Villefranche-de-Rouergue - Auch (198.0km) | 198.0km |
| 10-06 | 43 | 43 | Stage 1Cazouls-lès-Béziers - Lacaune-les-Bains (156.0km) | 156.0km |
| 08-06 | 7 | | Mont Ventoux Dénivelé Challenge (1.1) | 154.0km |
| | | Critérium du Dauphiné (2.UWT) |
| 60 | | Klassement |
| 06-06 | 27 | 60 | Stage 8La Léchère-les-Bains - Les Gets (147.0km) | 147.0km |
| 05-06 | 65 | 84 | Stage 7Saint-Martin-le-Vinoux - La Plagne (171.0km) | 171.0km |
| 04-06 | 33 | 89 | Stage 6Loriol-sur-Drôme - Le Sappey-en-Chartreuse (167.0km) | 167.0km |
| 03-06 | 79 | 111 | Stage 5Saint-Chamond - Saint-Vallier (174.0km) | 174.0km |
| 02-06 | 99 | 126 | Stage 4Firminy - Roche-la-Molière (16.0km) | 16.0km |
| 01-06 | 135 | 130 | Stage 3Langeac - Saint-Haon-le-Vieux (172.0km) | 172.0km |
| 31-05 | 62 | 126 | Stage 2Brioude - Saugues (172.0km) | 172.0km |
| 30-05 | 138 | 138 | Stage 1Issoire - Issoire (181.0km) | 181.0km |
| | | Vuelta a Andalucia Ruta Ciclista Del Sol (2.Pro) |
| 33 | | Klassement |
| 15 | | Berg |
| 22-05 | 59 | 33 | Stage 5Vera - Pulpí (182.0km) | 182.0km |
| 21-05 | 58 | 33 | Stage 4Baza - Cúllar Vega (182.0km) | 182.0km |
| 20-05 | 23 | 34 | Stage 3Beas de Segura - Villarodrigo (175.0km) | 175.0km |
| 19-05 | 55 | 54 | Stage 2Iznájar - Alcalá la Real (183.0km) | 183.0km |
| 18-05 | 74 | 73 | Stage 1La Cala de Mijas - Zahara de la Sierra (152.0km) | 152.0km |
| 25-04 | 130 | | Liège-Bastogne-Liège (1.UWT) | 259.0km |
| | | Tour of the Alps (2.Pro) |
| 40 | | Klassement |
| 23-04 | 76 | 40 | Stage 5Idroland - Riva del Garda (120.0km) | 120.0km |
| 22-04 | 34 | 30 | Stage 4Naturno - Pieve di Bono (168.0km) | 168.0km |
| 21-04 | 37 | 27 | Stage 3Imst - Naturno (162.0km) | 162.0km |
| 20-04 | 27 | 26 | Stage 2Innsbruck - Feichten im Kaunertal (121.0km) | 121.0km |
| 19-04 | 34 | 34 | Stage 1Bressanone - Innsbruck (142.0km) | 142.0km |
| 14-04 | DNF | | De Brabantse Pijl (1.Pro) | 201.0km |
| | | Volta Ciclista a Catalunya (2.UWT) |
| 63 | | Klassement |
| 28-03 | 91 | 63 | Stage 7Barcelona - Barcelona (133.0km) | 133.0km |
| 27-03 | 85 | 57 | Stage 6Tarragona - Mataró (194.0km) | 194.0km |
| 26-03 | 78 | 61 | Stage 5La Pobla de Segur - Manresa (201.0km) | 201.0km |
| 25-03 | 31 | | Stage 4Ripoll - Port Ainé-Rialp (166.0km) | 166.0km |
| 24-03 | 83 | 110 | Stage 3Canal Olimpic de Catalunya - Vallter 2000 (203.0km) | 203.0km |
| 23-03 | 117 | 122 | Stage 2Banyoles - Banyoles (18.0km) | 18.0km |
| 22-03 | 117 | 119 | Stage 1Calella - Calella (178.0km) | 178.0km |
| 28-02 | 91 | | Royal Bernard Drome Classic (1.Pro) | 179.0km |
| 27-02 | 88 | | Faun-Ardèche Classic (1.Pro) | 171.0km |