 
          | Season | League | Team | A | G | Assists | Y/YR/R | MP | 
|---|---|---|---|---|---|---|---|
| 2024/2025 | QSL Cup |  Umm Salal | 3 | 0 | 4 | 1/0/0 | 180 | 
| 2024/2025 | Qatar Stars League |  Umm Salal | 19 | 6 | 7 | 4/0/0 | 1687 | 
| 2023/2024 | Emir Cup |  Umm Salal | 1 | 1 | 0 | 0/0/0 | 15 | 
| 2023/2024 | Qatar Stars League |  Umm Salal | 19 | 5 | 8 | 4/0/1 | 1637 | 
| 2022/2023 | Ligue 2 |  Saint-Étienne | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2022/2023 | Eredivisie |  NEC Nimègue | 25 | 6 | 9 | 7/0/1 | 2152 | 
| 2022/2023 | KNVB Beker |  NEC Nimègue | 3 | 1 | 3 | 1/0/0 | 238 | 
| 2022 | Club Friendlies |  NEC Nimègue | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2021/2022 | KNVB Beker |  Vitesse Arnhem | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2021/2022 | Europa Conference League |  Vitesse Arnhem | 3 | 1 | 0 | 1/0/0 | 112 | 
| 2021/2022 | Süper Lig |  Göztepe | 5 | 0 | 0 | 0/0/0 | 235 | 
| 2021/2022 | Eredivisie |  Vitesse Arnhem | 4 | 0 | 0 | 2/0/0 | 207 | 
| 2020/2021 | Eredivisie |  Vitesse Arnhem | 29 | 7 | 9 | 8/1/0 | 2416 | 
| 2020/2021 | KNVB Beker |  Vitesse Arnhem | 5 | 1 | 3 | 2/0/0 | 414 | 
| 2020 | Club Friendlies |  Vitesse Arnhem | 1 | 4 | 1 | 0/0/0 | 83 | 
| 2019/2020 | KNVB Beker |  Vitesse Arnhem | 3 | 1 | 1 | 0/0/0 | 179 | 
| 2019/2020 | Eredivisie |  Vitesse Arnhem | 17 | 5 | 4 | 5/0/0 | 1347 | 
| 2018/2019 | Eredivisie |  FC Utrecht | 15 | 1 | 3 | 3/0/0 | 1146 | 
| 2018/2019 | KNVB Beker |  FC Utrecht | 2 | 0 | 0 | 1/0/0 | 153 | 
| 2017/2018 | Ligue 1 Uber Eats |  Saint-Étienne | 6 | 0 | 1 | 1/0/0 | 205 | 
| 2017/2018 | La Liga |  Las Palmas | 10 | 0 | 0 | 1/0/0 | 574 | 
| 2017/2018 | Segunda B - Group 1 |  Las Palmas | 6 | 0 | 0 | 1/0/0 | 409 | 
| 2016/2017 | Europa League |  Saint-Étienne | 10 | 1 | 0 | 2/0/0 | 296 | 
| 2016/2017 | Coupe de la Ligue |  Saint-Étienne | 1 | 0 | 0 | 0/0/0 | 12 | 
| 2016/2017 | Ligue 1 Uber Eats |  Saint-Étienne | 17 | 1 | 1 | 3/1/0 | 1284 | 
| 2015/2016 | Europa League |  Saint-Étienne | 2 | 0 | 0 | 2/0/0 | 150 | 
| 2015/2016 | Ligue 1 Uber Eats |  Saint-Étienne | 10 | 2 | 1 | 2/0/0 | 0 | 
| 2015/2016 | Eredivisie |  Heracles Almelo | 11 | 7 | 3 | 5/0/0 | 868 | 
| 2015/2016 | KNVB Beker |  Heracles Almelo | 2 | 2 | 0 | 2/0/0 | 0 | 
| 2014/2015 | KNVB Beker |  Heracles Almelo | 3 | 5 | 0 | 0/0/0 | 0 | 
| 2014/2015 | Eredivisie |  Heracles Almelo | 19 | 5 | 4 | 2/1/0 | 1647 | 
| 2013/2014 | Eredivisie |  Heracles Almelo | 23 | 4 | 1 | 4/0/0 | 938 | 
| 2012/2013 | Europa League |  SC Heerenveen | 3 | 0 | 0 | 0/0/0 | 207 | 
| 2012/2013 | Eredivisie |  SC Heerenveen | 8 | 0 | 0 | 2/0/0 | 292 | 
| Total: | 285 | 66 | 63 | 66/3/2 | 19083 | 
| Season | League | Team | A | G | Assists | Y/YR/R | MP | 
|---|---|---|---|---|---|---|---|
| 2021 | Africa Cup of Nations Qualifications |  Morocco | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2019 | Africa Cup of Nations Qualifications |  Morocco | 1 | 2 | 0 | 0/0/0 | 90 | 
| 2018 | World Cup Qualification Africa |  Morocco | 4 | 0 | 0 | 0/0/0 | 193 | 
| 2017 | Friendly International |  Morocco | 1 | 4 | 0 | 0/0/0 | 90 | 
| 2017 | Euro U21 |  Netherlands U21 | 2 | 0 | 0 | 0/0/0 | 42 | 
| 2016 | Friendly International |  Morocco | 1 | 0 | 0 | 0/0/0 | 61 | 
| Total: | 9 | 6 | 0 | 0/0/0 | 476 | 
| From | To | Date | Amount | 
|---|---|---|---|
|  Umm Salal |  NEC Nimègue | 01/07/2023 | N/a | 
|  NEC Nimègue |  Göztepe | 04/07/2022 | Free | 
|  Göztepe |  Vitesse Arnhem | 12/01/2022 | Free | 
|  Vitesse Arnhem |  Saint-Étienne | 12/07/2019 | N/a | 
|  FC Utrecht |  Saint-Étienne | 12/08/2018 | Loan | 
|  Saint-Étienne |  Las Palmas | 31/01/2018 | N/a | 
|  Las Palmas |  Saint-Étienne | 01/09/2017 | Loan | 
|  Saint-Étienne |  Heracles Almelo | 12/01/2016 | N/a | 
|  Heracles Almelo |  SC Heerenveen | 16/07/2013 | Free |