09.10 | 106 | | | Il Lombardia (1.UWT) | 239 | 5 | | more |
05.10 | DNF | | | Tre Valli Varesine (1.Pro) | 196.7 | | | more |
04.10 | 87 | | | Coppa Bernocchi - GP BPM (1.Pro) | 197.15 | | | more |
02.10 | DNF | | | Giro dell'Emilia (1.Pro) | 195.3 | | | more |
16.09 | 36 | | | Coppa Sabatini - Gran Premio città di Peccioli (1.Pro) | 210.8 | | 3 | more |
15.09 | 48 | | | Giro della Toscana - Memorial Alfredo Martini (1.1) | 191.6 | | | more |
29.08 | DNF | | | Bretagne Classic - Ouest-France (1.UWT) | 251 | | | more |
03.08 › 07.083-7/8 | | | | Vuelta a Burgos (2.Pro) | | | | more |
| 73 | | | General classificationGeneral classification | | | | |
07.08 | 64 | | | S5Stage 5 - Comunero de Revenga › Lagunas de Neila | 146 | | | |
06.08 | 42 | 82 | | S4Stage 4 - Roa › Aranda de Duero | 149 | | | |
05.08 | 66 | 88 | | S3Stage 3 - Busto de Bureba › Espinosa de los Monteros | 173 | | | |
04.08 | 82 | 111 | | S2Stage 2 - Tardajos › Briviesca | 175 | | | |
03.08 | 113 | 114 | | S1Stage 1 - Burgos (Catedral) › Burgos (El Castillo) | 161 | | | |
31.07 | 68 | | | Donostia San Sebastian Klasikoa (1.UWT) | 223.5 | 5 | | more |
20.07 › 24.0720-24/7 | | | | Tour de Wallonie (2.Pro) | | | | more |
| 38 | | | General classificationGeneral classification | | | 3 | |
24.07 | 45 | | | S5Stage 5 - Dinant › Quaregnon | 192.4 | | | |
23.07 | 45 | 38 | | S4Stage 4 - Neufchâteau › Fleurus | 206 | | | |
22.07 | 52 | 50 | | S3Stage 3 - Plombières › Érezée | 177 | | | |
21.07 | 64 | 88 | | S2Stage 2 - Zolder › Zolder | 120 | | | |
20.07 | 97 | 97 | | S1Stage 1 - Genappe › Héron | 185.7 | | | |
20.06 | 64 | | | National Championships United States ME - Road Race (NC) | 190.9 | | | more |
17.06 | 5 | | | National Championships United States ME - ITT (NC) | 34.9 | | 10 | more |
10.06 › 13.0610-13/6 | | | | La Route d'Occitanie - La Dépêche du Midi (2.1) | | | | more |
| 24 | | | Youth classificationYouth classification | | | | |
| 64 | | | General classificationGeneral classification | | | | |
13.06 | 52 | | | S4Stage 4 - Lavelanet-Pays d'Olmes › Duilhac-Sous-Peyrepertuse | 151.2 | | | |
12.06 | 61 | 72 | | S3Stage 3 - Pierrefitte-Nestalas › Le Mourtis | 191.8 | | | |
11.06 | 121 | 114 | | S2Stage 2 - Villefranche-De-Rouergue › Auch | 198.7 | | | |
10.06 | 117 | 117 | | S1Stage 1 - Cazouls-Lès-Béziers › Lacaune Les Bains | 156.5 | | | |
08.06 | 57 | | | Mont Ventoux Dénivelé Challenge (1.1) | 153 | | | more |
30.05 › 06.0630-6/5 | | | | Critérium du Dauphiné (2.UWT) | | | | more |
| 25 | | | Youth classificationYouth classification | | | | |
| 94 | | | General classificationGeneral classification | | 5 | | |
06.06 | 91 | | | S8Stage 8 - La Léchère-Les-Bains › Les Gets | 147 | | | |
05.06 | 85 | 97 | | S7Stage 7 - Saint-Martin-le-Vinoux › La Plagne | 171.1 | | | |
04.06 | 87 | 104 | | S6Stage 6 - Loriol-sur-Drome › Le Sappey-en-Chartreuse | 167.2 | | | |
03.06 | 95 | 104 | | S5Stage 5 - Saint-Chamond › Saint-Vallier | 175.4 | | | |
02.06 | 67 | 111 | | S4 (ITT)Stage 4 (ITT) - Firminy › Roche-La-Molière | 16.4 | | | |
01.06 | 107 | 112 | | S3Stage 3 - Langeac › Saint-Haon-Le-Vieux | 172.2 | | | |
31.05 | 123 | 112 | | S2Stage 2 - Brioude › Saugues | 172.8 | | | |
30.05 | 97 | 97 | | S1Stage 1 - Issoire › Issoire | 181.8 | | | |
24.05 | DNF | | | Mercan'Tour Classic Alpes-Maritimes (1.1) | 149.9 | | | more |
19.04 › 23.0419-23/4 | | | | Tour of the Alps (2.Pro) | | | | more |
| 109 | | | General classificationGeneral classification | | | | |
23.04 | 102 | | | S5Stage 5 - Valle del Chiese/Idroland › Riva del Garda | 120.9 | | | |
22.04 | 107 | 114 | | S4Stage 4 - Naturns › Pieve di Bono | 168.6 | | | |
21.04 | 97 | 117 | | S3Stage 3 - Imst › Naturns | 162 | | | |
20.04 | 127 | 130 | | S2Stage 2 - Innsbruck › Feichten im Kaunertal | 121.5 | | | |
19.04 | 130 | 130 | | S1Stage 1 - Brixen › Innsbruck | 140.6 | | | |