
Sunday, August 31: Stage 9, Alfaro - Estación de Esquí de Valdezcaray [Valdezcaray Ski Resort], 195.5 km
Stage 9 map & profile | Stage 9 photos

Jonas Vingegaard takes a brilliant solo win. Photo Rafa Gomez/SprintCyclingAgency
Bill and Carol McGann's book The Story of the Tour de France, 2019: A Year of New Faces is available in both Kindle eBook and audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at at the city of Ezcaray, on the route, 16 km from the finish, at 2:15 PM, local time: 22C (71F), showers in the vicinity, with the wind blowing from the southwest at 11 km/hr (7 mph). There is a 70% chance of rain and thunderstorms, dropping to 13% at 4:00 PM.
Rated ascent:
The stage: Long stage to complete the first week of the race. The stage’s flat outline may favor an escape in order to achieve enough of an advantage to fight for victory. One of the favorites may try to gain an advantage in the final climb towards the Valdezcaray Ski Resort.
The race: Here's the race organizer's stage nine report:
On the eve of the first rest day, Jonas Vingegaard (Visma–Lease a Bike) put the hammer down to claim his second stage win ) this time solo, after his narrow success in Limone Piemonte (stage 2). The Dane launched his move more than 10 kilometres from the line at Valdezcaray and rode clear to victory ahead of Tom Pidcock (Q36.5) and Joao Almeida (UAE Team Emirates–XRG), his closest challengers (+24’’).
Giulio Ciccone (Lidl–Trek) tried to respond but cracked, losing 1’46’’, the same time as Torstein Træen (Bahrain Victorious). The Norwegian keeps La Roja into the first rest day, 37’’ ahead of Vingegaard, with Almeida (+1’15’’) and Pidcock (+1’35’’) next in the standings.
The stage:
The first rest day is almost there, but the peloton of La Vuelta have more than 3,300 metres of elevation to overcome en route to a summit finish at the Valdezcaray ski resort before enjoying a sweet Monday.

The peloton at km 23: No breakaway yet. Photo: Sprint Cycling
A most hard-fought break
Attackers are inspired by this final challenge before the rest day, but they struggle to make the break. Repeated moves are swiftly covered, until Michal Kwiatkowski (Ineos Grenadiers) and Archie Ryan (EF Education-EasyPost) manage to go clear at km 48.
The peloton are on their heels but the duo hold firm and receive support in several waves. First, Michel Hessmann (Movistar) and Liam Slock (Lotto) join them at the front. Then Kevin Vermaerke (Picnic PostNL) makes it a five-man breakaway at km 63.

A break of five at km 75: Michel Hessmann (Movistar), Michal Kwiatkowski (Ineos Grenadiers), Archie Ryan (EF Education-EasyPost), Kevin Vermaerke (Picnic PostNL), and Liam Slock (Lotto) with a gap of 55 seconds.
Mads Pedersen (Lidl-Trek) and Sander De Pestel (Decathlon AG2R La Mondiale) briefly try to bridge across but are reeled in by the bunch. The Dane’s teammates are tasked to control the gap alongside Tom Pidcock’s Q36.5. The attackers’ lead never stretches beyond 2’45’’ (km 100).
Vingegaard takes off
Intermittent showers don’t dampen the bunch, but the attackers give it their all to resist. Their lead is still up to 55’’ into the last 20 kilometres. But they’re eventually reeled in at the bottom of the final climb: 13.2km with an average gradient of 5%. Lidl-Trek set the pace on the first slopes, the hardest.

