| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Gerben Thijssen | Intermarché-Circus-Wanty | 04:20:45 | |
| 2 | Dylan Groenewegen | Team Jayco-AlUla | + 00 | |
| 3 | Cédric Beullens | Lotto Dstny | + 00 | |
| 4 | Arne Marit | Intermarché-Circus-Wanty | + 00 | |
| 5 | Luca Mozzato | Team Arkéa-Samsic | + 00 | |
| 6 | Casper van Uden | Team dsm-firmenich | + 00 | |
| 7 | Jensen Plowright | Alpecin-Deceuninck | + 00 | |
| 8 | Tim Merlier | Soudal Quick-Step Devo Team | + 00 | |
| 9 | Louis Bendixen | Uno-X Pro Cycling Team | + 00 | |
| 10 | Matteo Malucelli | Bingoal WB | + 02 | + 02 |
| 11 | William Blume Levy | Uno-X Pro Cycling Team | + 02 | + 02 |
| 12 | Rüdiger Selig | Lotto Dstny | + 02 | + 02 |
| 13 | Ramon Sinkeldam | Alpecin-Deceuninck | + 02 | + 02 |
| 14 | Nils Eekhoff | Team dsm-firmenich | + 02 | + 02 |
| 15 | Lionel Taminiaux | Alpecin-Deceuninck | + 06 | + 06 |
| 16 | Sam Welsford | Team dsm-firmenich | + 06 | + 06 |
| 17 | Daniel Mclay | Team Arkéa-Samsic | + 06 | + 06 |
| 18 | Elmar Reinders | Team Jayco-AlUla | + 06 | + 06 |
| 19 | Niklas Märkl | Team dsm-firmenich | + 06 | + 06 |
| 20 | Mark Stewart | Bolton Equities Black Spoke | + 09 | + 09 |
| 21 | Abram Stockman | TdT-Unibet | + 11 | + 11 |
| 22 | Dorian de Maeght | Bingoal WB | + 11 | + 11 |
| 23 | Norman Vahtra | Van Rysel-Roubaix Lille Métropole | + 11 | + 11 |
| 24 | Cériel Desal | Bingoal WB | + 11 | + 11 |
| 25 | Rait Ärm | Van Rysel-Roubaix Lille Métropole | + 11 | + 11 |
| 26 | Frederik Frison | Lotto Dstny | + 11 | + 11 |
| 27 | Guillaume van Keirsbulck | Bingoal WB | + 11 | + 11 |
| 28 | Koller Løland Sakarias | Uno-X Pro Cycling Team | + 20 | + 20 |
| 29 | Baptiste Planckaert | Intermarché-Circus-Wanty | + 30 | + 30 |
| 30 | John Degenkolb | Team dsm-firmenich | + 01:33 | + 01:33 |
| 31 | Arjen Livyns | Lotto Dstny | + 02:03 | + 02:03 |
| 32 | Patrick Lauk Karl | Bingoal WB | + 02:03 | + 02:03 |
| 33 | Timothy Dupont | Tarteletto-Isorex | + 02:19 | + 02:19 |
| 34 | Bert van Lerberghe | Soudal Quick-Step Devo Team | + 02:19 | + 02:19 |
| 35 | Aimé de Gendt | Intermarché-Circus-Wanty | + 02:26 | + 02:26 |
| 36 | Jonas Rickaert | Alpecin-Deceuninck | + 02:26 | + 02:26 |
| 37 | Patrick Eddy | Team dsm-firmenich | + 03:59 | + 03:59 |
| 38 | Dylan Vandenstorme | Intermarché-Circus-Wanty | + 03:59 | + 03:59 |
| 39 | Alex Vandenbulcke | Tarteletto-Isorex | + 03:59 | + 03:59 |
| 40 | Ruben Apers | Team Flanders-Baloise | + 03:59 | + 03:59 |
| 41 | Yentl Vandevelde | TdT-Unibet | + 03:59 | + 03:59 |
| 42 | Alexander Salby | Bingoal WB | + 03:59 | + 03:59 |
| 43 | Amaury Capiot | Team Arkéa-Samsic | + 03:59 | + 03:59 |
| 44 | David Dekker | Team Arkéa-Samsic | + 03:59 | + 03:59 |
| 45 | Jakub Mareczko | Alpecin-Deceuninck | + 03:59 | + 03:59 |
| 46 | Casper van der Woude | Metec-SOLARWATT p/b Mantel | + 03:59 | + 03:59 |
| 47 | Keegan Hornblow | Bolton Equities Black Spoke | + 03:59 | + 03:59 |
| 48 | Jordan Habets | Metec-SOLARWATT p/b Mantel | + 03:59 | + 03:59 |
| 49 | Samuel Leroux | Van Rysel-Roubaix Lille Métropole | + 03:59 | + 03:59 |
| 50 | Andre Drege | Team Coop-Repsol | + 03:59 | + 03:59 |
| 51 | Scott Mcgill | Human Powered Health | + 03:59 | + 03:59 |
| 52 | Luka Mezgec | Team Jayco-AlUla | + 03:59 | + 03:59 |
| 53 | Alessandro Verre | Team Arkéa-Samsic | + 03:59 | + 03:59 |
| 54 | Jacopo Guarnieri | Lotto Dstny | + 03:59 | + 03:59 |
| 55 | Erlend Blikra | Uno-X Pro Cycling Team | + 04:09 | + 04:09 |
| 56 | Milan Fretin | Team Flanders-Baloise | + 04:11 | + 04:11 |
| 57 | Senne Leysen | Alpecin-Deceuninck | + 04:11 | + 04:11 |
| 58 | Hartthijs de Vries | TdT-Unibet | + 04:11 | + 04:11 |
| 59 | Victor Broex | Metec-SOLARWATT p/b Mantel | + 04:11 | + 04:11 |
| 60 | Davide Bomboi | TdT-Unibet | + 04:11 | + 04:11 |
| 61 | Maxime Jarnet | Van Rysel-Roubaix Lille Métropole | + 04:11 | + 04:11 |
| 62 | Adrien Petit | Intermarché-Circus-Wanty | + 04:11 | + 04:11 |
| 63 | Thijs de Lange | Metec-SOLARWATT p/b Mantel | + 04:35 | + 04:35 |