Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Al Taawoun | 2024/25 – 2025/26 | 65 | 3 | 15 |
| Al Jubail | 2025/26 | 14 | 1 | 3 |
| Al Wehda Club | 2022/23 – 2024/25 | 97 | 12 | 30 |
| Morocco | 2016 – 2023 | 49 | 5 | 1 |
| Sivasspor | 2020/21 – 2021/22 | 83 | 9 | 15 |
| Getafe | 2017/18 – 2019/20 | 50 | 1 | 5 |
| Caen | 2011/12 – 2018/19 | 122 | 22 | 6 |
| Deportivo | 2015/16 – 2016/17 | 66 | 5 | 6 |
| Elche | 2014/15 | 38 | 1 | 0 |
| Caen II | 2011/12 – 2012/13 | 14 | 7 | — |
| Fréjus St-Raphaël | 2009/10 – 2010/11 | 63 | 8 | 0 |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 20 Aug 2024 | Al Wehda Club | Al Taawon | — |
| 1 Jul 2022 | Sivasspor | Al Wehda Club | — |
| 14 Sept 2020 | Getafe | Sivasspor | — |
| 1 Aug 2019 | Caen | Getafe | — |
| 3 Aug 2018 | Getafe | Caen | € 1.5M |
| 20 Jul 2017 | Deportivo La Coruna | Getafe | — |
| 1 Jul 2016 | Elche | Deportivo La Coruna | Free |
| 3 Aug 2015 | Elche | Deportivo La Coruna | Loan |
| 25 Jun 2014 | Caen | Elche | Free |
| 21 Jul 2011 | Fréjus St-Raphaël | Caen | Free |
| 8 Sept 2026 | Al Jubail | Moghreb Tetouan | Free agent |
| 22 Sept 2025 | Al Taawon | Al Jubail | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | Division 1 | Al Jubail | 13 | — | — | 1 | 3 | 1 | 0 | — |
| 2025/26 | King's Cup | Al Jubail | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2024/25 | King's Cup | Al Taawoun | 27 | 27 | 2389 | 3 | 8 | 3 | 0 | 7.51 |
| 2024/25 | Pro League | Al Taawoun | 30 | 28 | 2262 | — | 6 | 4 | 0 | 7.24 |
| 2024/25 | King's Cup | Al Taawoun | 3 | — | — | 0 | 1 | 2 | 0 | — |
| 2024/25 | Super Cup | Al Wehda Club | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2024/25 | AFC Champions League Two | Al Taawoun | 5 | 5 | 446 | — | 0 | 0 | 0 | 7.42 |
| 2023 | Africa Cup of Nations | Morocco | 2 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2023/24 | King's Cup | Al Wehda Club | 27 | 27 | 2389 | 3 | 8 | 3 | 0 | 7.51 |
| 2023/24 | Pro League | Al Wehda Club | 33 | 33 | 2957 | 4 | 8 | 2 | 0 | 7.51 |
| 2023/24 | King's Cup | Al Wehda Club | 1 | — | — | 0 | 0 | 1 | 0 | — |
| 2023 | Africa Cup of Nations - Qualification | Morocco | 2 | — | — | 1 | 0 | 0 | 0 | — |
| 2022/23 | King's Cup | Al Wehda Club | 4 | 4 | 390 | 1 | — | 1 | 0 | — |
| 2022 | World Cup - Qualification Africa | Morocco | 5 | 0 | 75 | 0 | — | 0 | 0 | — |
| 2022/23 | Pro League | Al Wehda Club | 27 | 27 | 2389 | 3 | 8 | 3 | 0 | 7.51 |
| 2022/23 | King's Cup | Al Wehda Club | 4 | — | — | 1 | 0 | 0 | 0 | — |
| 2022 | Friendlies | Morocco | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2021/22 | Süper Lig | Sivasspor | 29 | 28 | 2331 | 5 | 4 | 4 | 0 | 7.31 |
| 2021/22 | Türkiye Kupası | Sivasspor | 5 | — | — | 0 | 3 | 1 | 0 | — |
| 2021/22 | UEFA Europa Conference League | Sivasspor | 5 | — | — | 0 | 1 | 3 | 0 | — |
| 2021 | Africa Cup of Nations | Morocco | 2 | 1 | 82 | — | — | 0 | 0 | 6.90 |
| 2021 | Africa Cup of Nations - Qualification | Morocco | 3 | — | — | 0 | 0 | 0 | 0 | — |
| 2020/21 | Süper Lig | Sivasspor | 36 | 36 | 3098 | 4 | 5 | 6 | 0 | 7.39 |
| 2020/21 | Türkiye Kupası | Sivasspor | 3 | — | — | 0 | 1 | 0 | 0 | — |
| 2020/21 | UEFA Europa League | Sivasspor | 5 | 5 | 450 | — | 1 | 3 | 0 | 7.50 |
| 2019/20 | La Liga | Getafe | 10 | 9 | 415 | — | — | 2 | 0 | 6.70 |
| 2019/20 | Copa del Rey | Getafe | 1 | 1 | 90 | — | 1 | 0 | 0 | 8.20 |
| 2019/20 | UEFA Europa League | Getafe | 5 | 5 | 439 | — | — | 2 | 0 | 7.14 |
| 2019 | Africa Cup of Nations | Morocco | 2 | 0 | 14 | — | — | 0 | 0 | 7.00 |
| 2019 | Friendlies | Morocco | 6 | — | — | 0 | 0 | 0 | 0 | — |
| 2019 | Africa Cup of Nations - Qualification | Morocco | 5 | — | — | 1 | 0 | 0 | 0 | — |
| 2018 | World Cup - Qualification Africa | Morocco | 4 | 2 | 154 | 1 | — | 0 | 0 | — |
| 2018/19 | Ligue 1 | Caen | 36 | 36 | 3240 | 5 | 4 | 6 | 0 | 7.14 |
| 2018/19 | Coupe de France | Caen | 3 | — | — | 0 | 2 | 1 | 0 | — |
| 2018/19 | Coupe de la Ligue | Caen | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2018 | Friendlies | Morocco | 4 | — | — | 0 | 0 | 2 | 0 | — |
| 2018 | World Cup | Morocco | 2 | 2 | 31 | — | 1 | 0 | 0 | 6.70 |
| 2017/18 | Club Friendlies | Getafe | 1 | 1 | 79 | 0 | — | 0 | 0 | — |
| 2017/18 | La Liga | Getafe | 31 | 28 | 2383 | 1 | 4 | 7 | 0 | 6.97 |
| 2017/18 | Copa del Rey | Getafe | 2 | 2 | 180 | — | — | 1 | 0 | 7.20 |
| 2017 | Africa Cup of Nations | Morocco | 4 | — | — | 0 | 0 | 0 | 0 | — |
| 2017 | Friendlies | Morocco | 5 | — | — | 1 | 0 | 0 | 0 | — |
| 2016/17 | La Liga | Deportivo | 24 | 19 | 1202 | — | 2 | 4 | 1 | 6.66 |
| 2016/17 | Copa del Rey | Deportivo | 1 | 1 | 90 | — | 1 | 0 | 0 | 7.20 |
| 2016 | Friendly International | Morocco | 2 | — | — | 0 | 0 | 0 | 0 | — |
| 2015/16 | La Liga | Deportivo | 38 | 31 | 2841 | 5 | 3 | 3 | 0 | 6.95 |
| 2015/16 | Copa del Rey | Deportivo | 3 | — | — | 0 | 0 | 0 | 0 | — |
| 2014/15 | La Liga | Elche | 34 | 29 | 2568 | 1 | — | 2 | 0 | — |
| 2014/15 | Copa del Rey | Elche | 4 | — | — | 0 | 0 | 0 | 0 | — |
| 2013/14 | Ligue 2 | Caen | 35 | — | — | 8 | 0 | 2 | 0 | — |
| 2013/14 | Coupe de France | Caen | 2 | — | — | 2 | 0 | 0 | 0 | — |
| 2013/14 | Coupe de la Ligue | Caen | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2012/13 | National 2 - Group D | Caen II | 1 | 1 | 61 | 0 | — | 0 | 0 | — |
| 2012/13 | Ligue 2 | Caen | 25 | — | — | 3 | 0 | 2 | 0 | — |
| 2012/13 | Coupe de France | Caen | 1 | — | — | 2 | 0 | 0 | 0 | — |
| 2012/13 | Coupe de la Ligue | Caen | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2011/12 | National 2 - Group D | Caen II | 13 | 13 | 1068 | 7 | — | 0 | 0 | — |
| 2011/12 | Ligue 1 | Caen | 13 | — | — | 0 | 0 | 1 | 0 | — |
| 2011/12 | Coupe de France | Caen | 1 | — | — | 1 | 0 | 0 | 0 | — |
| 2011/12 | Coupe de la Ligue | Caen | 3 | — | — | 1 | 0 | 0 | 0 | — |
| 2010/11 | National 1 | Fréjus St-Raphaël | 32 | 27 | 2297 | 7 | — | 5 | 1 | — |
| 2010/11 | Coupe de France | Fréjus St-Raphaël | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2009/10 | National 1 | Fréjus St-Raphaël | 30 | 21 | 1979 | 1 | — | 3 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
