
Tuesday, May 20: Stage 10, Lucca - Pisa 28.6 km individual time trial
Stage 10 map & profile | Stage 10 photos

Stage winner Daan Hoole finishing his ride by the Leaning Tower of Pisa and the Pisa Cathedral. RCS photo
Bill & Carol McGann’s book The Story of the 2024 Tour de France: The Happy Warrior Triumphs is available print, Kindle eBook and audiobook versions. To get your copy, just click on the link on the right.
Weather at the finish city of Pisa at 2:15 PM, local time: 21C (70F), partly cloudy, with the wind from the southeast at 21 km/hr (13 mph). There is a 76% chance of rain and thunderstorms, likely beginning about 2:45 PM. There is a strong possibility of heavy downpours with frequent lightning.
The stage: A mostly flat individual TT with one short climb mid-route. Starting in Lucca, riders circle nearly all of the city walls, then head through the southern part of town with a series of turns. After the first time check, the course becomes straight with a slight uphill drag toward the Monti Pisani tunnel (950 m). After the tunnel, fast sweeping bends take the riders to San Giuliano Terme and Asciano, then into Pisa about 3 km from the line. The finish is right beside the Leaning Tower.
Final kilometers: Several curves and river crossings. Just after 1 km to go, the route leaves the riverfront for the city center. At 500 m, riders hit cobblestones that continue until the last corner. The final straight is 200 m on 6-metre-wide asphalt.
The race: Primoz Roglic, already bandaged from his fall on the gravel stage, slipped on wet asphalt while testing today’s time trial course. Fortunately, he escaped without any further injuries.
The later-starting riders were much more cautious, understandably so, compared to those who started earlier under better conditions. The rain-soaked roads had a big impact.

