
| 1 | Lille – Lille | Tim Merlier | |
| 2 | Lauwin-Planque – Boulogne-sur-Mer | Axel Laurance | |
| 3 | Valenciennes – Dunkirk | Jordi Meeus | |
| 4 | Amiens – Rouen | Romain Grégoire | |
| 5 | Caen – Caen | 1 | Remco Evenepoel |
| 6 | Bayeux – Vire Normandie | Kévin Vauquelin | |
| 7 | Saint-Malo – Guerlédan (Mûr-de-Bretagne) | Mathieu van der Poel | |
| 8 | Saint-Méen-le-Grand – Laval | 1 | Jonathan Milan |
| 9 | Chinon – Châteauroux | Jasper Philipsen | |
| 10 | Ennezat – Mont-Dore | Tobias Halland Johannessen | |
| 11 | Toulouse – Toulouse | Ben Healy | |
| 12 | Auch – Hautacam | Geraint Thomas | |
| 13 | Loudenvielle – Peyragudes | 1 | Tadej Pogačar |
| 14 | Pau – Superbagnères | 1 | Thymen Arensman |
| 15 | Muret – Carcassonne | 3 | Julian Alaphilippe |
| 16 | Montpellier – Mont Ventoux | Mattias Skjelmose Jensen | |
| 17 | Bollène – Valence | Filippo Ganna | |
| 18 | Vif – Courchevel (Col de la Loze) | 3 | Jonas Vingegaard |
| 19 | Albertville – La Plagne | Enric Mas | |
| 20 | Nantua – Pontarlier | Georg Zimmermann | |
| 21 | Mantes-la-Ville – Paris (Champs-Élysées) | Arnaud De Lie |