Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Olympique Safi | 2025/26 | 9 | 4 | 1 |
| Hassania Agadir | 2023/24 – 2024/25 | 35 | 10 | 0 |
| Ittihad Tanger | 2019/20 – 2023/24 | 31 | 9 | — |
| Renaissance Berkane | 2021/22 – 2022/23 | 35 | 3 | — |
| Wydad AC | 2020/21 | 12 | 0 | — |
| Senica | 2018/19 – 2019/20 | 31 | 3 | — |
| Athletico Marseille | 2017/18 – 2018/19 | 13 | 0 | — |
| Le Pontet US | 2016/17 – 2017/18 | 15 | 0 | — |
| Hauts Lyonnais | 2016/17 | 1 | 0 | — |
| Saint-Louis Neuweg | 2015/16 | 13 | 0 | — |
| Louhans-Cuiseaux | 2014/15 | 23 | 6 | — |
| Angers SCO II | 2013/14 | 19 | 2 | — |
| Saint-Étienne II | 2010/11 – 2012/13 | 7 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 8 Sept 2023 | Ittihad Tanger | Hassania Agadir | — |
| 25 Jan 2023 | Renaissance Berkane | Ittihad Tanger | — |
| 12 Sept 2021 | Renaissance Berkane | Renaissance Berkane | — |
| 6 Nov 2020 | Ittihad Tanger | Wydad AC | — |
| 1 Jan 2020 | Senica | Ittihad Tanger | — |
| 1 Jan 2019 | Athletico Marseille | Senica | — |
| 3 Jan 2018 | Le Pontet US | Athletico Marseille | Free |
| 1 Aug 2025 | Hassania Agadir | Olympique Safi | Transfer |
| 31 Jul 2025 | Al Najaf | Olympique Safi | Transfer |
| 18 Jan 2025 | Hassania Agadir | Al Najaf | Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | CAF Confederation Cup | Olympique Safi | 9 | 9 | 768 | 4 | 1 | 3 | 0 | 7.27 |
| 2024/25 | Botola Pro | Hassania Agadir | 11 | 11 | 957 | 0 | — | 4 | 0 | — |
| 2023/24 | Botola Pro | Hassania Agadir | 24 | 23 | 2025 | 10 | 0 | 5 | 0 | 6.75 |
| 2022/23 | Botola Pro | Ittihad Tanger | 14 | 14 | 1205 | 5 | — | 5 | 0 | — |
| 2022/23 | Botola Pro | Renaissance Berkane | 9 | 5 | 391 | 0 | — | 3 | 0 | — |
| 2022/23 | CAF Super Cup | Renaissance Berkane | 1 | 1 | 76 | 1 | — | 0 | 0 | — |
| 2022/23 | CAF Confederation Cup | Renaissance Berkane | 3 | 2 | 209 | 0 | — | 1 | 0 | — |
| 2021/22 | Botola Pro | Renaissance Berkane | 16 | 14 | 1120 | 1 | — | 4 | 0 | — |
| 2021/22 | CAF Confederation Cup | Renaissance Berkane | 6 | 5 | 395 | 1 | — | 1 | 0 | 6.20 |
| 2020/21 | Botola Pro | Wydad AC | 7 | 2 | 254 | 0 | — | 1 | 0 | — |
| 2020/21 | CAF Champions League | Wydad AC | 5 | 2 | 198 | 0 | — | 1 | 0 | 6.87 |
| 2019/20 | Botola Pro | Ittihad Tanger | 17 | 17 | 1474 | 4 | — | 4 | 0 | — |
| 2019/20 | Super Liga | Senica | 15 | 15 | 1278 | 2 | — | 3 | 0 | — |
| 2019/20 | Cup | Senica | 1 | 1 | 62 | 0 | — | 0 | 0 | — |
| 2018/19 | Super Liga | Senica | 12 | 12 | 1051 | 1 | — | 4 | 0 | — |
| 2018/19 | Cup | Senica | 3 | 2 | 113 | 0 | — | 2 | 0 | — |
| 2017/18 | Ligue 3 | Athletico Marseille | 13 | 12 | 1027 | 0 | — | 7 | 0 | — |
| 2017/18 | National 3 | Le Pontet US | 10 | 9 | 801 | 0 | — | 2 | 0 | — |
| 2016/17 | National 2 - Group D | Le Pontet US | 5 | 4 | 339 | 0 | — | 3 | 0 | — |
| 2016/17 | Coupe de France | Hauts Lyonnais | 1 | 1 | 120 | 0 | — | 1 | 0 | — |
| 2015/16 | National 2 - Group D | Saint-Louis Neuweg | 13 | 9 | 846 | 0 | — | 1 | 0 | — |
| 2014/15 | National 3 | Louhans-Cuiseaux | 22 | 21 | 1815 | 5 | — | 4 | 0 | — |
| 2014/15 | Coupe de France | Louhans-Cuiseaux | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2013/14 | National 3 | Angers SCO II | 19 | 19 | 1636 | 2 | — | 9 | 0 | — |
| 2012/13 | National 2 - Group D | Saint-Étienne II | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2011/12 | National 2 - Group D | Saint-Étienne II | 6 | 3 | 263 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