The stage finish is next to the Leaning Tower of Pisa. RCS photo
Here's the race report from stage winner Daan Hoole's Team Lidl-Trek:
He's Daan it! Daan Hoole has taken Lidl-Trek's tally of victory at the Giro d'Italia up to four as racing resumed with a second race against the clock.
The 26-year-old Dutch time trial specialist is often seen riding in support of his team leaders but on Stage 10 of the Giro d’Italia it was Daan Hoole’s time to truly shine bright even through the grey and rainy skies.
Hoole stepped onto the podium himself after winning the 28.6-kilometer-long time trial from Lucca to Pisa and securing the first Grand Tour stage win of his career.
Almost at a loss for words…
"This is an unbelievable feeling. Honestly, it hasn't sunk in yet. I can't believe it. I am so happy and full of emotions. It's crazy. I had a lot of messages from people before the finish telling me congratulations but I didn't want to think about it, I wanted to wait until the last rider was finished and then I could celebrate. Even Simone [Consonni] and Jonny [Milan] called me and were telling me to enjoy my time in the hot seat and just telling me I did a good TT. They are good friends of mine and it was so nice to see that they were so happy for me, it means a lot.
"It is crazy to win a Giro d'Italia stage. I was aiming for this day and I was feeling good all week but, to win, I never thought I would do this. In time trials, I always get the chance to go for my own result and the Team support me fully so that's super nice and I think everyone is super happy for me. We can have another good celebration tonight.
"Of course, the GC guys had rain and that changed a lot but I am still happy that I could beat [Josh] Tarling [INEOS Grenadiers] in more or less the same conditions. It's an insane feeling, and I honestly don't know what to say. I was surprised to beat him. He is one of the best time trial riders in the world and I think, he started super fast so when I saw his first intermediate time I was thinking it was going to be hard to beat him but I did a good second part of the race and that's where I took some time back on him and he exploded a little bit. A victory in the Giro is so special and I am so happy. I want to thank the Team, my coach, everyone, my parents and my brother. I just don't know what more to say."
Complete results:
28.6 kilometers raced at an average speed of 52.800 km/hr
| 1 | Daan Hoole | Lidl-Trek | 32min 30sec |
| 2 | Joshua Tarling | INEOS Grenadiers | @ 7sec |
| 3 | Ethan Hayter | Soudal Quick-Step | 0:10 |
| 4 | Mattia Cattaneo | Soudal Quick-Step | 0:23 |
| 5 | Edoardo Affini | Team Visma | Lease a Bike | 0:24 |
| 6 | Jay Vine | UAE Team Emirates-XRG | 0:37 |
| 7 | Luke Plapp | Team Jayco AlUla | 0:44 |
| 8 | Marco Frigo | Israel-Premier Tech | 0:47 |
| 9 | Michael Hepburn | Team Jayco AlUla | 0:50 |
| 10 | Xabier Mikel Azparren | Q36.5 Pro Cycling Team | 0:54 |
| 11 | Lorenzo Milesi | Movistar Team | s.t. |
| 12 | Kasper Asgreen | EF Education-EasyPost | 0:59 |
| 13 | Filippo Baroncini | UAE Team Emirates-XRG | 1:00 |
| 14 | Derek Gee | Israel-Premier Tech | s.t. |
| 15 | Max Poole | Team Picnic PostNL | 1:04 |
| 16 | Wout van Aert | Team Visma | Lease a Bike | 1:09 |
| 17 | Primož Roglič | Red Bull-BORA-hansgrohe | 1:15 |
| 18 | Dorian Godon | Decathlon AG2R La Mondiale | 1:16 |
| 19 | Josef Černý | Soudal Quick-Step | 1:24 |
| 20 | Gianmarco Garofoli | Soudal Quick-Step | s.t. |
| 21 | Thymen Arensman | INEOS Grenadiers | 1:28 |
| 22 | Juan Ayuso | UAE Team Emirates-XRG | 1:34 |
| 23 | Simon Yates | Team Visma | Lease a Bike | 1:43 |
| 24 | Dylan Van Baarle | Team Visma | Lease a Bike | 1:47 |
| 25 | Clément Davy | Groupama-FDJ | 1:51 |
| 26 | Antonio Tiberi | Bahrain-Victorious | 1:53 |
| 27 | Damiano Caruso | Bahrain-Victorious | 1:54 |
| 28 | Lorenzo Germani | Groupama-FDJ | s.t. |
| 29 | Enzo Paleni | Groupama-FDJ | 1:58 |
| 30 | Embret Svestad-Bårdseng | Arkéa-B&B Hotels | s.t. |
| 31 | Chris Harper | Team Jayco AlUla | 2:01 |
| 32 | Sven Erik Bystrøm | Groupama-FDJ | 2:10 |
| 33 | Mads Pedersen | Lidl-Trek | s.t. |
| 34 | Louis Meintjes | Intermarché-Wanty | 2:13 |
| 35 | Anthony Perez | Cofidis | 2:20 |
| 36 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | 2:22 |
| 37 | Isaac Del Toro | UAE Team Emirates-XRG | s.t. |
| 38 | Brandon McNulty | UAE Team Emirates-XRG | 2:23 |
| 39 | Mirco Maestri | Team Polti VisitMalta | s.t. |
| 40 | Mark Donovan | Q36.5 Pro Cycling Team | 2:24 |
| 41 | Adam Yates | UAE Team Emirates-XRG | 2:27 |
| 42 | Thomas Pidcock | Q36.5 Pro Cycling Team | 2:28 |
| 43 | Fausto Masnada | XDS Astana Team | s.t. |
| 44 | Davide Piganzoli | Team Polti VisitMalta | 2:29 |
| 45 | Andrea Vendrame | Decathlon AG2R La Mondiale | 2:30 |
| 46 | David Gaudu | Groupama-FDJ | 2:32 |
| 47 | Michael Storer | Tudor Pro Cycling Team | 2:33 |
| 48 | Diego Ulissi | XDS Astana Team | 2:37 |
| 49 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | s.t. |
| 50 | James Knox | Soudal Quick-Step | 2:39 |
| 51 | Mathias Vacek | Lidl-Trek | 2:42 |
| 52 | Dries De Bondt | Decathlon AG2R La Mondiale | 2:43 |
| 53 | Larry Warbasse | Tudor Pro Cycling Team | 2:44 |
| 54 | Daniel Felipe Martínez | Red Bull-BORA-hansgrohe | 2:45 |
| 55 | Stan Dewulf | Decathlon AG2R La Mondiale | s.t. |
| 56 | Alessandro Tonelli | Team Polti VisitMalta | 2:47 |
| 57 | Giulio Ciccone | Lidl-Trek | 2:48 |
| 58 | Einer Rubio | Movistar Team | 2:51 |
| 59 | Richard Carapaz | EF Education-EasyPost | 2:52 |
| 60 | Wilco Kelderman | Team Visma | Lease a Bike | 2:53 |
| 61 | Quentin Pacher | Groupama-FDJ | 2:56 |
| 62 | Romain Bardet | Team Picnic PostNL | s.t. |
| 63 | Jacopo Mosca | Lidl-Trek | s.t. |
| 64 | Egan Bernal | INEOS Grenadiers | 2:58 |
| 65 | Steven Kruijswijk | Team Visma | Lease a Bike | 2:59 |
| 66 | Filippo Zana | Team Jayco AlUla | s.t. |
| 67 | Rémy Rochas | Groupama-FDJ | 3:01 |
| 68 | Francisco Muñoz | Team Polti VisitMalta | 3:06 |
| 69 | Bart Lemmen | Team Visma | Lease a Bike | 3:08 |
| 70 | Nicolas Debeaumarché | Cofidis | 3:09 |
| 71 | Yannis Voisard | Tudor Pro Cycling Team | 3:10 |
| 72 | Stefano Oldani | Cofidis | 3:11 |
| 73 | Jimmy Janssens | Alpecin-Deceuninck | s.t. |
| 74 | Francesco Busatto | Intermarché-Wanty | 3:12 |
| 75 | Fran Miholjević | Bahrain-Victorious | s.t. |
| 76 | Damien Howson | Q36.5 Pro Cycling Team | s.t. |
| 77 | Jonathan Lastra | Cofidis | 3:13 |
| 78 | Alex Edmondson | Team Picnic PostNL | s.t. |
| 79 | Jensen Plowright | Alpecin-Deceuninck | 3:14 |
| 80 | Wout Poels | XDS Astana Team | s.t. |
| 81 | Jan Maas | Cofidis | 3:15 |
| 82 | Martin Tjøtta | Arkéa-B&B Hotels | s.t. |
| 83 | Edoardo Zambanini | Bahrain-Victorious | 3:16 |
| 84 | James Shaw | EF Education-EasyPost | s.t. |
| 85 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 3:17 |
| 86 | Chris Hamilton | Team Picnic PostNL | 3:18 |
| 87 | Gijs Van Hoecke | Intermarché-Wanty | s.t. |
| 88 | Rafał Majka | UAE Team Emirates-XRG | 3:20 |
| 89 | Gianni Moscon | Red Bull-BORA-hansgrohe | 3:21 |
| 90 | Emīls Liepiņš | Q36.5 Pro Cycling Team | 3:23 |
| 91 | Hugo Houle | Israel-Premier Tech | 3:24 |
| 92 | Sam Bennett | Decathlon AG2R La Mondiale | s.t. |
| 93 | Georg Steinhauser | EF Education-EasyPost | s.t. |
| 94 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | 3:25 |
| 95 | Sergio Samitier | Cofidis | 3:26 |
| 96 | Mattia Bais | Team Polti VisitMalta | 3:28 |
| 97 | Maikel Zijlaard | Tudor Pro Cycling Team | 3:30 |
| 98 | Tord Gudmestad | Decathlon AG2R La Mondiale | 3:34 |
| 99 | Davide Formolo | Movistar Team | 3:35 |
| 100 | Lorenzo Fortunato | XDS Astana Team | s.t. |
| 101 | Kim Heiduk | INEOS Grenadiers | 3:36 |
| 102 | Rick Pluimers | Tudor Pro Cycling Team | s.t. |
| 103 | Nicola Conci | XDS Astana Team | 3:40 |
| 104 | Sylvain Moniquet | Cofidis | 3:41 |
| 105 | Simone Petilli | Intermarché-Wanty | 3:42 |
| 106 | Felix Engelhardt | Team Jayco AlUla | s.t. |
| 107 | Milan Fretin | Cofidis | 3:43 |
| 108 | Jakob Fuglsang | Israel-Premier Tech | 3:44 |
| 109 | Timo Kielich | Alpecin-Deceuninck | s.t. |
| 110 | Luca Covili | VF Group-Bardiani CSF-Faizanè | 3:46 |
| 111 | Kevin Geniets | Groupama-FDJ | 3:48 |
| 112 | Alessandro Verre | Arkéa-B&B Hotels | s.t. |
| 113 | Davide De Pretto | Team Jayco AlUla | 3:49 |
| 114 | Igor Arrieta | UAE Team Emirates-XRG | 3:50 |
| 115 | Luke Lamperti | Soudal Quick-Step | s.t. |
| 116 | Jan Tratnik | Red Bull-BORA-hansgrohe | 3:51 |
| 117 | Florian Stork | Tudor Pro Cycling Team | s.t. |
| 118 | Davide Bais | Team Polti VisitMalta | 3:52 |
| 119 | Corbin Strong | Israel-Premier Tech | 3:55 |
| 120 | Orluis Aular | Movistar Team | s.t. |
| 121 | Andrea Pietrobon | Team Polti VisitMalta | s.t. |
| 122 | Giovanni Lonardi | Team Polti VisitMalta | 3:56 |
| 123 | Nico Denz | Red Bull-BORA-hansgrohe | 4:00 |
| 124 | Kaden Groves | Alpecin-Deceuninck | s.t. |
| 125 | Casper Van Uden | Team Picnic PostNL | 4:01 |
| 126 | Jon Barrenetxea | Movistar Team | s.t. |
| 127 | Simon Clarke | Israel-Premier Tech | 4:02 |
| 128 | Nairo Quintana | Movistar Team | 4:03 |
| 129 | Max Kanter | XDS Astana Team | 4:04 |
| 130 | Giosuè Epis | Arkéa-B&B Hotels | s.t. |
| 131 | Carlos Verona | Lidl-Trek | 4:05 |
| 132 | Lucas Hamilton | INEOS Grenadiers | 4:06 |
| 133 | Owain Doull | EF Education-EasyPost | 4:08 |
| 134 | Alessio Martinelli | VF Group-Bardiani CSF-Faizanè | 4:09 |
| 135 | Matevž Govekar | Bahrain-Victorious | 4:10 |
| 136 | Pello Bilbao | Bahrain-Victorious | 4:11 |
| 137 | Ben Turner | INEOS Grenadiers | 4:13 |
| 138 | Quinten Hermans | Alpecin-Deceuninck | s.t. |
| 139 | Laurens Huys | Arkéa-B&B Hotels | s.t. |
| 140 | Anton Kuzmin | XDS Astana Team | 4:15 |
| 141 | Paul Magnier | Soudal Quick-Step | s.t. |
| 142 | Edward Planckaert | Alpecin-Deceuninck | s.t. |
| 143 | Milan Vader | Q36.5 Pro Cycling Team | 4:16 |
| 144 | Luca Mozzato | Arkéa-B&B Hotels | 4:19 |
| 145 | Patrick Konrad | Lidl-Trek | 4:20 |
| 146 | Paul Double | Team Jayco AlUla | 4:21 |
| 147 | Gijs Leemreize | Team Picnic PostNL | 4:22 |
| 148 | Niklas Märkl | Team Picnic PostNL | 4:26 |
| 149 | Olav Kooij | Team Visma | Lease a Bike | 4:32 |
| 150 | Afonso Eulálio | Bahrain-Victorious | 4:36 |
| 151 | Christian Scaroni | XDS Astana Team | 4:37 |
| 152 | Nick Schultz | Israel-Premier Tech | 4:38 |
| 153 | Gerben Thijssen | Intermarché-Wanty | s.t. |
| 154 | Taco Van Der Hoorn | Intermarché-Wanty | 4:40 |
| 155 | Darren Rafferty | EF Education-EasyPost | 4:44 |
| 156 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | 4:50 |
| 157 | Matteo Moschetti | Q36.5 Pro Cycling Team | 4:51 |
| 158 | Jefferson Alveiro Cepeda | Movistar Team | s.t. |
| 159 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 4:54 |
| 160 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | 4:55 |
| 161 | Jonathan Castroviejo | INEOS Grenadiers | 4:56 |
| 162 | Simon Guglielmi | Arkéa-B&B Hotels | 5:01 |
| 163 | Manuele Tarozzi | VF Group-Bardiani CSF-Faizanè | 5:11 |
| 164 | Kevin Colleoni | Intermarché-Wanty | 5:15 |
| 165 | Smith Rivera Brandon | INEOS Grenadiers | 5:17 |
| 166 | Alexander Krieger | Tudor Pro Cycling Team | 5:19 |
| 167 | Albert Torres | Movistar Team | 5:34 |
| 168 | Fabio Van Den Bossche | Alpecin-Deceuninck | 5:48 |
| 169 | Jefferson Alexander Cepeda | EF Education-EasyPost | 5:51 |
| 170 | Mikkel Frølich Honoré | EF Education-EasyPost | 6:07 |
| 171 | Marco Brenner | Tudor Pro Cycling Team | 6:13 |
GC after stage 10:
1,475.3 kilometers raced so far at an average speed of 43.146 km/hr
| 1 | Isaac Del Toro | UAE Team Emirates-XRG | 34hr 11min 37sec |
| 2 | Juan Ayuso | UAE Team Emirates-XRG | @ 25sec |
| 3 | Antonio Tiberi | Bahrain-Victorious | 1:01 |
| 4 | Simon Yates | Team Visma | Lease a Bike | 1:03 |
| 5 | Primož Roglič | Red Bull-BORA-hansgrohe | 1:18 |
| 6 | Brandon McNulty | UAE Team Emirates-XRG | 2:00 |
| 7 | Adam Yates | UAE Team Emirates-XRG | 2:06 |
| 8 | Giulio Ciccone | Lidl-Trek | 2:07 |
| 9 | Richard Carapaz | EF Education-EasyPost | 2:10 |
| 10 | Thymen Arensman | INEOS Grenadiers | 2:27 |
| 11 | Egan Bernal | INEOS Grenadiers | 2:33 |
| 12 | Derek Gee | Israel-Premier Tech | 2:37 |
| 13 | Damiano Caruso | Bahrain-Victorious | 2:38 |
| 14 | Michael Storer | Tudor Pro Cycling Team | 3:14 |
| 15 | Chris Harper | Team Jayco AlUla | 3:18 |
| 16 | Thomas Pidcock | Q36.5 Pro Cycling Team | 3:41 |
| 17 | Mathias Vacek | Lidl-Trek | 3:43 |
| 18 | Giulio Pellizzari | Red Bull-BORA-hansgrohe | s.t. |
| 19 | Davide Piganzoli | Team Polti VisitMalta | 3:53 |
| 20 | Einer Rubio | Movistar Team | 4:03 |
| 21 | Max Poole | Team Picnic PostNL | 4:17 |
| 22 | Diego Ulissi | XDS Astana Team | 5:11 |
| 23 | Nicolas Prodhomme | Decathlon AG2R La Mondiale | 6:03 |
| 24 | Lorenzo Fortunato | XDS Astana Team | 6:21 |
| 25 | James Knox | Soudal Quick-Step | 6:35 |
| 26 | David Gaudu | Groupama-FDJ | 7:06 |
| 27 | Louis Meintjes | Intermarché-Wanty | 8:37 |
| 28 | Rafał Majka | UAE Team Emirates-XRG | 9:10 |
| 29 | Nairo Quintana | Movistar Team | 9:38 |
| 30 | Kevin Geniets | Groupama-FDJ | 10:30 |
| 31 | Martin Tjøtta | Arkéa-B&B Hotels | 10:39 |
| 32 | Embret Svestad-Bårdseng | Arkéa-B&B Hotels | 10:47 |
| 33 | Edoardo Zambanini | Bahrain-Victorious | 14:28 |
| 34 | Mattia Cattaneo | Soudal Quick-Step | 16:52 |
| 35 | Marco Frigo | Israel-Premier Tech | 18:00 |
| 36 | Florian Stork | Tudor Pro Cycling Team | 18:40 |
| 37 | Andrea Vendrame | Decathlon AG2R La Mondiale | 18:47 |
| 38 | Wout Poels | XDS Astana Team | 20:23 |
| 39 | Igor Arrieta | UAE Team Emirates-XRG | 21:26 |
| 40 | James Shaw | EF Education-EasyPost | 22:00 |
| 41 | Chris Hamilton | Team Picnic PostNL | 23:54 |
| 42 | Brandon Smith Rivera | INEOS Grenadiers | 24:08 |
| 43 | Luca Covili | VF Group-Bardiani CSF-Faizanè | 24:09 |
| 44 | Nicola Conci | XDS Astana Team | 24:36 |
| 45 | Yannis Voisard | Tudor Pro Cycling Team | 24:40 |
| 46 | Jefferson Alexander Cepeda | EF Education-EasyPost | 25:03 |
| 47 | Mark Donovan | Q36.5 Pro Cycling Team | 27:01 |
| 48 | Rémy Rochas | Groupama-FDJ | 27:15 |
| 49 | Wilco Kelderman | Team Visma | Lease a Bike | 27:27 |
| 50 | Romain Bardet | Team Picnic PostNL | 27:52 |
| 51 | Sergio Samitier | Cofidis | 28:24 |
| 52 | Patrick Konrad | Lidl-Trek | 28:25 |
| 53 | Jefferson Alveiro Cepeda | Movistar Team | 28:56 |
| 54 | Damien Howson | Q36.5 Pro Cycling Team | 30:00 |
| 55 | Jonathan Lastra | Cofidis | 30:28 |
| 56 | Filippo Zana | Team Jayco AlUla | 33:23 |
| 57 | Fausto Masnada | XDS Astana Team | 33:41 |
| 58 | Larry Warbasse | Tudor Pro Cycling Team | 34:19 |
| 59 | Alessandro Tonelli | Team Polti VisitMalta | 34:45 |
| 60 | Davide Formolo | Movistar Team | 34:51 |
| 61 | Pello Bilbao | Bahrain-Victorious | 34:56 |
| 62 | Steven Kruijswijk | Team Visma | Lease a Bike | 35:11 |
| 63 | Daniel Felipe Martínez | Red Bull-BORA-hansgrohe | 37:53 |
| 64 | Gianmarco Garofoli | Soudal Quick-Step | 38:52 |
| 65 | Jakob Fuglsang | Israel-Premier Tech | 39:15 |
| 66 | Lorenzo Germani | Groupama-FDJ | 39:49 |
| 67 | Corbin Strong | Israel-Premier Tech | 42:38 |
| 68 | Quentin Pacher | Groupama-FDJ | 45:24 |
| 69 | Giovanni Aleotti | Red Bull-BORA-hansgrohe | 45:35 |
| 70 | Felix Engelhardt | Team Jayco AlUla | 45:41 |
| 71 | Quinten Hermans | Alpecin-Deceuninck | 45:55 |
| 72 | Martin Marcellusi | VF Group-Bardiani CSF-Faizanè | 46:15 |
| 73 | Stefano Oldani | Cofidis | 47:05 |
| 74 | Mattia Bais | Team Polti VisitMalta | 47:32 |
| 75 | Carlos Verona | Lidl-Trek | 47:38 |
| 76 | Jonathan Castroviejo | INEOS Grenadiers | 48:28 |
| 77 | Simone Petilli | Intermarché-Wanty | 49:28 |
| 78 | Alessio Martinelli | VF Group-Bardiani CSF-Faizanè | 49:46 |
| 79 | Bart Lemmen | Team Visma | Lease a Bike | 50:37 |
| 80 | Manuele Tarozzi | VF Group-Bardiani CSF-Faizanè | 50:45 |
| 81 | Milan Vader | Q36.5 Pro Cycling Team | 51:19 |
| 82 | Fabio Van Den Bossche | Alpecin-Deceuninck | 51:32 |
| 83 | Dorian Godon | Decathlon AG2R La Mondiale | 51:47 |
| 84 | Davide De Pretto | Team Jayco AlUla | 51:50 |
| 85 | Hugo Houle | Israel-Premier Tech | 52:03 |
| 86 | Mads Pedersen | Lidl-Trek | 53:04 |
| 87 | Christian Scaroni | XDS Astana Team | 53:53 |
| 88 | Darren Rafferty | EF Education-EasyPost | 53:54 |
| 89 | Jay Vine | UAE Team Emirates-XRG | 55:03 |
| 90 | Joshua Tarling | INEOS Grenadiers | 55:24 |
| 91 | Gijs Leemreize | Team Picnic PostNL | s.t. |
| 92 | Filippo Fiorelli | VF Group-Bardiani CSF-Faizanè | 56:09 |
| 93 | Jan Tratnik | Red Bull-BORA-hansgrohe | 56:26 |
| 94 | Wout van Aert | Team Visma | Lease a Bike | 56:49 |
| 95 | Davide Bais | Team Polti VisitMalta | 57:47 |
| 96 | Afonso Eulálio | Bahrain-Victorious | 58:03 |
| 97 | Filippo Baroncini | UAE Team Emirates-XRG | 58:22 |
| 98 | Francesco Busatto | Intermarché-Wanty | 59:48 |
| 99 | Paul Double | Team Jayco AlUla | 1:00:52 |
| 100 | Mirco Maestri | Team Polti VisitMalta | 1:01:25 |
| 101 | Mikkel Frølich Honoré | EF Education-EasyPost | 1:01:34 |
| 102 | Edward Planckaert | Alpecin-Deceuninck | 1:01:49 |
| 103 | Luke Plapp | Team Jayco AlUla | 1:02:21 |
| 104 | Georg Steinhauser | EF Education-EasyPost | 1:05:20 |
| 105 | Dylan Van Baarle | Team Visma | Lease a Bike | 1:05:43 |
| 106 | Lorenzo Milesi | Movistar Team | 1:06:19 |
| 107 | Owain Doull | EF Education-EasyPost | 1:07:51 |
| 108 | Simon Guglielmi | Arkéa-B&B Hotels | 1:08:30 |
| 109 | Lucas Hamilton | INEOS Grenadiers | 1:09:01 |
| 110 | Rick Pluimers | Tudor Pro Cycling Team | 1:09:38 |
| 111 | Alessandro Verre | Arkéa-B&B Hotels | 1:10:41 |
| 112 | Timo Kielich | Alpecin-Deceuninck | 1:10:51 |
| 113 | Kasper Asgreen | EF Education-EasyPost | 1:11:08 |
| 114 | Kaden Groves | Alpecin-Deceuninck | 1:12:05 |
| 115 | Filippo Magli | VF Group-Bardiani CSF-Faizanè | 1:12:21 |
| 116 | Ben Turner | INEOS Grenadiers | 1:13:00 |
| 117 | Nick Schultz | Israel-Premier Tech | 1:13:03 |
| 118 | Kevin Colleoni | Intermarché-Wanty | 1:17:29 |
| 119 | Marco Brenner | Tudor Pro Cycling Team | 1:17:54 |
| 120 | Jon Barrenetxea | Movistar Team | 1:19:57 |
| 121 | Enzo Paleni | Groupama-FDJ | 1:20:01 |
| 122 | Anthony Perez | Cofidis | 1:20:23 |
| 123 | Jacopo Mosca | Lidl-Trek | 1:20:32 |
| 124 | Sylvain Moniquet | Cofidis | 1:22:15 |
| 125 | Daan Hoole | Lidl-Trek | 1:23:47 |
| 126 | Simon Clarke | Israel-Premier Tech | 1:23:48 |
| 127 | Fran Miholjević | Bahrain-Victorious | 1:23:57 |
| 128 | Max Kanter | XDS Astana Team | 1:24:44 |
| 129 | Nico Denz | Red Bull-BORA-hansgrohe | 1:27:35 |
| 130 | Sven Erik Bystrøm | Groupama-FDJ | 1:27:53 |
| 131 | Stan Dewulf | Decathlon AG2R La Mondiale | 1:29:21 |
| 132 | Orluis Aular | Movistar Team | 1:30:39 |
| 133 | Edoardo Affini | Team Visma | Lease a Bike | 1:34:23 |
| 134 | Xabier Mikel Azparren | Q36.5 Pro Cycling Team | 1:36:41 |
| 135 | Albert Torres | Movistar Team | 1:37:29 |
| 136 | Giosuè Epis | Arkéa-B&B Hotels | 1:37:34 |
| 137 | Milan Fretin | Cofidis | s.t. |
| 138 | Josef Černý | Soudal Quick-Step | 1:38:09 |
| 139 | Tord Gudmestad | Decathlon AG2R La Mondiale | 1:38:21 |
| 140 | Emīls Liepiņš | Q36.5 Pro Cycling Team | 1:39:04 |
| 141 | Laurens Huys | Arkéa-B&B Hotels | 1:41:28 |
| 142 | Kim Heiduk | INEOS Grenadiers | 1:41:51 |
| 143 | Giovanni Lonardi | Team Polti VisitMalta | 1:41:57 |
| 144 | Gianni Moscon | Red Bull-BORA-hansgrohe | 1:42:03 |
| 145 | Andrea Pietrobon | Team Polti VisitMalta | 1:42:16 |
| 146 | Ethan Hayter | Soudal Quick-Step | 1:42:26 |
| 147 | Sam Bennett | Decathlon AG2R La Mondiale | 1:43:21 |
| 148 | Luca Mozzato | Arkéa-B&B Hotels | 1:43:57 |
| 149 | Luke Lamperti | Soudal Quick-Step | 1:45:16 |
| 150 | Matevž Govekar | Bahrain-Victorious | 1:45:20 |
| 151 | Alex Edmondson | Team Picnic PostNL | 1:45:30 |
| 152 | Jan Maas | Cofidis | 1:46:09 |
| 153 | Dries De Bondt | Decathlon AG2R La Mondiale | 1:46:25 |
| 154 | Paul Magnier | Soudal Quick-Step | 1:47:04 |
| 155 | Jimmy Janssens | Alpecin-Deceuninck | 1:47:12 |
| 156 | Nicolas Debeaumarché | Cofidis | 1:47:28 |
| 157 | Casper Van Uden | Team Picnic PostNL | 1:47:50 |
| 158 | Francisco Muñoz | Team Polti VisitMalta | 1:47:56 |
| 159 | Anton Kuzmin | XDS Astana Team | 1:48:32 |
| 160 | Clément Davy | Groupama-FDJ | 1:48:34 |
| 161 | Olav Kooij | Team Visma | Lease a Bike | 1:49:45 |
| 162 | Taco Van Der Hoorn | Intermarché-Wanty | 1:49:50 |
| 163 | Michael Hepburn | Team Jayco AlUla | 1:50:00 |
| 164 | Matteo Moschetti | Q36.5 Pro Cycling Team | 1:54:26 |
| 165 | Maikel Zijlaard | Tudor Pro Cycling Team | 1:56:25 |
| 166 | Gijs Van Hoecke | Intermarché-Wanty | 2:02:02 |
| 167 | Enrico Zanoncello | VF Group-Bardiani CSF-Faizanè | 2:02:05 |
| 168 | Gerben Thijssen | Intermarché-Wanty | 2:04:20 |
| 169 | Jensen Plowright | Alpecin-Deceuninck | 2:06:50 |
| 170 | Niklas Märkl | Team Picnic PostNL | 2:08:00 |
| 171 | Alexander Krieger | Tudor Pro Cycling Team | 2:23:51 |
Stage 10 map & profile:

Stage 10 map

Stage 10 profile
Stage 10 photos by Fotoreporter Sirotti:

The scene at the finish, Pisa's Piazza Dei Miracoli

GC ninth place Richard Carapaz

GC eighth place Giulio Ciccone

American time-trial champion Brandon McNulty is sitting in 6th place in the GC.

GC fifth place Primoz Roglic

GC third place Antonio Tiberi

GC leader Isaac Del Toro just after finishing his ride. He still has the GC lead, 25 seconds ahead of Juan Ayuso
.
Stage winner Daan Hoole

Mads Pedersen remains the points classification leader.

Isaac Del Toro will start stage 11 in pink.