| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Kévin Vauquelin | Team Arkéa-Samsic | 04:23:07 | |
| 2 | Neilson Powless | EF Education-EasyPost | + 05 | + 05 |
| 3 | Kevin Geniets | Groupama-FDJ | + 05 | + 05 |
| 4 | Aurélien Paret-peintre | AG2R Citroën Team | + 09 | + 09 |
| 5 | Bryan Coquard | Cofidis | + 25 | + 25 |
| 6 | Anthony Turgis | TotalEnergies | + 25 | + 25 |
| 7 | Nacer Bouhanni | Team Arkéa-Samsic | + 25 | + 25 |
| 8 | Anthony Perez | Cofidis | + 25 | + 25 |
| 9 | Marco Tizza | Bingoal WB | + 25 | + 25 |
| 10 | Clément Russo | Team Arkéa-Samsic | + 25 | + 25 |
| 11 | Mattias Skjelmose | Lidl-Trek | + 25 | + 25 |
| 12 | Julien Simon | TotalEnergies | + 25 | + 25 |
| 13 | Franck Bonnamour | AG2R Citroën Team | + 25 | + 25 |
| 14 | Romain Bardet | Team dsm-firmenich | + 25 | + 25 |
| 15 | Andrea Piccolo | EF Education-EasyPost | + 25 | + 25 |
| 16 | Jonas Gregaard | Uno-X Pro Cycling Team | + 25 | + 25 |
| 17 | Romain Grégoire | Groupama-FDJ | + 25 | + 25 |
| 18 | Alessandro Fedeli | Q36.5 Pro Cycling Team | + 25 | + 25 |
| 19 | Remy Mertz | Bingoal WB | + 25 | + 25 |
| 20 | Rudy Molard | Groupama-FDJ | + 25 | + 25 |
| 21 | Quentin Pacher | Groupama-FDJ | + 25 | + 25 |
| 22 | Alexis Vuillermoz | TotalEnergies | + 25 | + 25 |
| 23 | James Shaw | EF Education-EasyPost | + 25 | + 25 |
| 24 | Sam Watson | Groupama-FDJ | + 25 | + 25 |
| 25 | Jordan Jegat | CIC U Nantes Atlantique | + 25 | + 25 |
| 26 | Torstein Træen | Uno-X Pro Cycling Team | + 25 | + 25 |
| 27 | Clément Venturini | AG2R Citroën Team | + 25 | + 25 |
| 28 | David Gaudu | Groupama-FDJ | + 25 | + 25 |
| 29 | Mikaël Chérel | AG2R Citroën Team | + 25 | + 25 |
| 30 | Romain Cardis | Saint Michel-Mavic-Auber 93 | + 25 | + 25 |
| 31 | Felix Gall | AG2R Citroën Team | + 25 | + 25 |
| 32 | Julian Mertens | Bingoal WB | + 25 | + 25 |
| 33 | Clément Champoussin | Team Arkéa-Samsic | + 25 | + 25 |
| 34 | Thibaut Pinot | Groupama-FDJ | + 25 | + 25 |
| 35 | Urianstad Bugge Martin | Uno-X Pro Cycling Team | + 25 | + 25 |
| 36 | Thomas Gachignard | Saint Michel-Mavic-Auber 93 | + 25 | + 25 |
| 37 | Thomas Devaux | Saint Michel-Mavic-Auber 93 | + 25 | + 25 |
| 38 | Dimitri Peyskens | Bingoal WB | + 25 | + 25 |
| 39 | Valentin Ferron | TotalEnergies | + 25 | + 25 |
| 40 | Mathias Bregnhøj | Leopard Togt Pro Cycling | + 25 | + 25 |
| 41 | Sandy Dujardin | TotalEnergies | + 25 | + 25 |
| 42 | Kenny Molly | Van Rysel-Roubaix Lille Métropole | + 25 | + 25 |
| 43 | Robin Plamondon | CIC U Nantes Atlantique | + 25 | + 25 |
| 44 | Henri Vandenabeele | Team dsm-firmenich | + 25 | + 25 |
| 45 | Lennert van Eetvelt | Lotto Dstny Development Team | + 25 | + 25 |
| 46 | Hugh Carthy | EF Education-EasyPost | + 25 | + 25 |
| 47 | Martin López | Astana Qazaqstan Development Team | + 25 | + 25 |
| 48 | Toms Skujins | Lidl-Trek | + 25 | + 25 |
| 49 | Victor Lafay | Cofidis | + 25 | + 25 |
| 50 | Julien Bernard | Lidl-Trek | + 25 | + 25 |
| 51 | Kenny Elissonde | Lidl-Trek | + 25 | + 25 |
| 52 | Mathieu Burgaudeau | TotalEnergies | + 25 | + 25 |
| 53 | Andreas Stokbro Nielsen | Leopard Togt Pro Cycling | + 25 | + 25 |
| 54 | Fabien Doubey | TotalEnergies | + 25 | + 25 |
| 55 | Maxime Bouet | Team Arkéa-Samsic | + 25 | + 25 |
| 56 | Florian Stork | Team dsm-firmenich | + 25 | + 25 |
| 57 | Maxime Urruty | Nice Métropole Côte d'Azur | + 25 | + 25 |
| 58 | Benjamin Thomas | Cofidis | + 25 | + 25 |
| 59 | Jonathan Couanon | Nice Métropole Côte d'Azur | + 46 | + 46 |
| 60 | Tobias Ludvigsson | Q36.5 Pro Cycling Team | + 53 | + 53 |
| 61 | Max Poole | Team dsm-firmenich | + 53 | + 53 |
| 62 | Alessandro Verre | Team Arkéa-Samsic | + 53 | + 53 |
| 63 | Alexis Guérin | Bingoal WB | + 01:04 | + 01:04 |
| 64 | Esteban Chaves | EF Education-EasyPost | + 01:07 | + 01:07 |
| 65 | Yaël Joalland | CIC U Nantes Atlantique | + 01:23 | + 01:23 |
| 66 | Alex Kirsch | Lidl-Trek | + 01:29 | + 01:29 |
| 67 | Jarne van de Paar | Lotto Dstny Development Team | + 01:33 | + 01:33 |
| 68 | Flavien Maurelet | Saint Michel-Mavic-Auber 93 | + 01:35 | + 01:35 |
| 69 | Søjberg Pedersen Rasmus | CIC U Nantes Atlantique | + 01:39 | + 01:39 |
| 70 | Maxime Jarnet | Van Rysel-Roubaix Lille Métropole | + 01:39 | + 01:39 |
| 71 | Kamil Malecki | Q36.5 Pro Cycling Team | + 01:39 | + 01:39 |
| 72 | Maximilien Juillard | Van Rysel-Roubaix Lille Métropole | + 01:39 | + 01:39 |
| 73 | Matteo Moschetti | Q36.5 Pro Cycling Team | + 01:39 | + 01:39 |
| 74 | Léo Danès | CIC U Nantes Atlantique | + 01:53 | + 01:53 |
| 75 | Aaron van der Beken | Bingoal WB | + 02:01 | + 02:01 |
| 76 | Lorenzo Milesi | Team dsm-firmenich | + 02:03 | + 02:03 |
| 77 | Pierre Gautherat | AG2R Citroën Team | + 02:03 | + 02:03 |
| 78 | Dario Cataldo | Lidl-Trek | + 02:49 | + 02:49 |
| 79 | Davide Cimolai | Cofidis | + 03:02 | + 03:02 |
| 80 | Piet Allegaert | Cofidis | + 03:02 | + 03:02 |
| 81 | Jean Goubert | Nice Métropole Côte d'Azur | + 03:20 | + 03:20 |
| 82 | Andrey Remkhe | Astana Qazaqstan Development Team | + 03:49 | + 03:49 |
| 83 | Damien Girard | Nice Métropole Côte d'Azur | + 03:58 | + 03:58 |
| 84 | Jonathan Caicedo | EF Education-EasyPost | + 03:59 | + 03:59 |
| 85 | Alec Segaert | Lotto Dstny Development Team | + 04:05 | + 04:05 |
| 86 | Jago Willems | Lotto Dstny Development Team | + 04:05 | + 04:05 |
| 87 | Ramses Debruyne | Lotto Dstny Development Team | + 04:05 | + 04:05 |
| 88 | Nathan Vandepitte | Bingoal WB | + 04:15 | + 04:15 |
| 89 | Donavan Grondin | Team Arkéa-Samsic | + 04:21 | + 04:21 |
| 90 | Morne van Niekerk | Saint Michel-Mavic-Auber 93 | + 04:21 | + 04:21 |
| 91 | Lorenz van de Wynkele | Lotto Dstny Development Team | + 04:21 | + 04:21 |
| 92 | Tristan Delacroix | Nice Métropole Côte d'Azur | + 04:21 | + 04:21 |
| 93 | Alexander Cepeda | EF Education-EasyPost | + 04:21 | + 04:21 |
| 94 | Joshua Giddings | Lotto Dstny Development Team | + 04:21 | + 04:21 |
| 95 | Emil Vinjebo | Leopard Togt Pro Cycling | + 05:07 | + 05:07 |
| 96 | Marco Brenner | Team dsm-firmenich | + 05:15 | + 05:15 |
| 97 | Andrey Zeits | Astana Qazaqstan Development Team | + 06:30 | + 06:30 |
| 98 | Bastien Tronchon | AG2R Citroën Team | + 07:02 | + 07:02 |
| 99 | Florian Rapiteau | Saint Michel-Mavic-Auber 93 | + 07:02 | + 07:02 |
| 100 | Jean-louis Le Ny | Nice Métropole Côte d'Azur | + 07:02 | + 07:02 |
| 101 | Leon Heinschke | Team dsm-firmenich | + 07:10 | + 07:10 |
| 102 | Tom Mainguenaud | Van Rysel-Roubaix Lille Métropole | + 07:10 | + 07:10 |
| 103 | Jonas Abrahamsen | Uno-X Pro Cycling Team | + 07:47 | + 07:47 |
| 104 | Jacob Hindsgaul Madsen | Uno-X Pro Cycling Team | + 07:47 | + 07:47 |
| 105 | Cedric Pries | Leopard Togt Pro Cycling | + 08:22 | + 08:22 |
| 106 | Maël Guégan | CIC U Nantes Atlantique | + 08:28 | + 08:28 |
| 107 | Samuel Leroux | Van Rysel-Roubaix Lille Métropole | + 08:33 | + 08:33 |
| 108 | Ådne Holter | Uno-X Pro Cycling Team | + 08:38 | + 08:38 |
| 109 | Yevgeniy Gidich | Astana Qazaqstan Development Team | + 09:53 | + 09:53 |
| 110 | Idar Andersen | Uno-X Pro Cycling Team | + 09:55 | + 09:55 |
| 111 | Mads Østergaard | Leopard Togt Pro Cycling | + 10:43 | + 10:43 |
| 112 | Daniil Pronskiy | Astana Qazaqstan Development Team | + 11:04 | + 11:04 |
| 113 | Alexandre Vinokurov | Astana Qazaqstan Development Team | + 11:04 | + 11:04 |
| 114 | Célestin Guillon | Van Rysel-Roubaix Lille Métropole | + 11:04 | + 11:04 |
| 115 | Paul Hennequin | Nice Métropole Côte d'Azur | + 11:04 | + 11:04 |
| 116 | Nicolas Vinokurov | Astana Qazaqstan Development Team | + 11:04 | + 11:04 |
| 117 | Haylu Abreha Negasi | Q36.5 Pro Cycling Team | + 11:04 | + 11:04 |
| 118 | Oliver Knudsen | Leopard Togt Pro Cycling | + 11:04 | + 11:04 |
| 119 | Cyrus Monk | Q36.5 Pro Cycling Team | + 11:04 | + 11:04 |
| 120 | Colin Heiderscheid | Leopard Togt Pro Cycling | + 11:07 | + 11:07 |
| 121 | Alexandre Delettre | Cofidis | + 11:10 | + 11:10 |
| 122 | Théo Delacroix | Saint Michel-Mavic-Auber 93 | + 11:10 | + 11:10 |