| 01-09 | DNF | | GP Ouest France - Plouay (WT) | 243.0km |
| | | Tour du Poitou Charentes (2.1) |
| 30-08 | DNF | | Stage 5Ruelle-sur-Touvre - Poitiers (193.0km) | 193.0km |
| 29-08 | 84 | 110 | Stage 4Charroux - Civray (22.0km) | 22.0km |
| 29-08 | 127 | 121 | Stage 3Charroux - Civray (109.0km) | 109.0km |
| 28-08 | 110 | 116 | Stage 2Saintes - Angoulême (182.0km) | 182.0km |
| 27-08 | 122 | 122 | Stage 1Saint-Maixent-l'École - Saintes (197.0km) | 197.0km |
| 23-08 | DNF | | Tre Valli Varesine (1.HC) | 198.0km |
| 22-08 | 70 | | GP Banca di Legnano - Coppa Bernocchi (1.1) | |
| 21-08 | 93 | | Coppa Agostoni - Giro delle Brianze (1.1) | 198.0km |
| 15-08 | 1 | | Criterium de Quillan (Cri) | |
| | | Tour de l'Ain (2.1) |
| 15 | | Klassement |
| 13-08 | 15 | 15 | Stage 4Nantua - Belley (126.0km) | 126.0km |
| 12-08 | 20 | 20 | Stage 3Izernore - Lélex (136.0km) | 136.0km |
| 11-08 | 33 | 34 | Stage 2Courtes - Oyonnax (149.0km) | 149.0km |
| 10-08 | 93 | 81 | Stage 1Lagnieu - Bourg-en-Bresse (156.0km) | 156.0km |
| 09-08 | 81 | 81 | PrologueTrévoux - Trévoux (4.0km) | 4.0km |
| 25-07 | 2 | | Criterium de Dijon (Cri) | |
| | | Tour de France (WT) |
| 24 | | Klassement |
| 50 | | Punten |
| 3 | | Berg |
| 21-07 | 138 | 24 | Stage 21Versailles - Paris (133.0km) | 133.0km |
| 20-07 | 38 | 24 | Stage 20Annecy - Annecy (125.0km) | 125.0km |
| 19-07 | 16 | 25 | Stage 19Bourg-d'Oisans - Le-Grand-Bornand (204.0km) | 204.0km |
| 18-07 | 27 | 28 | Stage 18Gap - L'Alpe-d'Huez (172.0km) | 172.0km |
| 17-07 | 139 | 32 | Stage 17Embrun - Chorges (32.0km) | 32.0km |
| 16-07 | 58 | 32 | Stage 16Vaison-la-Romaine - Gap (168.0km) | 168.0km |
| 14-07 | 28 | 30 | Stage 15Givors - Mont Ventoux (242.0km) | 242.0km |
| 13-07 | 131 | 29 | Stage 14Saint-Pourçain-sur-Sioule - Lyon (191.0km) | 191.0km |
| 12-07 | 116 | 28 | Stage 13Tours - Saint-Amand-Montrond (173.0km) | 173.0km |
| 11-07 | 93 | 27 | Stage 12Fougères - Tours (218.0km) | 218.0km |
| 10-07 | 91 | 27 | Stage 11Avranches - Le Mont-Saint-Michel (33.0km) | 33.0km |
| 09-07 | 88 | 26 | Stage 10Saint-Gildas-des-Bois - Saint-Malo (197.0km) | 197.0km |
| 07-07 | 38 | 26 | Stage 9Saint-Girons - Bagnères-de-Bigorre (168.0km) | 168.0km |
| 06-07 | 22 | 25 | Stage 8Castres - Ax-3 Domaines (195.0km) | 195.0km |
| 05-07 | 59 | 49 | Stage 7Montpellier - Albi (205.0km) | 205.0km |
| 04-07 | 100 | 52 | Stage 6Aix-en-Provence - Montpellier (176.0km) | 176.0km |
| 03-07 | 64 | 58 | Stage 5Cagnes-sur-Mer - Marseille (228.0km) | 228.0km |
| 02-07 | 19 | 63 | Stage 4Nice - Nice (25.0km) | 25.0km |
| 01-07 | 81 | 55 | Stage 3Ajaccio - Calvi (145.0km) | 145.0km |
| 30-06 | 76 | 59 | Stage 2Bastia - Ajaccio (156.0km) | 156.0km |
| 29-06 | 82 | 82 | Stage 1Porto-Vecchio - Bastia (213.0km) | 213.0km |
| 23-06 | DNF | | National Road Championships - France (CN) | 251.0km |
| | | Critérium du Dauphiné (WT) |
| 09-06 | DNF | | Stage 8Sisteron - Risoul (152.0km) | 152.0km |
| 08-06 | 26 | 25 | Stage 7Le Pont-de-Claix - Superdévoluy (184.0km) | 184.0km |
| 07-06 | 52 | 29 | Stage 6La Léchère - Grenoble (141.0km) | 141.0km |
| 06-06 | 48 | 36 | Stage 5Grésy-sur-Aix - Valmorel (139.0km) | 139.0km |
| 05-06 | 46 | 27 | Stage 4Villars-les-Dombes - Parc des Oiseaux (32.0km) | 32.0km |
| 04-06 | 99 | 52 | Stage 3Ambérieu-en-Bugey - Tarare (164.0km) | 164.0km |
| 03-06 | 72 | 50 | Stage 2Châtel - Oyonnax (183.0km) | 183.0km |
| 02-06 | 32 | 32 | Stage 1Champéry - Champéry (121.0km) | 121.0km |
| | | Bayern-Rundfahrt (2.HC) |
| 17 | | Klassement |
| 26-05 | 39 | 17 | Stage 5Kelheim - Nürnberg (169.0km) | 169.0km |
| 25-05 | 27 | 18 | Stage 4Schierling - Schierling (31.0km) | 31.0km |
| 24-05 | 88 | 27 | Stage 3Viechtach - Kelheim (196.0km) | 196.0km |
| 23-05 | 25 | 25 | Stage 2Mühldorf am Inn - Viechtach (192.0km) | 192.0km |
| 22-05 | 78 | 80 | Stage 1Pfaffenhofen an der Ilm - Mühldorf am Inn (193.0km) | 193.0km |
| | | Tour de Romandie (WT) |
| 19 | | Klassement |
| 4 | | Berg |
| 28-04 | 43 | 19 | Stage 5Genève - Genève (18.0km) | 18.0km |
| 27-04 | 15 | 18 | Stage 4Marly - Les Diablerets (188.0km) | 188.0km |
| 26-04 | 66 | 50 | Stage 3Payerne - Payerne (181.0km) | 181.0km |
| 25-04 | 74 | 55 | Stage 2Prilly - Granges (190.0km) | 190.0km |
| 24-04 | 106 | 63 | Stage 1Saint-Maurice - Renens (176.0km) | 176.0km |
| 23-04 | 63 | 63 | PrologueLe Châble - Bruson (7.0km) | 7.0km |
| 21-04 | 24 | | Liège-Bastogne-Liège (WT) | 257.0km |
| | | Giro del Trentino (2.HC) |
| 10 | | Klassement |
| 19-04 | 10 | 10 | Stage 4Arco - Sega di Ala (166.0km) | 166.0km |
| 18-04 | 19 | 9 | Stage 3Pergine Valsugana - Condino (176.0km) | 176.0km |
| 17-04 | 9 | 11 | Stage 2Sillian - Vetriolo Terme (220.0km) | 220.0km |
| 16-04 | 6 | 37 | Stage 1bLienz - Lienz (14.0km) | 14.0km |
| 16-04 | 93 | 93 | Stage 1aLienz - Lienz (128.0km) | 128.0km |
| 09-04 | 3 | | Paris-Camembert (1.1) | 206.0km |
| | | Circuit Cycliste Sarthe - Pays de la Loire (2.1) |
| 1 | | Klassement |
| 5 | | Punten |
| 05-04 | 19 | 1 | Stage 5Abbaye de l'Epau - Saint-Vincent-du-Lorouër (165.0km) | 165.0km |
| 04-04 | 1 | 1 | Stage 4Angers - Pré-en-Pail (188.0km) | 188.0km |
| 03-04 | 47 | 48 | Stage 3Angers - Angers (6.0km) | 6.0km |
| 03-04 | 79 | 73 | Stage 2Ligné - Angers (93.0km) | 93.0km |
| 02-04 | 62 | 63 | Stage 1Fontenay-le-Comte - Ligné (179.0km) | 179.0km |
| 29-03 | 19 | | Route Adélie de Vitré (1.1) | 198.0km |
| | | Critérium International (2.HC) |
| 24-03 | DNF | | Stage 3Porto-Vecchio - Col de l'Ospedale (176.0km) | 176.0km |
| 23-03 | 64 | 66 | Stage 1Porto-Vecchio - Porto-Vecchio (89.0km) | 89.0km |
| 23-03 | 62 | 56 | Stage 2Porto-Vecchio - Porto-Vecchio (7.0km) | 7.0km |
| | | Le Tour de Langkawi (2.HC) |
| 20 | | Klassement |
| 02-03 | 89 | 20 | Stage 10Tasik Kenyir - Kuala Terrenganu (114.0km) | 114.0km |
| 01-03 | 85 | 16 | Stage 9Pasir Puteh - Kuala Berang (123.0km) | 123.0km |
| 28-02 | 88 | 16 | Stage 8Kuala Terrenganu - Tanah Merah (164.0km) | 164.0km |
| 27-02 | 83 | 15 | Stage 7Kuantan - Dungun (149.0km) | 149.0km |
| 26-02 | 90 | 15 | Stage 6Mentakab - Kuantan (217.0km) | 217.0km |
| 25-02 | 14 | 15 | Stage 5Proton - Genting Highlands (110.0km) | 110.0km |
| 24-02 | 102 | 26 | Stage 4Tapah - Kapar (168.0km) | 168.0km |
| 23-02 | 24 | 26 | Stage 3Sungai Siput - Cameron Highlands (140.0km) | 140.0km |
| 22-02 | 95 | 102 | Stage 2Serdang - Kuala Kangsar (117.0km) | 117.0km |
| 21-02 | 102 | 103 | Stage 1Kangar - Kulim (162.0km) | 162.0km |
| | | Tour Méditerranéen (2.1) |
| 43 | | Klassement |
| 10-02 | 21 | 43 | Stage 5Bandol - Grasse (167.0km) | 167.0km |
| 09-02 | 83 | 81 | Stage 4Rousset - Toulon (Mont Faron) (151.0km) | 151.0km |
| 07-02 | 127 | 124 | Stage 2Le Cap d'Agde - Sète (24.0km) | 24.0km |
| 06-02 | 111 | 111 | Stage 1Limoux - Gruissan (141.0km) | 141.0km |
| | | Etoile de Bessèges (2.1) |
| 03-02 | 111 | 91 | Stage 5Alès - Alès (69.0km) | 69.0km |
| 03-02 | 72 | 83 | Stage 6Alès - Alès (9.0km) | 9.0km |
| 02-02 | 104 | 82 | Stage 4Sabran - Pont-Saint-Esprit (154.0km) | 154.0km |
| 01-02 | 97 | 91 | Stage 3Bessèges - Bessèges (152.0km) | 152.0km |
| 31-01 | 131 | 126 | Stage 2Nîmes - Les Fumades (157.0km) | 157.0km |
| 30-01 | 118 | 119 | Stage 1Bellegarde - Beaucaire (154.0km) | 154.0km |
| | | La Tropicale Amissa Bongo (2.1) |
| 32 | | Klassement |
| 20-01 | 62 | 32 | Stage 7Owendo - Libreville (128.0km) | 128.0km |
| 19-01 | 54 | 35 | Stage 6Lambaréné - Kango (147.0km) | 147.0km |
| 18-01 | 55 | 32 | Stage 5Lambaréné - Mouila (190.0km) | 190.0km |
| 17-01 | 32 | 26 | Stage 4Oyem - Mitzic (109.0km) | 109.0km |
| 16-01 | 23 | 24 | Stage 3Oyem - Bitam (110.0km) | 110.0km |
| 15-01 | 29 | 30 | Stage 2Yaounde - Yaounde (112.0km) | 112.0km |
| 14-01 | 37 | 39 | Stage 1Bitam - Ebolowa (149.0km) | 149.0km |