The peloton racing in the rain at about km 160. Photo: CX Cycling
Suddenly, Matteo Jorgenson (Visma-Lease a Bike) produces a brutal acceleration to launch Jonas Vingegaard’s assault with 11 kilometres to go. Giulio Ciccone (Lidl-Trek) tries to follow but he’s dropped 10 km away from the summit.
Vingegaard rides clear to the summit, where Pidcock and Joao Almeida (UAE Team Emirates-XRG) come first behind him (+24’’). Felix Gall (Decathlon AG2R La Mondiale) loses just over 1’, and the rest of the GC contenders 1’46’’, in a group also featuring Torstein Træen (Bahrain Victorious), who retains La Roja with a 37’’ margin ahead of the first rest day.
Complete results:
195.5 km raced at an average speed of 43.099 km/hr
| 1 | Jonas Vingegaard | Team Visma | Lease a Bike | 4hr 32min 10sec |
| 2 | Tom Pidcock | Q36.5 Pro Cycling Team | @ 24sec |
| 3 | João Almeida | UAE Team Emirates-XRG | s.t. |
| 4 | Felix Gall | Decathlon AG2R La Mondiale | 1:02 |
| 5 | Raúl García | Arkea-B&B Hotels | 1:46 |
| 6 | Marc Soler | UAE Team Emirates-XRG | s.t. |
| 7 | Giulio Ciccone | Lidl-Trek | s.t. |
| 8 | Markel Beloki | EF Education-EasyPost | s.t. |
| 9 | Jai Hindley | Red Bull-BORA-hansgrohe | s.t. |
| 10 | Lorenzo Fortunato | XDS Astana Team | s.t. |
| 11 | Martin López | XDS Astana Team | s.t. |
| 12 | Matteo Jorgenson | Team Visma | Lease a Bike | s.t. |
| 13 | Matthew Riccitello | Israel-Premier Tech | s.t. |
| 14 | Ben O'Connor | Team Jayco-AlUla | s.t. |
| 15 | Egan Bernal | INEOS Grenadiers | s.t. |
| 16 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | s.t. |
| 17 | Torstein Træen | Bahrain Victorious | s.t. |
| 18 | Ramses Debruyne | Alpecin-Deceuninck | 1:52 |
| 19 | Junior Lecerf | Soudal Quick-Step | s.t. |
| 20 | Felix Grossschartner | UAE Team Emirates-XRG | s.t. |
| 21 | Victor Langellotti | INEOS Grenadiers | 1:54 |
| 22 | Abel Balderstone | Caja Rural-Seguros RGA | 1:57 |
| 23 | Jaume Guardeño | Caja Rural-Seguros RGA | s.t. |
| 24 | Juan Guillermo Martinez | Team Picnic PostNL | s.t. |
| 25 | Louis Meintjes | Intermarché-Wanty | s.t. |
| 26 | Ben Tulett | Team Visma | Lease a Bike | 2:03 |
| 27 | Sepp Kuss | Team Visma | Lease a Bike | 2:08 |
| 28 | Sergio Chumil | Burgos Burpellet BH | 3:58 |
| 29 | Harold Tejada | XDS Astana Team | s.t. |
| 30 | Gianmarco Garofoli | Soudal Quick-Step | s.t. |
| 31 | Clément Braz Afonso | Groupama-FDJ | 4:08 |
| 32 | Bruno Armirail | Decathlon AG2R La Mondiale | 4:54 |
| 33 | Rudy Molard | Groupama-FDJ | s.t. |
| 34 | Sergio Samitier | Cofidis | s.t. |
| 35 | Jefferson Cepeda | Movistar Team | s.t. |
| 36 | Santiago Buitrago | Bahrain Victorious | s.t. |
| 37 | Edward Dunbar | Team Jayco-AlUla | s.t. |
| 38 | Victor Campenaerts | Team Visma | Lease a Bike | 4:57 |
| 39 | Mikel Landa | Soudal Quick-Step | 6:10 |
| 40 | Brieuc Rolland | Groupama-FDJ | 6:46 |
| 41 | Callum Scotson | Decathlon AG2R La Mondiale | s.t. |
| 42 | Simone Petilli | Intermarché-Wanty | s.t. |
| 43 | Ben Zwiehoff | Red Bull-BORA-hansgrohe | s.t. |
| 44 | Nico Denz | Red Bull-BORA-hansgrohe | s.t. |
| 45 | Carlos Canal | Movistar Team | 6:49 |
| 46 | José Luis Faura | Burgos Burpellet BH | 7:47 |
| 47 | Paul Ourselin | Cofidis | 7:50 |
| 48 | Wilco Kelderman | Team Visma | Lease a Bike | 8:29 |
| 49 | Chris Hamilton | Team Picnic PostNL | s.t. |
| 50 | Kevin Vermaerke | Team Picnic PostNL | s.t. |
| 51 | Gijs Leemreize | Team Picnic PostNL | s.t. |
| 52 | Fausto Masnada | XDS Astana Team | s.t. |
| 53 | Andrea Bagioli | Lidl-Trek | s.t. |
| 54 | Pierre Thierry | Arkea-B&B Hotels | s.t. |
| 55 | Wout Poels | XDS Astana Team | s.t. |
| 56 | Louis Rouland | Arkea-B&B Hotels | s.t. |
| 57 | Brandon Rivera | INEOS Grenadiers | 8:33 |
| 58 | Jakub Otruba | Caja Rural-Seguros RGA | 10:10 |
| 59 | Magnus Sheffield | INEOS Grenadiers | 10:30 |
| 60 | Bob Jungels | INEOS Grenadiers | s.t. |
| 61 | Jonas Gregaard | Lotto | s.t. |
| 62 | Huub Artz | Intermarché-Wanty | s.t. |
| 63 | Tobias Bayer | Alpecin-Deceuninck | s.t. |
| 64 | Javier Romo | Movistar Team | s.t. |
| 65 | Jordan Labrosse | Decathlon AG2R La Mondiale | s.t. |
| 66 | Antonio Tiberi | Bahrain Victorious | s.t. |
| 67 | Damien Howson | Q36.5 Pro Cycling Team | s.t. |
| 68 | Louis Vervaeke | Soudal Quick-Step | s.t. |
| 69 | Chris Harper | Team Jayco-AlUla | s.t. |
| 70 | Alex Molenaar | Caja Rural-Seguros RGA | s.t. |
| 71 | Carlos Verona | Lidl-Trek | s.t. |
| 72 | Marco Frigo | Israel-Premier Tech | s.t. |
| 73 | Mauri Vansevenant | Soudal Quick-Step | 11:27 |
| 74 | Finlay Pickering | Bahrain Victorious | 12:04 |
| 75 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 13:04 |
| 76 | Jay Vine | UAE Team Emirates-XRG | s.t. |
| 77 | Jonas Rickaert | Alpecin-Deceuninck | 13:21 |
| 78 | Sander De Pestel | Decathlon AG2R La Mondiale | 13:33 |
| 79 | Stefan Küng | Groupama-FDJ | s.t. |
| 80 | Thibaud Gruel | Groupama-FDJ | s.t. |
| 81 | David González | Q36.5 Pro Cycling Team | s.t. |
| 82 | Julien Bernard | Lidl-Trek | s.t. |
| 83 | David de la Cruz | Q36.5 Pro Cycling Team | s.t. |
| 84 | Michal Kwiatkowski | INEOS Grenadiers | s.t. |
| 85 | Nicola Conci | XDS Astana Team | s.t. |
| 86 | Thomas Silva | Caja Rural-Seguros RGA | s.t. |
| 87 | Hugo de la Calle | Burgos Burpellet BH | s.t. |
| 88 | David Gaudu | Groupama-FDJ | s.t. |
| 89 | Jenthe Biermans | Arkea-B&B Hotels | s.t. |
| 90 | Johannes Staune-Mittet | Decathlon AG2R La Mondiale | s.t. |
| 91 | Luca Van Boven | Intermarché-Wanty | s.t. |
| 92 | Kamiel Bonneu | Intermarché-Wanty | s.t. |
| 93 | Casper van Uden | Team Picnic PostNL | s.t. |
| 94 | Joan Bou | Caja Rural-Seguros RGA | s.t. |
| 95 | Timo Roosen | Team Picnic PostNL | s.t. |
| 96 | Marcel Camprubí | Q36.5 Pro Cycling Team | s.t. |
| 97 | Remi Cavagna | Groupama-FDJ | s.t. |
| 98 | Edward Planckaert | Alpecin-Deceuninck | s.t. |
| 99 | Lukas Nerurkar | EF Education-EasyPost | 14:21 |
| 100 | Esteban Chaves | EF Education-EasyPost | s.t. |
| 101 | Jardi Van Der Lee | EF Education-EasyPost | s.t. |
| 102 | Sean Quinn | EF Education-EasyPost | s.t. |
| 103 | James Shaw | EF Education-EasyPost | s.t. |
| 104 | Dylan van Baarle | Team Visma | Lease a Bike | 15:07 |
| 105 | Madis Mihkels | EF Education-EasyPost | 17:15 |
| 106 | Arne Marit | Intermarché-Wanty | s.t. |
| 107 | Nans Peters | Decathlon AG2R La Mondiale | s.t. |
| 108 | Dion Smith | Intermarché-Wanty | s.t. |
| 109 | Gal Glivar | Alpecin-Deceuninck | s.t. |
| 110 | Roman Ermakov | Bahrain Victorious | s.t. |
| 111 | Nicolas Vinokurov | XDS Astana Team | s.t. |
| 112 | Sergio Higuita | XDS Astana Team | s.t. |
| 113 | Alec Segaert | Lotto | s.t. |
| 114 | Jasper De Buyst | Lotto | s.t. |
| 115 | Xabier Azparren | Q36.5 Pro Cycling Team | s.t. |
| 116 | Patrick Gamper | Team Jayco-AlUla | s.t. |
| 117 | Max Schachmann | Soudal Quick-Step | s.t. |
| 118 | Liam Slock | Lotto | s.t. |
| 119 | Emanuel Buchmann | Cofidis | s.t. |
| 120 | Lars Craps | Lotto | s.t. |
| 121 | Eduardo Sepulveda | Lotto | s.t. |
| 122 | Léandre Lozouet | Arkea-B&B Hotels | s.t. |
| 123 | Joel Nicolau | Caja Rural-Seguros RGA | s.t. |
| 124 | Sinuhé Fernandez | Burgos Burpellet BH | s.t. |
| 125 | Bryan Coquard | Cofidis | s.t. |
| 126 | Jesus Herrada | Cofidis | s.t. |
| 127 | Nickolas Zukowsky | Q36.5 Pro Cycling Team | s.t. |
| 128 | Mathijs Paasschens | Bahrain Victorious | s.t. |
| 129 | Christopher Juul-Jensen | Team Jayco-AlUla | s.t. |
| 130 | Nicolò Buratti | Bahrain Victorious | s.t. |
| 131 | Ethan Vernon | Israel-Premier Tech | s.t. |
| 132 | Jan Hirt | Israel-Premier Tech | s.t. |
| 133 | Archie Ryan | EF Education-EasyPost | 18:39 |
| 134 | Michel Hessmann | Movistar Team | s.t. |
| 135 | Filippo Ganna | INEOS Grenadiers | 19:30 |
| 136 | Elia Viviani | Lotto | s.t. |
| 137 | Matteo Sobrero | Red Bull-BORA-hansgrohe | s.t. |
| 138 | Iván García Cortina | Movistar Team | 19:48 |
| 139 | Fernando Barceló | Caja Rural-Seguros RGA | 21:04 |
| 140 | Domen Novak | UAE Team Emirates-XRG | 21:38 |
| 141 | Ivo Oliveira | UAE Team Emirates-XRG | s.t. |
| 142 | Jake Stewart | Israel-Premier Tech | 21:50 |
| 143 | Ben Turner | INEOS Grenadiers | s.t. |
| 144 | Stanislaw Aniolkowski | Cofidis | s.t. |
| 145 | Pier-André Côté | Israel-Premier Tech | s.t. |
| 146 | Nadav Raisberg | Israel-Premier Tech | s.t. |
| 147 | Tim van Dijke | Red Bull-BORA-hansgrohe | s.t. |
| 148 | Mads Pedersen | Lidl-Trek | s.t. |
| 149 | Jack Haig | Bahrain Victorious | s.t. |
| 150 | Patrick Eddy | Team Picnic PostNL | s.t. |
| 151 | Kelland O'Brien | Team Jayco-AlUla | s.t. |
| 152 | Amanuel Ghebreigzabhier | Lidl-Trek | s.t. |
| 153 | Victor Guernalec | Arkea-B&B Hotels | s.t. |
| 154 | Oscar Riesebeek | Alpecin-Deceuninck | s.t. |
| 155 | Jasper Philipsen | Alpecin-Deceuninck | s.t. |
| 156 | Mikkel Bjerg | UAE Team Emirates-XRG | s.t. |
| 157 | Juan Ayuso | UAE Team Emirates-XRG | s.t. |
| 158 | Bjoern Koerdt | Team Picnic PostNL | s.t. |
| 159 | Dries De Pooter | Intermarché-Wanty | s.t. |
| 160 | Fabio Christen | Q36.5 Pro Cycling Team | s.t. |
| 161 | Alessandro Verre | Arkea-B&B Hotels | s.t. |
| 162 | Daan Hoole | Lidl-Trek | 23:05 |
| 163 | Orluis Aular | Movistar Team | 23:07 |
| 164 | Pablo Castrillo | Movistar Team | s.t. |
| 165 | Anders Foldager | Team Jayco-AlUla | s.t. |
| 166 | Søren Kragh Andersen | Lidl-Trek | s.t. |
| 167 | Léo Bisiaux | Decathlon AG2R La Mondiale | 23:15 |
| 168 | Finn Fisher-Black | Red Bull-BORA-hansgrohe | 24:16 |
| 169 | Mario Aparicio | Burgos Burpellet BH | 34:48 |
GC after stage 9:
1423.9 kilometers raced so far at an average speed of 42.383 km/hr
| 1 | Torstein Træen | Bahrain Victorious | 33hr 35min 46sec |
| 2 | Jonas Vingegaard | Team Visma | Lease a Bike | @ 37sec |
| 3 | João Almeida | UAE Team Emirates-XRG | 1:15 |
| 4 | Tom Pidcock | Q36.5 Pro Cycling Team | 1:35 |
| 5 | Felix Gall | Decathlon AG2R La Mondiale | 2:14 |
| 6 | Giulio Ciccone | Lidl-Trek | 2:42 |
| 7 | Lorenzo Fortunato | XDS Astana Team | 2:47 |
| 8 | Matteo Jorgenson | Team Visma | Lease a Bike | 2:49 |
| 9 | Jai Hindley | Red Bull-BORA-hansgrohe | 2:53 |
| 10 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | s.t. |
| 11 | Egan Bernal | INEOS Grenadiers | 2:55 |
| 12 | Marc Soler | UAE Team Emirates-XRG | 3:04 |
| 13 | Matthew Riccitello | Israel-Premier Tech | 3:20 |
| 14 | Raúl García | Arkea-B&B Hotels | 3:39 |
| 15 | Ben O'Connor | Team Jayco-AlUla | 3:53 |
| 16 | Sepp Kuss | Team Visma | Lease a Bike | 4:00 |
| 17 | Junior Lecerf | Soudal Quick-Step | 4:21 |
| 18 | Martin López | XDS Astana Team | 6:30 |
| 19 | Bruno Armirail | Decathlon AG2R La Mondiale | 6:48 |
| 20 | Jefferson Cepeda | Movistar Team | 7:36 |
| 21 | Santiago Buitrago | Bahrain Victorious | 7:44 |
| 22 | Louis Meintjes | Intermarché-Wanty | 7:58 |
| 23 | Sergio Chumil | Burgos Burpellet BH | 8:36 |
| 24 | Mikel Landa | Soudal Quick-Step | 9:23 |
| 25 | Harold Tejada | XDS Astana Team | 10:44 |
| 26 | Sergio Samitier | Cofidis | 11:58 |
| 27 | Jaume Guardeño | Caja Rural-Seguros RGA | 12:23 |
| 28 | Ben Tulett | Team Visma | Lease a Bike | 12:40 |
| 29 | Abel Balderstone | Caja Rural-Seguros RGA | 13:01 |
| 30 | Marco Frigo | Israel-Premier Tech | 13:26 |
| 31 | Brieuc Rolland | Groupama-FDJ | 14:31 |
| 32 | Gianmarco Garofoli | Soudal Quick-Step | 14:55 |
| 33 | Rudy Molard | Groupama-FDJ | 19:18 |
| 34 | Chris Harper | Team Jayco-AlUla | 20:06 |
| 35 | Callum Scotson | Decathlon AG2R La Mondiale | 21:22 |
| 36 | Louis Vervaeke | Soudal Quick-Step | 21:36 |
| 37 | Wout Poels | XDS Astana Team | 22:26 |
| 38 | Markel Beloki | EF Education-EasyPost | 23:53 |
| 39 | Kevin Vermaerke | Team Picnic PostNL | 24:12 |
| 40 | Victor Langellotti | INEOS Grenadiers | 25:18 |
| 41 | Damien Howson | Q36.5 Pro Cycling Team | 25:25 |
| 42 | Clément Braz Afonso | Groupama-FDJ | 25:31 |
| 43 | Antonio Tiberi | Bahrain Victorious | 28:46 |
| 44 | Javier Romo | Movistar Team | 29:06 |
| 45 | Andrea Bagioli | Lidl-Trek | 30:11 |
| 46 | David Gaudu | Groupama-FDJ | 31:02 |
| 47 | Wilco Kelderman | Team Visma | Lease a Bike | 31:22 |
| 48 | Brandon Rivera | INEOS Grenadiers | 31:25 |
| 49 | Juan Ayuso | UAE Team Emirates-XRG | 32:52 |
| 50 | Ben Zwiehoff | Red Bull-BORA-hansgrohe | 33:02 |
| 51 | José Luis Faura | Burgos Burpellet BH | 33:15 |
| 52 | James Shaw | EF Education-EasyPost | 35:24 |
| 53 | Sander De Pestel | Decathlon AG2R La Mondiale | 35:58 |
| 54 | Paul Ourselin | Cofidis | 36:29 |
| 55 | Johannes Staune-Mittet | Decathlon AG2R La Mondiale | 36:41 |
| 56 | Thomas Silva | Caja Rural-Seguros RGA | 37:04 |
| 57 | Fausto Masnada | XDS Astana Team | 37:21 |
| 58 | Magnus Sheffield | INEOS Grenadiers | s.t. |
| 59 | Sergio Higuita | XDS Astana Team | 37:44 |
| 60 | Archie Ryan | EF Education-EasyPost | 37:46 |
| 61 | Victor Campenaerts | Team Visma | Lease a Bike | 38:17 |
| 62 | Max Schachmann | Soudal Quick-Step | 38:19 |
| 63 | Carlos Canal | Movistar Team | 38:27 |
| 64 | Felix Grossschartner | UAE Team Emirates-XRG | 38:41 |
| 65 | Mauri Vansevenant | Soudal Quick-Step | 39:39 |
| 66 | Jan Hirt | Israel-Premier Tech | 40:57 |
| 67 | Edward Dunbar | Team Jayco-AlUla | 40:58 |
| 68 | Finlay Pickering | Bahrain Victorious | 41:22 |
| 69 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 42:27 |
| 70 | Nans Peters | Decathlon AG2R La Mondiale | 42:43 |
| 71 | Julien Bernard | Lidl-Trek | 42:57 |
| 72 | Juan Guillermo Martinez | Team Picnic PostNL | 43:23 |
| 73 | Nicola Conci | XDS Astana Team | 44:35 |
| 74 | Eduardo Sepulveda | Lotto | 44:46 |
| 75 | Alex Molenaar | Caja Rural-Seguros RGA | 45:14 |
| 76 | Pierre Thierry | Arkea-B&B Hotels | 45:34 |
| 77 | Carlos Verona | Lidl-Trek | 46:16 |
| 78 | Jordan Labrosse | Decathlon AG2R La Mondiale | 46:41 |
| 79 | David de la Cruz | Q36.5 Pro Cycling Team | 46:46 |
| 80 | Bob Jungels | INEOS Grenadiers | 47:12 |
| 81 | Jay Vine | UAE Team Emirates-XRG | 48:31 |
| 82 | Stefan Küng | Groupama-FDJ | 48:42 |
| 83 | Lars Craps | Lotto | 49:27 |
| 84 | Ramses Debruyne | Alpecin-Deceuninck | 49:56 |
| 85 | Roman Ermakov | Bahrain Victorious | 50:53 |
| 86 | Chris Hamilton | Team Picnic PostNL | 51:00 |
| 87 | Michal Kwiatkowski | INEOS Grenadiers | 51:58 |
| 88 | Finn Fisher-Black | Red Bull-BORA-hansgrohe | 52:13 |
| 89 | Simone Petilli | Intermarché-Wanty | 52:28 |
| 90 | Thibaud Gruel | Groupama-FDJ | 53:10 |
| 91 | Pablo Castrillo | Movistar Team | 53:16 |
| 92 | Jesus Herrada | Cofidis | 53:51 |
| 93 | Sean Quinn | EF Education-EasyPost | 53:54 |
| 94 | Remi Cavagna | Groupama-FDJ | 54:25 |
| 95 | Hugo de la Calle | Burgos Burpellet BH | 54:31 |
| 96 | Kamiel Bonneu | Intermarché-Wanty | 54:37 |
| 97 | Jack Haig | Bahrain Victorious | 54:50 |
| 98 | Marcel Camprubí | Q36.5 Pro Cycling Team | 55:02 |
| 99 | Esteban Chaves | EF Education-EasyPost | 55:03 |
| 100 | Orluis Aular | Movistar Team | 55:53 |
| 101 | Lukas Nerurkar | EF Education-EasyPost | 56:15 |
| 102 | Emanuel Buchmann | Cofidis | 56:24 |
| 103 | Léo Bisiaux | Decathlon AG2R La Mondiale | 56:48 |
| 104 | Jonas Gregaard | Lotto | 57:32 |
| 105 | Louis Rouland | Arkea-B&B Hotels | 58:00 |
| 106 | Jonas Rickaert | Alpecin-Deceuninck | 58:42 |
| 107 | Gijs Leemreize | Team Picnic PostNL | 59:57 |
| 108 | Bjoern Koerdt | Team Picnic PostNL | 1:00:34 |
| 109 | Mads Pedersen | Lidl-Trek | 1:00:58 |
| 110 | Nico Denz | Red Bull-BORA-hansgrohe | 1:01:14 |
| 111 | Madis Mihkels | EF Education-EasyPost | 1:02:42 |
| 112 | Patrick Gamper | Team Jayco-AlUla | 1:02:48 |
| 113 | Michel Hessmann | Movistar Team | 1:03:11 |
| 114 | Matteo Sobrero | Red Bull-BORA-hansgrohe | 1:03:39 |
| 115 | Iván García Cortina | Movistar Team | 1:03:49 |
| 116 | Nicolò Buratti | Bahrain Victorious | 1:04:11 |
| 117 | Pier-André Côté | Israel-Premier Tech | 1:04:19 |
| 118 | Bryan Coquard | Cofidis | 1:04:46 |
| 119 | Léandre Lozouet | Arkea-B&B Hotels | 1:06:14 |
| 120 | Joel Nicolau | Caja Rural-Seguros RGA | 1:06:20 |
| 121 | David González | Q36.5 Pro Cycling Team | 1:06:27 |
| 122 | Jakub Otruba | Caja Rural-Seguros RGA | 1:06:59 |
| 123 | Gal Glivar | Alpecin-Deceuninck | 1:07:00 |
| 124 | Christopher Juul-Jensen | Team Jayco-AlUla | 1:07:51 |
| 125 | Alec Segaert | Lotto | 1:07:54 |
| 126 | Dries De Pooter | Intermarché-Wanty | 1:08:07 |
| 127 | Joan Bou | Caja Rural-Seguros RGA | 1:08:20 |
| 128 | Filippo Ganna | INEOS Grenadiers | 1:10:25 |
| 129 | Dylan van Baarle | Team Visma | Lease a Bike | 1:10:36 |
| 130 | Kelland O'Brien | Team Jayco-AlUla | 1:10:52 |
| 131 | Sinuhé Fernandez | Burgos Burpellet BH | 1:11:08 |
| 132 | Fernando Barceló | Caja Rural-Seguros RGA | 1:11:29 |
| 133 | Jasper De Buyst | Lotto | 1:11:46 |
| 134 | Ben Turner | INEOS Grenadiers | 1:11:48 |
| 135 | Huub Artz | Intermarché-Wanty | 1:11:50 |
| 136 | Mathijs Paasschens | Bahrain Victorious | 1:11:57 |
| 137 | Jake Stewart | Israel-Premier Tech | 1:12:01 |
| 138 | Søren Kragh Andersen | Lidl-Trek | 1:12:50 |
| 139 | Ivo Oliveira | UAE Team Emirates-XRG | 1:13:13 |
| 140 | Alessandro Verre | Arkea-B&B Hotels | 1:13:53 |
| 141 | Nicolas Vinokurov | XDS Astana Team | 1:13:57 |
| 142 | Edward Planckaert | Alpecin-Deceuninck | 1:14:01 |
| 143 | Dion Smith | Intermarché-Wanty | 1:14:05 |
| 144 | Fabio Christen | Q36.5 Pro Cycling Team | 1:14:08 |
| 145 | Ethan Vernon | Israel-Premier Tech | 1:14:53 |
| 146 | Tobias Bayer | Alpecin-Deceuninck | 1:16:19 |
| 147 | Luca Van Boven | Intermarché-Wanty | 1:18:12 |
| 148 | Mikkel Bjerg | UAE Team Emirates-XRG | 1:19:19 |
| 149 | Nickolas Zukowsky | Q36.5 Pro Cycling Team | 1:20:10 |
| 150 | Jardi Van Der Lee | EF Education-EasyPost | 1:20:28 |
| 151 | Timo Roosen | Team Picnic PostNL | 1:20:35 |
| 152 | Arne Marit | Intermarché-Wanty | 1:22:03 |
| 153 | Jenthe Biermans | Arkea-B&B Hotels | 1:22:25 |
| 154 | Victor Guernalec | Arkea-B&B Hotels | 1:22:41 |
| 155 | Daan Hoole | Lidl-Trek | 1:23:05 |
| 156 | Nadav Raisberg | Israel-Premier Tech | 1:23:32 |
| 157 | Casper van Uden | Team Picnic PostNL | 1:23:33 |
| 158 | Jasper Philipsen | Alpecin-Deceuninck | 1:25:16 |
| 159 | Anders Foldager | Team Jayco-AlUla | 1:25:39 |
| 160 | Liam Slock | Lotto | 1:25:56 |
| 161 | Tim van Dijke | Red Bull-BORA-hansgrohe | 1:26:19 |
| 162 | Amanuel Ghebreigzabhier | Lidl-Trek | 1:28:58 |
| 163 | Elia Viviani | Lotto | 1:29:31 |
| 164 | Stanislaw Aniolkowski | Cofidis | 1:32:30 |
| 165 | Xabier Azparren | Q36.5 Pro Cycling Team | 1:32:39 |
| 166 | Domen Novak | UAE Team Emirates-XRG | 1:33:39 |
| 167 | Patrick Eddy | Team Picnic PostNL | 1:37:19 |
| 168 | Mario Aparicio | Burgos Burpellet BH | 1:41:40 |
| 169 | Oscar Riesebeek | Alpecin-Deceuninck | 1:53:58 |
Stage 9 map & profile:

Stage 9 map

Stage 9 profile
Stage 9 photos by Fotoreporter Sirotti:

Before the race Team Jayco AlUla is presented.

Mikel Landa after his team was presented.

Rudy Molard

The peloton races across the Spanish countryside.

Jonas Vingegaard wins the stage.

Looking worse for the wear, Tom Pidcock finished second.

Third-place Joao Almeida

Felix Gall was fourth.

Fifth-place Raul Garcia leads a group in.

Giulio Pellizzari and Torstein Træen, looking worse for the wear, finish 16th & 17th, @ 1min 46sec. That's good enough to keep Træen in red.

Stage winner Jonas Vingegaard

Torstein Træen remains the GC leader and will start stage 10 on Tuesday in red.