| 09-10 | 106 | | Il Lombardia (1.UWT) | 239.0km |
| 05-10 | DNF | | Tre Valli Varesine (1.Pro) | 196.0km |
| 04-10 | 87 | | Coppa Bernocchi (1.Pro) | 197.0km |
| 02-10 | 73 | | Giro dell'Emilia (1.Pro) | 195.0km |
| 16-09 | 36 | | Coppa Sabatini (1.Pro) | 210.0km |
| 15-09 | 48 | | Giro della Toscana (1.1) | 191.0km |
| 29-08 | DNF | | Bretagne Classic - Ouest-France (1.UWT) | 250.0km |
| | | Vuelta a Burgos (2.Pro) |
| 74 | | Klassement |
| 07-08 | 65 | 74 | Stage 5Comunero de Revenga - Lagunas de Neila (146.0km) | 146.0km |
| 06-08 | 43 | 82 | Stage 4Roa - Aranda de Duero (149.0km) | 149.0km |
| 05-08 | 67 | 88 | Stage 3Busto de Bureba - Espinosa de los Monteros (173.0km) | 173.0km |
| 04-08 | 83 | 111 | Stage 2Tardajos - Briviesca (175.0km) | 175.0km |
| 03-08 | 114 | 114 | Stage 1Burgos - Burgos (161.0km) | 161.0km |
| 31-07 | 68 | | Donostia San Sebastian Klasikoa (1.UWT) | 223.0km |
| | | Ethias Tour de Wallonie (2.Pro) |
| 38 | | Klassement |
| 24-07 | 45 | 38 | Stage 5Dinant - Quaregnon (183.0km) | 183.0km |
| 23-07 | 45 | 38 | Stage 4Neufchâteau - Fleurus (206.0km) | 206.0km |
| 22-07 | 52 | 50 | Stage 3Plombières - Erezee (179.0km) | 179.0km |
| 21-07 | 64 | 88 | Stage 2Heusden-Zolder - Heusden-Zolder (120.0km) | 120.0km |
| 20-07 | 97 | 97 | Stage 1Genappe - Héron (185.0km) | 185.0km |
| 17-06 | 5 | | National Road Championships - USA TT (CN) | |
| | | La Route d'Occitanie - La Dépêche du Midi (2.1) |
| 64 | | Klassement |
| 13-06 | 52 | 64 | Stage 4Lavelanet - Duilhac-sous-Peyrepertuse (151.0km) | 151.0km |
| 12-06 | 61 | 72 | Stage 3Pierrefitte-Nestalas - Station du Mourtis (191.0km) | 191.0km |
| 11-06 | 121 | 114 | Stage 2Villefranche-de-Rouergue - Auch (198.0km) | 198.0km |
| 10-06 | 117 | 117 | Stage 1Cazouls-lès-Béziers - Lacaune-les-Bains (156.0km) | 156.0km |
| 08-06 | 57 | | Mont Ventoux Dénivelé Challenge (1.1) | 154.0km |
| | | Critérium du Dauphiné (2.UWT) |
| 94 | | Klassement |
| 06-06 | 91 | 94 | Stage 8La Léchère-les-Bains - Les Gets (147.0km) | 147.0km |
| 05-06 | 85 | 97 | Stage 7Saint-Martin-le-Vinoux - La Plagne (171.0km) | 171.0km |
| 04-06 | 87 | 104 | Stage 6Loriol-sur-Drôme - Le Sappey-en-Chartreuse (167.0km) | 167.0km |
| 03-06 | 95 | 104 | Stage 5Saint-Chamond - Saint-Vallier (174.0km) | 174.0km |
| 02-06 | 67 | 111 | Stage 4Firminy - Roche-la-Molière (16.0km) | 16.0km |
| 01-06 | 107 | 112 | Stage 3Langeac - Saint-Haon-le-Vieux (172.0km) | 172.0km |
| 31-05 | 123 | 112 | Stage 2Brioude - Saugues (172.0km) | 172.0km |
| 30-05 | 97 | 97 | Stage 1Issoire - Issoire (181.0km) | 181.0km |
| 24-05 | DNF | | Mercan'Tour Classic Alpes-Maritimes (1.1) | 163.0km |
| | | Tour of the Alps (2.Pro) |
| 109 | | Klassement |
| 23-04 | 102 | 109 | Stage 5Idroland - Riva del Garda (120.0km) | 120.0km |
| 22-04 | 107 | 114 | Stage 4Naturno - Pieve di Bono (168.0km) | 168.0km |
| 21-04 | 97 | 117 | Stage 3Imst - Naturno (162.0km) | 162.0km |
| 20-04 | 127 | 130 | Stage 2Innsbruck - Feichten im Kaunertal (121.0km) | 121.0km |
| 19-04 | 130 | 130 | Stage 1Bressanone - Innsbruck (142.0km) | 142.0km |