| 12.09 › 14.0912-14/9 | | | | Vuelta a la Subbética (NAT) | | | | | more |
| 43 | | | General classificationGeneral classification | | | | | |
| 14.09 | 67 | | | S3Stage 3 - Priego › Priego | | 122 | | | |
| 13.09 | 57 | | | S2Stage 2 - Cabra › Cabra | | 118.6 | | | |
| 12.09 | 20 | | | S1Stage 1 - Lucena › Lucena | | 101.6 | 5 | | |
| 28.08 › 31.0828-31/8 | | | | Volta Portugal Juniores (NAT) | | | | | more |
| 56 | | | General classificationGeneral classification | | | | | |
| 31.08 | 47 | | | S4Stage 4 - Celorico Da Beira › Trancoso | | 99 | | | |
| 30.08 | 77 | | | S3bStage 3b - Sabugal › Sabugal | | 18.8 | | | |
| 30.08 | 69 | | | S3aStage 3a - Penamacor › Sabugal | | 72.2 | | | |
| 29.08 | 80 | | | S2Stage 2 - Trancoso › Almeida | | 94.4 | | | |
| 28.08 | 76 | | | S1Stage 1 - Covilhá › Fundáo | | 104.1 | | | |
| 09.08 › 10.089-10/8 | | | | Vuelta Ciclista a Sevilla (NAT) | | | | | more |
| 27 | | | General classificationGeneral classification | | | 3 | | |
| 10.08 | 29 | | | S2Stage 2 - Cerro de San Cristóbal › Cerro de San Cristóbal | | 120 | | | |
| 09.08 | 26 | | | S1Stage 1 - Cerro de San Cristóbal › Cerro de San Cristóbal | | 79.9 | 1 | | |
| 06.08 | OTL | | | GP Ayuntamiento Benagéber - Alto Turia – Benagéber (NAT) | | 100 | | | more |
| 18.07 › 20.0718-20/7 | | | | Vuelta Ciclista a Valladolid Junior (NAT) | | | | | more |
| 52 | | | General classificationGeneral classification | | | | | |
| 19.07 | 39 | | | S4Stage 4 - Valladolid › Valladolid | | 137.8 | | | |
| 19.07 | 30 | | | S3Stage 3 - Mojados › Portillo | | 9 | | | |
| 19.07 | 93 | | | S2Stage 2 - Simancas › Laguna de Duero | | 65.9 | | | |
| 18.07 | 73 | | | S1Stage 1 - Valladolid › Mayorga | | 114 | | | |
| 10.07 › 13.0710-13/7 | | | | Bizkaiko Itzulia (NAT) | | | | | more |
| 78 | | | General classificationGeneral classification | | | | | |
| 13.07 | 83 | | | S5Stage 5 - Arrieta › Arrieta | | 104 | | | |
| 12.07 | 70 | | | S4 (ITT)Stage 4 (ITT) - Gordexola › San Cosme | | 2.8 | | | |
| 12.07 | 62 | | | S3Stage 3 - Sopela › Sopela | | 69.4 | | | |
| 11.07 | 59 | | | S2Stage 2 - Sodupe › Sodupe | | 96.1 | | | |
| 10.07 | 107 | | | S1Stage 1 - Markina-Xemein › Markina-Xemein | | 95.8 | | | |
| 04.07 › 06.074-6/7 | | | | Challenge Circuito Cantabro Junior - El Camargues (NAT) | | | | | more |
| 39 | | | General classificationGeneral classification | | | | | |
| 06.07 | 40 | | | S3Stage 3 - Camargo › Camargo | | 92.4 | | | |
| 05.07 | 22 | | | S2Stage 2 - Ruiloba › Ruiloba | | 106.9 | 1 | | |
| 04.07 | 45 | | | S1 (ITT)Stage 1 (ITT) - Escobedo › Ermita de San Pantaleón | | 2.1 | | | |
| 30.06 | DNF | | | Classic Région Sud U19 - Hautes-Alpes - Super Dévoluy (1.1) | | 115.4 | | | more |
| 28.06 | DNF | | | National Championships Spain MJ - Road Race (NC) | | 121.2 | | | more |
| 18.05 | 71 | | | Clasica Estella - Lizarra Klasikoa (NAT) | | | | | more |
| 10.05 | 26 | | | Trofeo Fiestas del Ausente (NAT) | | 106.5 | | | more |
| 27.04 | 47 | | | Memorial Chele Campos (NAT) | | 99.2 | | | more |
| 26.04 | 53 | | | Gran Premio El Baruco - Ayuntamiento de Camargo (NAT) | | 97 | | | more |
| 17.04 › 19.0417-19/4 | | | | Volta ao Concelho de Loulé Júnior (NAT) | | | | | more |
| 18.04 | 54 | | | S3Stage 3 - Quarteira › Alto do Malhão | | 73.7 | | | |
| 18.04 | 67 | | | S2 (ITT)Stage 2 (ITT) - Loulé › Loulé | | 11.5 | | | |
| 17.04 | 50 | | | S1Stage 1 - Ameixial › Loulé | | 73.4 | | | |
| 12.04 | 32 | | | Memorial Emilio Fernandez (NAT) | | 94.26 | | | more |
| 23.03 | 74 | | | GP Montemayor (NAT) | | 134 | | | more |
| 14.03 › 16.0314-16/3 | | | | Challenge Comarcas Leonesas (NAT) | | | | | more |
| 40 | | | General classificationGeneral classification | | | | | |
| 16.03 | 43 | | | Memorial Chely ÁlvarezMemorial Chely Álvarez - Bembibre › Bembibre | | 86 | | | |
| 15.03 | 21 | | | GP Ayuntamiento de ValdefresnoGP Ayuntamiento de Valdefresno - Valdefresno › Valdefresno | | 93 | 1 | | |
| 14.03 | 32 | | | GP Ciudad de La Bañeza (ITT)GP Ciudad de La Bañeza (ITT) - Bañeza › Bañeza | | 5 | | | |
| 09.03 | 15 | | | Challenge Comarcas de Guijuelo (NAT) | | 92.5 | 6 | | more |
| 08.03 | 41 | | | Challenge Comarcas de Béjar (NAT) | | 72.7 | | | more |
| 22.02 | 95 | | | Circuito del Guadiana Junior (NAT) | | 128.55 | | | more |
| 08.02 › 09.028-9/2 | | | | Challenge Vuelta Ciclista a Extremadura Junior Masculina (NAT) | | | | | more |
| 11 | | | General classificationGeneral classification | | | 13 | | |
| 09.02 | 11 | | | S2Stage 2 - Malpartida de Plasencia › Malpartida de Plasencia | | 79.3 | 4 | | |
| 08.02 | 28 | | | S1Stage 1 - Ribera del Fresno › Ribera del Fresno | | 82.8 | | | |