Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Renaissance Berkane | 2025/26 | 4 | 0 | 0 |
| Raja Casablanca | 2018/19 – 2024/25 | 208 | 0 | 0 |
| Al-Wasl FC | 2024/25 | 2 | 0 | 0 |
| Morocco | 2013 – 2023 | 14 | 0 | — |
| Maghreb Fès | 2012/13 | 1 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 17 Jan 2025 | Raja Casablanca | Al Wasl | Free Transfer |
| 17 Jan 2025 | Raja Casablanca | Al-Wasl FC | Free Transfer |
| 26 Jan 2026 | Al-Wasl FC | Renaissance Berkane | Free agent |
| 8 Aug 2026 | Renaissance Berkane | CODM Meknès | Free agent |
| 9 Aug 2026 | Renaissance Berkane | CODM Meknès | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | CAF Champions League | Renaissance Berkane | 4 | 4 | 360 | 0 | 0 | 0 | 0 | 7.28 |
| 2024/25 | Botola Pro | Raja Casablanca | 10 | 10 | 900 | 0 | — | 0 | 0 | — |
| 2024/25 | AFC Champions League Elite | Al-Wasl FC | 2 | 2 | 180 | 0 | 0 | 0 | 0 | 6.80 |
| 2024/25 | CAF Champions League | Raja Casablanca | 9 | 9 | 810 | 0 | 0 | 0 | 0 | 6.97 |
| 2023/24 | Botola Pro | Raja Casablanca | 30 | 30 | 2700 | 0 | 0 | 3 | 0 | 7.00 |
| 2023/24 | Arab Club Champions Cup | Raja Casablanca | 3 | 3 | 270 | 0 | — | 0 | 0 | 6.90 |
| 2022/23 | Botola Pro | Raja Casablanca | 25 | 25 | 2250 | 0 | — | 4 | 0 | — |
| 2022/23 | CAF Champions League | Raja Casablanca | 8 | 8 | 720 | 0 | — | 1 | 0 | 7.28 |
| 2021/22 | Botola Pro | Raja Casablanca | 21 | 21 | 1890 | 0 | — | 1 | 0 | — |
| 2021/22 | CAF Super Cup | Raja Casablanca | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021/22 | CAF Champions League | Raja Casablanca | 5 | 5 | 450 | 0 | — | 0 | 0 | 7.30 |
| 2021/22 | Friendlies Clubs | Raja Casablanca | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2021 | Arab Cup | Morocco | 3 | 3 | 300 | 0 | — | 0 | 0 | — |
| 2020/21 | Botola Pro | Raja Casablanca | 29 | 29 | 2610 | 0 | — | 2 | 0 | — |
| 2020/21 | CAF Champions League | Raja Casablanca | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2020/21 | CAF Confederation Cup | Raja Casablanca | 12 | 12 | 1080 | 0 | — | 1 | 0 | 7.38 |
| 2020 | African Nations Championship | Morocco | 6 | 6 | 540 | 0 | — | 0 | 0 | — |
| 2019/20 | Botola Pro | Raja Casablanca | 25 | 25 | 2250 | 0 | — | 0 | 0 | — |
| 2019/20 | Arab Club Champions Cup | Raja Casablanca | 4 | 4 | 360 | 0 | — | 2 | 0 | — |
| 2019/20 | CAF Champions League | Raja Casablanca | 9 | 9 | 810 | 0 | — | 1 | 0 | 7.07 |
| 2018/19 | Arab Club Champions Cup | Raja Casablanca | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | CAF Super Cup | Raja Casablanca | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2018 | African Nations Championship | Morocco | 5 | 5 | 480 | 0 | — | 0 | 0 | — |
| 2018/19 | CAF Confederation Cup | Raja Casablanca | 12 | 12 | 1080 | 0 | — | 1 | 0 | — |
| 2012/13 | CAF Super Cup | Maghreb Fès | 1 | 1 | 60 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| Botola Pro (Morocco) | 2023/2024 | Winner |
| Botola Pro (Morocco) | 2019/2020 | Winner |
| Botola Pro (Morocco) | 2021/2022 | 2nd Place |
| Botola Pro (Morocco) | 2020/2021 | 2nd Place |
| Botola Pro (Morocco) | 2018/2019 | 2nd Place |
| Botola Pro (Morocco) | 2010/2011 | 2nd Place |
| Cup (Morocco) | 2023/2024 | Winner |
| Cup (Morocco) | 2017 | Winner |
| Cup (Morocco) | 2011/2012 | Winner |
| Cup (Morocco) | 2022/2023 | 2nd Place |
| Cup (Morocco) | 2010/2011 | 2nd Place |
| CAF African Nations Championship (Africa) | 2020 Cameroon | Winner |
| CAF African Nations Championship (Africa) | 2018 Morocco | Winner |
| CAF Confederation Cup (Africa) | 2020/2021 | Winner |
| CAF Confederation Cup (Africa) | 2011 | Winner |
| CAF Super Cup (Africa) | 2018/2019 | Winner |
| CAF Super Cup (Africa) | 2012 | Winner |
| CAF Super Cup (Africa) | 2021/2022 | 2nd Place |
| UAE-Qatar Super Shield (Asia) | 2025 | Winner |
| Arab Club Champions Cup (World) | 2019/2020 | Winner |
