| 10-10 | 65 | | Gran Piemonte (1.HC) | 183.0km |
| | | Tour of Croatia (2.1) |
| 14 | | Klassement |
| 17 | | Punten |
| 22 | | Berg |
| 06-10 | 10 | 14 | Stage 6Sveta Nedelja - Zagreb (160.0km) | 160.0km |
| 05-10 | 22 | 14 | Stage 5Rabac - Platak (142.0km) | 142.0km |
| 04-10 | 8 | 9 | Stage 4Starigrad - Crikvenica (159.0km) | 159.0km |
| 03-10 | 11 | 12 | Stage 3Okrug - Makarska (165.0km) | 165.0km |
| 02-10 | 19 | 18 | Stage 2Slunj - Zadar (186.0km) | 186.0km |
| 01-10 | 29 | 31 | Stage 1Osijek - Lipik (210.0km) | 210.0km |
| 22-09 | DNS | | Trofeo Matteotti (1.1) | |
| 21-09 | DNF | | Memorial Marco Pantani (1.1) | |
| 18-09 | 19 | | Grand Prix de Wallonie (1.1) | 205.0km |
| 15-09 | 9 | | Tour du Doubs (1.1) | |
| 01-09 | 32 | | Bretagne Classic - Ouest-France (1.UWT) | 248.0km |
| | | Tour du Limousin (2.1) |
| 28 | | Klassement |
| 24-08 | 18 | 28 | Stage 4Confolens - Limoges (177.0km) | 177.0km |
| 23-08 | 46 | 35 | Stage 3Chamboulive - Beynat (176.0km) | 176.0km |
| 22-08 | 6 | 5 | Stage 2Rouffiac - Trélissac (182.0km) | 182.0km |
| 21-08 | 6 | 6 | Stage 1Condat-sur-Vienne - Guéret (172.0km) | 172.0km |
| | | Arctic Race of Norway (2.HC) |
| 17 | | Klassement |
| 18 | | Berg |
| 18-08 | 24 | 17 | Stage 4Lødingen - Narvik (166.0km) | 166.0km |
| 17-08 | 19 | 18 | Stage 3Sortland - Storheia (Melbu) (176.0km) | 176.0km |
| 16-08 | 32 | 13 | Stage 2Henningsvaer - Svolvær (168.0km) | 168.0km |
| 15-08 | 13 | 15 | Stage 1Å - Leknes (182.0km) | 182.0km |
| | | VOO-Tour de Wallonie (2.HC) |
| 5 | | Klassement |
| 24 | | Berg |
| 31-07 | 13 | 5 | Stage 5Couvin - Thuin (186.0km) | 186.0km |
| 30-07 | 27 | 20 | Stage 4Villers-le-Bouillet - Lierneux (178.0km) | 178.0km |
| 29-07 | 30 | 21 | Stage 3La Roche-en-Ardenne - Verviers (194.0km) | 194.0km |
| 28-07 | 16 | 24 | Stage 2Waremme - Beyne-Heusay (170.0km) | 170.0km |
| 27-07 | 88 | 89 | Stage 1Le Roeulx - Dottignies (186.0km) | 186.0km |
| 30-06 | 6 | | National Road Championships - France (CN) | 252.0km |
| | | La Route d'Occitanie (2.1) |
| 31 | | Klassement |
| 30 | | Punten |
| 20 | | Berg |
| 23-06 | 84 | 31 | Stage 4Gers - Astarac Arros en Gascogne (154.0km) | 154.0km |
| 22-06 | 35 | 28 | Stage 3Arreau - Luchon (173.0km) | 173.0km |
| 21-06 | 35 | 12 | Stage 2Labruguière - Martres-Tolosane (187.0km) | 187.0km |
| 20-06 | 12 | 12 | Stage 1Gignac - Saint-Geniez-d Olt (175.0km) | 175.0km |
| | | Critérium du Dauphiné (2.UWT) |
| 66 | | Klassement |
| 34 | | Punten |
| 16-06 | 43 | 66 | Stage 8Cluses - Champéry (113.0km) | 113.0km |
| 15-06 | 96 | 78 | Stage 7Saint-Genix-les-Villages - Les Sept Laux-Pipay (133.0km) | 133.0km |
| 14-06 | 39 | 72 | Stage 6Saint-Vulbas - Saint-Michel-de-Maurienne (228.0km) | 228.0km |
| 13-06 | 21 | 101 | Stage 5Boën-sur-Lignon - Voiron (201.0km) | 201.0km |
| 12-06 | 111 | 102 | Stage 4Roanne - Roanne (26.0km) | 26.0km |
| 11-06 | 141 | 103 | Stage 3Le Puy-en-Velay - Riom (172.0km) | 172.0km |
| 10-06 | 88 | 91 | Stage 2Mauriac - Craponne-sur-Arzon (180.0km) | 180.0km |
| 09-06 | 67 | 67 | Stage 1Aurillac - Jussac (142.0km) | 142.0km |
| 01-06 | DNF | | Grand Prix de Plumelec-Morbihan (1.1) | 188.0km |
| | | Tour de l'Ain (2.1) |
| 38 | | Klassement |
| 19 | | Berg |
| 26-05 | 46 | 38 | Stage 3Parc des Oiseaux - Le Grand Colombier (120.0km) | 120.0km |
| 25-05 | 23 | 31 | Stage 2Bellignat - Col de la Faucille (131.0km) | 131.0km |
| 24-05 | 52 | 52 | Stage 1Bourg-en-Bresse - Saint-Vulbas (164.0km) | 164.0km |
| | | Tour de Yorkshire (2.HC) |
| 03-05 | DNF | | Stage 2Barnsley - Bedale (132.0km) | 132.0km |
| 02-05 | 125 | 125 | Stage 1Doncaster - Selby (178.0km) | 178.0km |
| 28-04 | 48 | | Liège-Bastogne-Liège (1.UWT) | 256.0km |
| 21-04 | 74 | | Amstel Gold Race (1.UWT) | 258.0km |
| 17-04 | 12 | | De Brabantse Pijl (1.HC) | 195.0km |
| | | Circuit Cycliste Sarthe - Pays de la Loire (2.1) |
| 2 | | Klassement |
| 5 | | Punten |
| 4 | | Berg |
| 12-04 | 7 | 2 | Stage 4Sillé-le-Guillaume - Sillé-le-Guillaume (183.0km) | 183.0km |
| 11-04 | 2 | 2 | Stage 3Royal Abbey of Epau - Mont des Avaloirs (184.0km) | 184.0km |
| 10-04 | 69 | 64 | Stage 2Freigné - Belligné (172.0km) | 172.0km |
| 09-04 | 46 | 48 | Stage 1La Châtaigneraie - La Châtaigneraie (180.0km) | 180.0km |
| 06-04 | 4 | | Volta Limburg Classic (1.1) | 192.0km |
| 30-03 | 25 | | Classic Loire Atlantique (1.1) | 182.0km |
| | | Paris-Nice (2.UWT) |
| 45 | | Klassement |
| 38 | | Berg |
| 17-03 | 34 | 45 | Stage 8Nice - Nice (110.0km) | 110.0km |
| 16-03 | 44 | 52 | Stage 7Nice - Col de Turini (181.0km) | 181.0km |
| 15-03 | 92 | 63 | Stage 6Peynier - Brignoles (176.0km) | 176.0km |
| 14-03 | 81 | 60 | Stage 5Barbentane - Barbentane (25.0km) | 25.0km |
| 13-03 | 15 | 59 | Stage 4Vichy - Pélussin (210.0km) | 210.0km |
| 12-03 | 150 | 137 | Stage 3Cepoy - Moulines/Yzeure (200.0km) | 200.0km |
| 11-03 | 112 | 85 | Stage 2Les Bréviaires - Bellegarde (163.0km) | 163.0km |
| 10-03 | 31 | 31 | Stage 1Saint-Germain-en-Laye - Saint-Germain-en-Laye (138.0km) | 138.0km |
| 03-03 | 34 | | Royal Bernard Drome Classic (1.1) | |
| 02-03 | 44 | | Classic de l'Ardèche Rhône Crussol (1.1) | |
| | | Tour of Oman (2.HC) |
| 10 | | Klassement |
| 37 | | Punten |
| 21-02 | 16 | 10 | Stage 6Al Mouj Muscat - Matrah Corniche (135.0km) | 135.0km |
| 20-02 | 17 | 10 | Stage 5Samayil - Al Jabal Al Akhdar (152.0km) | 152.0km |
| 19-02 | 30 | 9 | Stage 4Yiti - Oman Convention & Exhibition Center (125.0km) | 125.0km |
| 18-02 | 8 | 9 | Stage 3Shati Al Qurum - Qurayyat (192.0km) | 192.0km |
| 17-02 | 12 | 17 | Stage 2Royal Cavalry Oman - Al Bustan (158.0km) | 158.0km |
| 16-02 | 57 | 58 | Stage 1Al Sawadi Beach - Suhar Corniche (138.0km) | 138.0km |
| | | Etoile de Bessèges (2.1) |
| 71 | | Klassement |
| 10-02 | 16 | 71 | Stage 4Alès - Alès (10.0km) | 10.0km |
| 09-02 | 88 | 86 | Stage 3Bessèges - Bessèges (158.0km) | 158.0km |
| 08-02 | 133 | 119 | Stage 2Saint-Geniés-de-Malgoires - La Clamette (154.0km) | 154.0km |
| 07-02 | 87 | 88 | Stage 1Bellegarde - Beaucaire (162.0km) | 162.0km |
| 03-02 | 32 | | Grand Prix Cycliste la Marseillaise (1.1) | 139.0km |