| # | Rider | Team | Time | Gap |
|---|---|---|---|---|
| 1 | Simon Spilak | Katusha-Alpecin | 28:37:11 | |
| 2 | Damiano Caruso | BMC Racing Team | + 48 | + 48 |
| 3 | Steven Kruijswijk | Team Lotto NL-Jumbo | + 01:08 | + 01:08 |
| 4 | Domenico Pozzovivo | AG2R La Mondiale | + 02:37 | + 02:37 |
| 5 | Rui Costa | UAE Team Emirates | + 03:09 | + 03:09 |
| 6 | Ion Izagirre | Bahrain-Merida | + 03:51 | + 03:51 |
| 7 | Mathias Frank | AG2R La Mondiale | + 04:00 | + 04:00 |
| 8 | Marc Soler | Movistar Team | + 04:14 | + 04:14 |
| 9 | Mikel Nieve | Team Sky | + 04:47 | + 04:47 |
| 10 | Pello Bilbao | Astana Pro Team | + 05:30 | + 05:30 |
| 11 | Victor de La Parte | Movistar Team | + 07:03 | + 07:03 |
| 12 | Valerio Conti | UAE Team Emirates | + 07:32 | + 07:32 |
| 13 | Patrick Konrad | Bora-Hansgrohe | + 09:02 | + 09:02 |
| 14 | Tao Geoghegan Hart | Team Sky | + 09:53 | + 09:53 |
| 15 | Merhawi Kudus | Team Dimension Data | + 11:53 | + 11:53 |
| 16 | Carlos Verona | Orica-Scott | + 14:22 | + 14:22 |
| 17 | Carlos Betancur | Movistar Team | + 15:04 | + 15:04 |
| 18 | Jan Bakelants | AG2R La Mondiale | + 16:11 | + 16:11 |
| 19 | Ondrej Cink | Bahrain-Merida | + 17:28 | + 17:28 |
| 20 | Matvei Mamykin | Katusha-Alpecin | + 18:30 | + 18:30 |
| 21 | Christian Eiking Odd | FDJ | + 19:10 | + 19:10 |
| 22 | Martijn Tusveld | Roompot-Nederlandse Loterij | + 20:07 | + 20:07 |
| 23 | Maxime Monfort | Lotto-Soudal | + 20:12 | + 20:12 |
| 24 | Tsgabu Grmay | Bahrain-Merida | + 23:46 | + 23:46 |
| 25 | Jan Hirt | CCC Sprandi Polkowice | + 26:14 | + 26:14 |
| 26 | Michael Woods | Cannondale-Drapac Pro Cycling | + 26:23 | + 26:23 |
| 27 | Daan Olivier | Team Lotto NL-Jumbo | + 26:43 | + 26:43 |
| 28 | Mekseb Debesay | Team Dimension Data | + 29:39 | + 29:39 |
| 29 | Philippe Gilbert | Quick-Step Floors | + 33:35 | + 33:35 |
| 30 | Michael Schär | BMC Racing Team | + 34:39 | + 34:39 |
| 31 | Fabio Felline | Trek-Segafredo | + 34:41 | + 34:41 |
| 32 | Patrick Bevin | Cannondale-Drapac Pro Cycling | + 35:54 | + 35:54 |
| 33 | Sebastian Henao | Team Sky | + 38:30 | + 38:30 |
| 34 | Joe Dombrowski | Cannondale-Drapac Pro Cycling | + 38:49 | + 38:49 |
| 35 | Tejay van Garderen | BMC Racing Team | + 39:37 | + 39:37 |
| 36 | Lilian Calmejane | Direct Énergie | + 39:51 | + 39:51 |
| 37 | Koen de Kort | Trek-Segafredo | + 40:46 | + 40:46 |
| 38 | Nelson Oliveira | Movistar Team | + 42:17 | + 42:17 |
| 39 | Lawrence Warbasse | Aqua Blue Sport | + 43:35 | + 43:35 |
| 40 | Perrig Quemeneur | Direct Énergie | + 44:13 | + 44:13 |
| 41 | Alberto Losada | Katusha-Alpecin | + 45:12 | + 45:12 |
| 42 | Arthur Vichot | FDJ | + 45:39 | + 45:39 |
| 43 | Hugo Houle | AG2R La Mondiale | + 45:59 | + 45:59 |
| 44 | Darwin Atapuma | UAE Team Emirates | + 47:49 | + 47:49 |
| 45 | Simone Petilli | UAE Team Emirates | + 48:00 | + 48:00 |
| 46 | Anthony Roux | FDJ | + 48:14 | + 48:14 |
| 47 | Tomasz Marczynski | Lotto-Soudal | + 49:16 | + 49:16 |
| 48 | Greg van Avermaet | BMC Racing Team | + 50:43 | + 50:43 |
| 49 | Jay Mccarthy | Bora-Hansgrohe | + 51:04 | + 51:04 |
| 50 | Enrico Gasparotto | Bahrain-Merida | + 51:42 | + 51:42 |
| 51 | Simone Ponzi | CCC Sprandi Polkowice | + 54:16 | + 54:16 |
| 52 | Stefan Küng | BMC Racing Team | + 54:37 | + 54:37 |
| 53 | Sylvain Chavanel | Direct Énergie | + 55:41 | + 55:41 |
| 54 | Paul Martens | Team Lotto NL-Jumbo | + 55:48 | + 55:48 |
| 55 | Mark Christian | Aqua Blue Sport | + 56:39 | + 56:39 |
| 56 | Hugh Carthy | Cannondale-Drapac Pro Cycling | + 56:49 | + 56:49 |
| 57 | Antonio Pedrero | Movistar Team | + 57:37 | + 57:37 |
| 58 | Matej Mohoric | UAE Team Emirates | + 57:46 | + 57:46 |
| 59 | Nick van der Lijke | Roompot-Nederlandse Loterij | + 57:58 | + 57:58 |
| 60 | Michael Matthews | Team Sunweb | + 01:01:51 | + 01:01:51 |
| 61 | Philip Deignan | Team Sky | + 01:01:53 | + 01:01:53 |
| 62 | Nikias Arndt | Team Sunweb | + 01:02:08 | + 01:02:08 |
| 63 | Jan Barta | Bora-Hansgrohe | + 01:05:15 | + 01:05:15 |
| 64 | Mike Teunissen | Team Sunweb | + 01:05:27 | + 01:05:27 |
| 65 | Salvatore Puccio | Team Sky | + 01:06:09 | + 01:06:09 |
| 66 | Dayer Quintana | Movistar Team | + 01:06:42 | + 01:06:42 |
| 67 | Michael Albasini | Orica-Scott | + 01:06:51 | + 01:06:51 |
| 68 | John Degenkolb | Trek-Segafredo | + 01:07:35 | + 01:07:35 |
| 69 | Reto Hollenstein | Katusha-Alpecin | + 01:09:04 | + 01:09:04 |
| 70 | Zdenek Stybar | Quick-Step Floors | + 01:10:46 | + 01:10:46 |
| 71 | Marcus Burghardt | Bora-Hansgrohe | + 01:10:48 | + 01:10:48 |
| 72 | Peter Sagan | Bora-Hansgrohe | + 01:11:29 | + 01:11:29 |
| 73 | Aaron Gate | Aqua Blue Sport | + 01:11:58 | + 01:11:58 |
| 74 | Jaco Venter | Team Dimension Data | + 01:13:08 | + 01:13:08 |
| 75 | Martin Elmiger | BMC Racing Team | + 01:13:28 | + 01:13:28 |
| 76 | Baptiste Planckaert | Katusha-Alpecin | + 01:15:36 | + 01:15:36 |
| 77 | Matteo Trentin | Quick-Step Floors | + 01:16:11 | + 01:16:11 |
| 78 | Tim Wellens | Lotto-Soudal | + 01:16:29 | + 01:16:29 |
| 79 | Jhonatan Restrepo | Katusha-Alpecin | + 01:17:56 | + 01:17:56 |
| 80 | Owain Doull | Team Sky | + 01:18:29 | + 01:18:29 |
| 81 | Lars Boom | Team Lotto NL-Jumbo | + 01:18:29 | + 01:18:29 |
| 82 | Benjamin King | Team Dimension Data | + 01:18:42 | + 01:18:42 |
| 83 | Rein Taaramäe | Katusha-Alpecin | + 01:19:43 | + 01:19:43 |
| 84 | Lachlan Morton | Team Dimension Data | + 01:20:02 | + 01:20:02 |
| 85 | Jack Bauer | Quick-Step Floors | + 01:22:34 | + 01:22:34 |
| 86 | Fabien Grellier | Direct Énergie | + 01:23:21 | + 01:23:21 |
| 87 | Bert-jan Lindeman | Team Lotto NL-Jumbo | + 01:23:26 | + 01:23:26 |
| 88 | Yves Lampaert | Quick-Step Floors | + 01:24:37 | + 01:24:37 |
| 89 | Niccolo Bonifazio | Bahrain-Merida | + 01:25:10 | + 01:25:10 |
| 90 | Javier Moreno | Bahrain-Merida | + 01:25:46 | + 01:25:46 |
| 91 | Kevin Reza | FDJ | + 01:25:51 | + 01:25:51 |
| 92 | Jelle Wallays | Lotto-Soudal | + 01:25:51 | + 01:25:51 |
| 93 | Daniel Pearson | Aqua Blue Sport | + 01:26:16 | + 01:26:16 |
| 94 | Dmitriy Gruzdev | Astana Pro Team | + 01:26:55 | + 01:26:55 |
| 95 | Sep Vanmarcke | Cannondale-Drapac Pro Cycling | + 01:27:00 | + 01:27:00 |
| 96 | Sam Bewley | Orica-Scott | + 01:28:32 | + 01:28:32 |
| 97 | Rohan Dennis | BMC Racing Team | + 01:28:59 | + 01:28:59 |
| 98 | Robert Power | Orica-Scott | + 01:31:03 | + 01:31:03 |
| 99 | Daniil Fominykh | Astana Pro Team | + 01:32:26 | + 01:32:26 |
| 100 | Pieter Weening | Roompot-Nederlandse Loterij | + 01:32:45 | + 01:32:45 |
| 101 | Jakub Kaczmarek | CCC Sprandi Polkowice | + 01:33:01 | + 01:33:01 |
| 102 | Jonathan Hivert | Direct Énergie | + 01:33:31 | + 01:33:31 |
| 103 | Nikolas Maes | Lotto-Soudal | + 01:33:48 | + 01:33:48 |
| 104 | Maciej Bodnar | Bora-Hansgrohe | + 01:34:39 | + 01:34:39 |
| 105 | Gregory Rast | Trek-Segafredo | + 01:35:25 | + 01:35:25 |
| 106 | Jesper Asselman | Roompot-Nederlandse Loterij | + 01:36:18 | + 01:36:18 |
| 107 | Petter Nordhaug Lars | Aqua Blue Sport | + 01:36:20 | + 01:36:20 |
| 108 | Oscar Gatto | Astana Pro Team | + 01:36:31 | + 01:36:31 |
| 109 | Daniel Oss | BMC Racing Team | + 01:39:04 | + 01:39:04 |
| 110 | Jeroen Meijers | Roompot-Nederlandse Loterij | + 01:39:07 | + 01:39:07 |
| 111 | Marco Haller | Katusha-Alpecin | + 01:40:13 | + 01:40:13 |
| 112 | Branislau Samoilau | CCC Sprandi Polkowice | + 01:40:18 | + 01:40:18 |
| 113 | Daniel Hoelgaard | FDJ | + 01:40:26 | + 01:40:26 |
| 114 | Sacha Modolo | UAE Team Emirates | + 01:41:01 | + 01:41:01 |
| 115 | Michael Kolar | Bora-Hansgrohe | + 01:41:09 | + 01:41:09 |
| 116 | Roy Curvers | Team Sunweb | + 01:41:35 | + 01:41:35 |
| 117 | Ryan Anderson | Direct Énergie | + 01:42:28 | + 01:42:28 |
| 118 | Ramon Sinkeldam | Team Sunweb | + 01:42:48 | + 01:42:48 |
| 119 | Simone Consonni | UAE Team Emirates | + 01:43:07 | + 01:43:07 |
| 120 | Adrian Kurek | CCC Sprandi Polkowice | + 01:45:37 | + 01:45:37 |
| 121 | Thomas Boudat | Direct Énergie | + 01:46:29 | + 01:46:29 |
| 122 | Leszek Plucinski | CCC Sprandi Polkowice | + 01:47:23 | + 01:47:23 |
| 123 | Martijn Keizer | Team Lotto NL-Jumbo | + 01:47:33 | + 01:47:33 |
| 124 | Nicholas Dougall | Team Dimension Data | + 01:47:36 | + 01:47:36 |
| 125 | Gediminas Bagdonas | AG2R La Mondiale | + 01:50:09 | + 01:50:09 |
| 126 | Lasse Norman Leth | Aqua Blue Sport | + 01:50:18 | + 01:50:18 |
| 127 | Kiel Reijnen | Trek-Segafredo | + 01:50:45 | + 01:50:45 |
| 128 | Taylor Phinney | Cannondale-Drapac Pro Cycling | + 01:51:54 | + 01:51:54 |
| 129 | Magnus Cort | Orica-Scott | + 01:52:27 | + 01:52:27 |
| 130 | Boy van Poppel | Trek-Segafredo | + 01:52:37 | + 01:52:37 |
| 131 | Ryan Mullen | Cannondale-Drapac Pro Cycling | + 01:53:24 | + 01:53:24 |
| 132 | Cédric Pineau | FDJ | + 01:53:26 | + 01:53:26 |
| 133 | Elmar Reinders | Roompot-Nederlandse Loterij | + 01:55:44 | + 01:55:44 |
| 134 | Nico Denz | AG2R La Mondiale | + 01:56:17 | + 01:56:17 |
| 135 | Iván García Cortina | Bahrain-Merida | + 01:59:00 | + 01:59:00 |
| 136 | Arman Kamyshev | Astana Pro Team | + 02:04:26 | + 02:04:26 |
| 137 | Albert Timmer | Team Sunweb | + 02:04:31 | + 02:04:31 |
| 138 | Taco van der Hoorn | Roompot-Nederlandse Loterij | + 02:05:53 | + 02:05:53 |
| 139 | Juraj Sagan | Bora-Hansgrohe | + 02:06:16 | + 02:06:16 |
| 140 | Jonathan Dibben | Team Sky | + 02:32:38 | + 02:32:38 |