| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Guillaume Martin-guyonnet | Groupama-FDJ | 04:29:45 | |
| 2 | Clément Berthet | Decathlon AG2R La Mondiale Team | + 00 | |
| 3 | Manuel Diaz Jose | Burgos Burpellet BH | + 18 | + 18 |
| 4 | Cristian Rodriguez | ARKEA-B&B HOTELS | + 18 | + 18 |
| 5 | Emanuel Buchmann | Cofidis | + 21 | + 21 |
| 6 | Jordan Jegat | Team TotalEnergies | + 23 | + 23 |
| 7 | Christian Eiking Odd | Unibet Tietema Rockets | + 26 | + 26 |
| 8 | Nicolas Breuillard | St Michel-Preference Home-Auber 93 | + 30 | + 30 |
| 9 | Unai Iribar | Equipo Kern Pharma | + 34 | + 34 |
| 10 | Jørgen Nordhagen | Team Visma | Lease a Bike | + 34 | + 34 |
| 11 | Johannes Kulset | Uno-X Mobility | + 50 | + 50 |
| 12 | Clément Braz Afonso | Groupama-FDJ | + 50 | + 50 |
| 13 | Sylvain Moniquet | Cofidis | + 50 | + 50 |
| 14 | Floris de Tier | Wagner Bazin WB | + 50 | + 50 |
| 15 | Jorge Gutiérrez | Equipo Kern Pharma | + 59 | + 59 |
| 16 | Louis Rouland | ARKEA-B&B HOTELS | + 01:03 | + 01:03 |
| 17 | Ander Okamika | Burgos Burpellet BH | + 01:09 | + 01:09 |
| 18 | Ivan Sosa | Equipo Kern Pharma | + 01:29 | + 01:29 |
| 19 | Anton Schiffer | BIKE AID | + 01:33 | + 01:33 |
| 20 | Jon Agirre | Euskaltel-Euskadi | + 01:54 | + 01:54 |
| 21 | Txomin Juaristi | Euskaltel-Euskadi | + 02:31 | + 02:31 |
| 22 | Yaël Joalland | CIC U Nantes | + 02:33 | + 02:33 |
| 23 | Théo Delacroix | St Michel-Preference Home-Auber 93 | + 02:36 | + 02:36 |
| 24 | Joan Bou | Caja Rural-Seguros RGA | + 02:46 | + 02:46 |
| 25 | Luis Faura José | Burgos Burpellet BH | + 02:48 | + 02:48 |
| 26 | Mikel Bizkarra | Euskaltel-Euskadi | + 02:51 | + 02:51 |
| 27 | Baptiste Huyet | Unibet Tietema Rockets | + 02:54 | + 02:54 |
| 28 | Tijmen Graat | Team Visma | Lease a Bike | + 02:59 | + 02:59 |
| 29 | Carlos Garcia | Burgos Burpellet BH | + 03:07 | + 03:07 |
| 30 | Nans Peters | Decathlon AG2R La Mondiale Team | + 03:37 | + 03:37 |
| 31 | Joris Chaussinand | CIC U Nantes | + 03:50 | + 03:50 |
| 32 | Joris Delbove | Team TotalEnergies | + 04:05 | + 04:05 |
| 33 | Rémi Capron | Van Rysel-Roubaix | + 04:18 | + 04:18 |
| 34 | Dawit Yemane | BIKE AID | + 04:23 | + 04:23 |
| 35 | Alex Diaz | Caja Rural-Seguros RGA | + 04:23 | + 04:23 |
| 36 | Rudy Molard | Groupama-FDJ | + 05:32 | + 05:32 |
| 37 | Marton Dina | Euskaltel-Euskadi | + 05:50 | + 05:50 |
| 38 | Brieuc Rolland | Groupama-FDJ | + 06:09 | + 06:09 |
| 39 | Abel Balderstone | Caja Rural-Seguros RGA | + 06:27 | + 06:27 |
| 40 | Jesus Herrada | Cofidis | + 06:31 | + 06:31 |
| 41 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | + 07:18 | + 07:18 |
| 42 | Julen Arriola-bengoa | Caja Rural-Seguros RGA | + 07:27 | + 07:27 |
| 43 | Edward Ravasi | Hrinkow Advarics | + 07:28 | + 07:28 |
| 44 | Sebastian Berwick | Caja Rural-Seguros RGA | + 08:20 | + 08:20 |
| 45 | Kenny Molly | Van Rysel-Roubaix | + 08:34 | + 08:34 |
| 46 | Fabien Doubey | Team TotalEnergies | + 09:02 | + 09:02 |
| 47 | Tim Rex | Team Visma | Lease a Bike | + 10:02 | + 10:02 |
| 48 | Menno Huising | Team Visma | Lease a Bike | + 10:02 | + 10:02 |
| 49 | Simon Dalby | Uno-X Mobility | + 10:02 | + 10:02 |
| 50 | Halland Johannessen Anders | Uno-X Mobility | + 10:02 | + 10:02 |
| 51 | Owen Geleijn | Unibet Tietema Rockets | + 10:50 | + 10:50 |
| 52 | Fabien Grellier | Team TotalEnergies | + 11:12 | + 11:12 |
| 53 | Alan Jousseaume | Team TotalEnergies | + 11:23 | + 11:23 |
| 54 | Adrien Maire | Unibet Tietema Rockets | + 11:25 | + 11:25 |
| 55 | Victor Papon | Wagner Bazin WB | + 11:43 | + 11:43 |
| 56 | Raúl García | ARKEA-B&B HOTELS | + 13:11 | + 13:11 |
| 57 | Maxime Jarnet | Van Rysel-Roubaix | + 13:24 | + 13:24 |
| 58 | Louic Boussemaere | Decathlon AG2R La Mondiale Team | + 14:47 | + 14:47 |
| 59 | Cian Uijtdebroeks | Team Visma | Lease a Bike | + 14:47 | + 14:47 |
| 60 | Jaakko Hänninen | Nice Métropole Côte d'Azur | + 14:47 | + 14:47 |
| 61 | Lenaic Langella | CIC U Nantes | + 14:47 | + 14:47 |
| 62 | David Delgado | Burgos Burpellet BH | + 14:47 | + 14:47 |
| 63 | Paul Thierry | ARKEA-B&B HOTELS | + 16:31 | + 16:31 |
| 64 | Andrin Züger | MYVELO Pro Cycling Team | + 17:00 | + 17:00 |
| 65 | Yohann Simon | St Michel-Preference Home-Auber 93 | + 18:23 | + 18:23 |
| 66 | Ibai Azanza | Equipo Kern Pharma | + 18:23 | + 18:23 |
| 67 | Magnus Cort | Uno-X Mobility | + 18:50 | + 18:50 |
| 68 | Zeb Kyffin | Unibet Tietema Rockets | + 19:34 | + 19:34 |
| 69 | Antoine Berlin | BIKE AID | + 19:34 | + 19:34 |
| 70 | Jocelyn Baguelin | Wagner Bazin WB | + 19:34 | + 19:34 |
| 71 | Kind Høydahl Jonas | Team Visma | Lease a Bike | + 19:34 | + 19:34 |
| 72 | Jean-loup Fayolle | ARKEA-B&B HOTELS | + 19:39 | + 19:39 |
| 73 | Magnus Kulset | Uno-X Mobility | + 19:48 | + 19:48 |
| 74 | Hugo Toumire | Cofidis | + 19:48 | + 19:48 |
| 75 | Pablo Carrascosa | Equipo Kern Pharma | + 19:49 | + 19:49 |
| 76 | Rodrigo Álvarez | Burgos Burpellet BH | + 19:49 | + 19:49 |
| 77 | Jokin Murguialday | Euskaltel-Euskadi | + 19:49 | + 19:49 |
| 78 | Timon Loderer | MYVELO Pro Cycling Team | + 19:53 | + 19:53 |
| 79 | Quentin Bezza | Wagner Bazin WB | + 19:53 | + 19:53 |
| 80 | Loïc Bettendorff | Hrinkow Advarics | + 19:57 | + 19:57 |
| 81 | Maximilien Juillard | Van Rysel-Roubaix | + 20:04 | + 20:04 |
| 82 | Louis Chaleil | Decathlon AG2R La Mondiale Team | + 21:09 | + 21:09 |
| 83 | Morne van Niekerk | St Michel-Preference Home-Auber 93 | + 21:09 | + 21:09 |
| 84 | Geoffrey Soupe | Team TotalEnergies | + 21:09 | + 21:09 |