| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Mattéo Vercher | Team TotalEnergies | 03:46:03 | |
| 2 | Adrien Maire | Unibet Tietema Rockets | + 00 | |
| 3 | Ivan Cobo | Equipo Kern Pharma | + 00 | |
| 4 | Clément Braz Afonso | Groupama-FDJ | + 00 | |
| 5 | Johannes Kulset | Uno-X Mobility | + 02 | + 02 |
| 6 | Guillaume Martin-guyonnet | Groupama-FDJ | + 02 | + 02 |
| 7 | Txomin Juaristi | Euskaltel-Euskadi | + 10 | + 10 |
| 8 | Gotzon Martín | Euskaltel-Euskadi | + 20 | + 20 |
| 9 | Clément Venturini | ARKEA-B&B HOTELS | + 20 | + 20 |
| 10 | Magnus Cort | Uno-X Mobility | + 20 | + 20 |
| 11 | Fernando Barceló | Caja Rural-Seguros RGA | + 20 | + 20 |
| 12 | Joel Nicolau | Caja Rural-Seguros RGA | + 20 | + 20 |
| 13 | Sylvain Moniquet | Cofidis | + 20 | + 20 |
| 14 | Johan Meens | Wagner Bazin WB | + 20 | + 20 |
| 15 | Rémi Capron | Van Rysel-Roubaix | + 20 | + 20 |
| 16 | Nicolas Breuillard | St Michel-Preference Home-Auber 93 | + 20 | + 20 |
| 17 | Iker Mintegi | Euskaltel-Euskadi | + 20 | + 20 |
| 18 | Nans Peters | Decathlon AG2R La Mondiale Team | + 20 | + 20 |
| 19 | Axel Mariault | CIC U Nantes | + 20 | + 20 |
| 20 | Manuel Diaz Jose | Burgos Burpellet BH | + 20 | + 20 |
| 21 | Jesus Herrada | Cofidis | + 20 | + 20 |
| 22 | Cian Uijtdebroeks | Team Visma | Lease a Bike | + 20 | + 20 |
| 23 | Ibon Ruiz | Equipo Kern Pharma | + 20 | + 20 |
| 24 | Brieuc Rolland | Groupama-FDJ | + 20 | + 20 |
| 25 | Yaël Joalland | CIC U Nantes | + 20 | + 20 |
| 26 | Carlos Garcia | Burgos Burpellet BH | + 20 | + 20 |
| 27 | Joris Delbove | Team TotalEnergies | + 20 | + 20 |
| 28 | Emanuel Buchmann | Cofidis | + 33 | + 33 |
| 29 | Raúl García | ARKEA-B&B HOTELS | + 49 | + 49 |
| 30 | Giacomo Ballabio | Hrinkow Advarics | + 01:42 | + 01:42 |
| 31 | Clément Alleno | Burgos Burpellet BH | + 01:47 | + 01:47 |
| 32 | Kind Høydahl Jonas | Team Visma | Lease a Bike | + 01:47 | + 01:47 |
| 33 | Koller Løland Sakarias | Uno-X Mobility | + 01:47 | + 01:47 |
| 34 | Baptiste Huyet | Unibet Tietema Rockets | + 01:47 | + 01:47 |
| 35 | Alex Diaz | Caja Rural-Seguros RGA | + 01:54 | + 01:54 |
| 36 | Benjamin Thomas | Cofidis | + 02:36 | + 02:36 |
| 37 | Menno Huising | Team Visma | Lease a Bike | + 03:20 | + 03:20 |
| 38 | Maxime Jarnet | Van Rysel-Roubaix | + 03:22 | + 03:22 |
| 39 | Julen Arriola-bengoa | Caja Rural-Seguros RGA | + 04:07 | + 04:07 |
| 40 | Nils Brun | MYVELO Pro Cycling Team | + 05:38 | + 05:38 |
| 41 | Zeb Kyffin | Unibet Tietema Rockets | + 05:38 | + 05:38 |
| 42 | Joan Bou | Caja Rural-Seguros RGA | + 05:43 | + 05:43 |
| 43 | Fabien Doubey | Team TotalEnergies | + 05:43 | + 05:43 |
| 44 | Ander Okamika | Burgos Burpellet BH | + 05:44 | + 05:44 |
| 45 | Pablo Carrascosa | Equipo Kern Pharma | + 05:44 | + 05:44 |
| 46 | Jorge Gutiérrez | Equipo Kern Pharma | + 05:44 | + 05:44 |
| 47 | Elie Gesbert | ARKEA-B&B HOTELS | + 05:44 | + 05:44 |
| 48 | Tim Rex | Team Visma | Lease a Bike | + 08:04 | + 08:04 |
| 49 | Théo Delacroix | St Michel-Preference Home-Auber 93 | + 08:04 | + 08:04 |
| 50 | Lucas Bénéteau | St Michel-Preference Home-Auber 93 | + 08:04 | + 08:04 |
| 51 | Loe van Belle | Team Visma | Lease a Bike | + 08:38 | + 08:38 |
| 52 | Paul Thierry | ARKEA-B&B HOTELS | + 08:38 | + 08:38 |
| 53 | Calum Johnston | Caja Rural-Seguros RGA | + 08:38 | + 08:38 |
| 54 | Kasper Haugland | Decathlon AG2R La Mondiale Team | + 08:38 | + 08:38 |
| 55 | Jean-loup Fayolle | ARKEA-B&B HOTELS | + 08:38 | + 08:38 |
| 56 | Luis Faura José | Burgos Burpellet BH | + 08:41 | + 08:41 |
| 57 | Antoine Berlin | BIKE AID | + 08:41 | + 08:41 |
| 58 | Christian Eiking Odd | Unibet Tietema Rockets | + 08:43 | + 08:43 |
| 59 | Nicolas Debeaumarché | Cofidis | + 08:44 | + 08:44 |
| 60 | Giacomo Villa | Wagner Bazin WB | + 08:44 | + 08:44 |
| 61 | Halland Johannessen Anders | Uno-X Mobility | + 08:59 | + 08:59 |
| 62 | Simon Dalby | Uno-X Mobility | + 08:59 | + 08:59 |
| 63 | Pietro Mattio | Team Visma | Lease a Bike | + 08:59 | + 08:59 |
| 64 | Carter Guichard | Nice Métropole Côte d'Azur | + 10:48 | + 10:48 |
| 65 | Henri-francois Haquin | Wagner Bazin WB | + 10:48 | + 10:48 |
| 66 | Maximilian Kabas | Hrinkow Advarics | + 10:48 | + 10:48 |
| 67 | Lennard Sternsdorff | BIKE AID | + 10:48 | + 10:48 |
| 68 | Lenaic Langella | CIC U Nantes | + 10:48 | + 10:48 |
| 69 | Jan Sommer | MYVELO Pro Cycling Team | + 10:48 | + 10:48 |
| 70 | Xabier Berasategi | Euskaltel-Euskadi | + 10:55 | + 10:55 |
| 71 | Rodrigo Álvarez | Burgos Burpellet BH | + 10:55 | + 10:55 |
| 72 | Owen Geleijn | Unibet Tietema Rockets | + 10:58 | + 10:58 |
| 73 | Tom Portsmouth | Wagner Bazin WB | + 13:24 | + 13:24 |
| 74 | Geoffrey Soupe | Team TotalEnergies | + 15:02 | + 15:02 |
| 75 | Pierre Latour | Team TotalEnergies | + 15:02 | + 15:02 |
| 76 | Jakob Schmidt | MYVELO Pro Cycling Team | + 15:02 | + 15:02 |
| 77 | Jaakko Hänninen | Nice Métropole Côte d'Azur | + 15:02 | + 15:02 |
| 78 | Oscar Nilsson-julien | Groupama-FDJ | + 15:02 | + 15:02 |
| 79 | Christoph Janssen | MYVELO Pro Cycling Team | + 15:02 | + 15:02 |
| 80 | Corentin Devroute | CIC U Nantes | + 15:02 | + 15:02 |
| 81 | Jocelyn Baguelin | Wagner Bazin WB | + 15:02 | + 15:02 |
| 82 | Yohann Simon | St Michel-Preference Home-Auber 93 | + 15:02 | + 15:02 |
| 83 | Edward Ravasi | Hrinkow Advarics | + 15:02 | + 15:02 |
| 84 | Loïc Bettendorff | Hrinkow Advarics | + 15:02 | + 15:02 |
| 85 | Vinzent Dorn | BIKE AID | + 15:02 | + 15:02 |
| 86 | Ibai Azanza | Equipo Kern Pharma | + 15:02 | + 15:02 |
| 87 | Daniel Weis | Decathlon AG2R La Mondiale Team | + 15:02 | + 15:02 |
| 88 | Louis Chaleil | Decathlon AG2R La Mondiale Team | + 15:02 | + 15:02 |
| 89 | Jokin Murguialday | Euskaltel-Euskadi | + 15:02 | + 15:02 |
| 90 | Lasse Reuß | BIKE AID | + 15:02 | + 15:02 |
| 91 | Hugo Toumire | Cofidis | + 15:02 | + 15:02 |
| 92 | Maximilien Juillard | Van Rysel-Roubaix | + 15:02 | + 15:02 |
| 93 | Ivan Sosa | Equipo Kern Pharma | + 15:02 | + 15:02 |
| 94 | Fabien Grellier | Team TotalEnergies | + 15:02 | + 15:02 |
| 95 | Tom Donnenwirth | Groupama-FDJ | + 15:02 | + 15:02 |
| 96 | Killian Théot | Van Rysel-Roubaix | + 15:02 | + 15:02 |