 
          | Season | League | Team | A | G | Assists | Y/YR/R | MP | 
|---|---|---|---|---|---|---|---|
| 2025 | Super League |  Dalian Zhixing | 21 | 5 | 3 | 0/0/0 | 1615 | 
| 2024 | League One |  Yunnan Yukun | 29 | 6 | 9 | 3/0/0 | 632 | 
| 2024 | FA Cup |  Yunnan Yukun | 1 | 0 | 0 | 0/0/0 | 90 | 
| 2024 | Club Friendlies |  FC Utrecht | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2023/2024 | KNVB Beker |  FC Utrecht | 1 | 0 | 0 | 0/0/0 | 16 | 
| 2023/2024 | Eredivisie |  FC Utrecht | 9 | 0 | 1 | 0/0/0 | 276 | 
| 2023 | Club Friendlies |  FC Utrecht | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2022/2023 | KNVB Beker |  FC Utrecht | 1 | 0 | 0 | 0/0/0 | 26 | 
| 2022/2023 | Eredivisie |  FC Utrecht | 7 | 1 | 0 | 1/0/0 | 247 | 
| 2022/2023 | Eredivisie |  Ajax | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2022/2023 | Super Cup |  Ajax | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2021/2022 | Champions League |  Ajax | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2021/2022 | Super Cup |  Ajax | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2021/2022 | Eredivisie |  Ajax | 2 | 0 | 0 | 0/0/0 | 25 | 
| 2021/2022 | KNVB Beker |  Ajax | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2021 | Club Friendlies |  Ajax | 5 | 2 | 2 | 0/0/0 | 271 | 
| 2020/2021 | Eredivisie |  Ajax | 22 | 5 | 5 | 0/0/0 | 964 | 
| 2020/2021 | Champions League |  Ajax | 5 | 0 | 0 | 0/0/0 | 191 | 
| 2020/2021 | KNVB Beker |  Ajax | 2 | 3 | 0 | 0/0/0 | 169 | 
| 2020/2021 | Europa League |  Ajax | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2020 | Club Friendlies |  Ajax | 6 | 5 | 0 | 0/0/0 | 434 | 
| 2019/2020 | Eredivisie |  Ajax | 2 | 1 | 1 | 0/0/0 | 150 | 
| 2019/2020 | Champions League |  Ajax | 1 | 0 | 0 | 0/0/0 | 45 | 
| 2019 | Club Friendlies |  Ajax | 3 | 0 | 2 | 1/0/0 | 136 | 
| 2019 | Florida Cup |  Ajax | 1 | 1 | 0 | 0/0/0 | 90 | 
| 2018/2019 | KNVB Beker |  Ajax | 5 | 3 | 1 | 0/0/0 | 266 | 
| 2018/2019 | Eredivisie |  Ajax | 12 | 1 | 2 | 1/0/0 | 387 | 
| 2018/2019 | Champions League |  Ajax | 3 | 0 | 0 | 0/0/0 | 22 | 
| 2018 | Club Friendlies |  Ajax | 3 | 0 | 0 | 1/0/0 | 203 | 
| 2017/2018 | KNVB Beker |  FC Utrecht | 1 | 1 | 0 | 0/0/0 | 74 | 
| 2017/2018 | Europa League |  FC Utrecht | 6 | 2 | 0 | 3/0/0 | 540 | 
| 2017/2018 | Eredivisie |  FC Utrecht | 32 | 15 | 9 | 8/0/0 | 2755 | 
| 2016/2017 | Eerste Divisie |  Jong Utrecht | 2 | 0 | 0 | 0/0/0 | 166 | 
| 2016/2017 | KNVB Beker |  FC Utrecht | 1 | 0 | 0 | 0/0/0 | 4 | 
| 2016/2017 | Eredivisie |  FC Utrecht | 18 | 3 | 3 | 2/0/0 | 1030 | 
| 2015/2016 | Championship |  Fulham | 2 | 0 | 0 | 0/0/0 | 21 | 
| 2014/2015 | KNVB Beker |  Vitesse Arnhem | 2 | 1 | 0 | 1/0/0 | 0 | 
| 2014/2015 | Eredivisie |  Vitesse Arnhem | 33 | 9 | 5 | 5/0/0 | 2522 | 
| 2013/2014 | Eredivisie |  Vitesse Arnhem | 18 | 3 | 0 | 2/0/0 | 1041 | 
| 2012/2013 | Primera Liga |  Sporting CP | 19 | 2 | 0 | 1/1/0 | 1052 | 
| 2012/2013 | Portuguese League Cup |  Sporting CP | 2 | 0 | 0 | 0/0/0 | 0 | 
| 2012/2013 | Europa League |  Sporting CP | 6 | 1 | 0 | 2/0/0 | 325 | 
| 2011/2012 | KNVB Beker |  PSV | 6 | 5 | 0 | 2/0/0 | 0 | 
| 2011/2012 | Europa League |  PSV | 10 | 2 | 2 | 0/0/0 | 0 | 
| 2011/2012 | Eredivisie |  PSV | 32 | 6 | 7 | 6/0/0 | 2301 | 
| 2010/2011 | Europa League |  PSV | 2 | 1 | 0 | 0/0/0 | 101 | 
| 2010/2011 | Eredivisie |  PSV | 7 | 0 | 1 | 1/0/0 | 469 | 
| 2010/2011 | KNVB Beker |  PSV | 3 | 0 | 0 | 0/0/0 | 0 | 
| 2009/2010 | Eredivisie |  PSV | 6 | 2 | 0 | 0/0/0 | 270 | 
| Total: | 349 | 86 | 53 | 40/1/0 | 18926 | 
| Season | League | Team | A | G | Assists | Y/YR/R | MP | 
|---|---|---|---|---|---|---|---|
| 2019 | Africa Cup of Nations Qualifications |  Morocco | 1 | 0 | 0 | 0/0/0 | 25 | 
| 2018 | Friendly International |  Morocco | 1 | 0 | 0 | 0/0/0 | 46 | 
| Total: | 2 | 0 | 0 | 0/0/0 | 71 | 
| From | To | Date | Amount | 
|---|---|---|---|
|  Dalian Zhixing |  Yunnan Yukun | 09/01/2025 | Free | 
|  Yunnan Yukun |  FC Utrecht | 28/02/2024 | Free | 
|  Ajax |  FC Utrecht | 09/06/2018 | 5.5M € | 
|  FC Utrecht |  Sporting CP | 05/01/2017 | Free | 
|  Sporting CP |  Fulham | 01/07/2016 | N/a | 
|  Fulham |  Sporting CP | 01/02/2016 | Loan | 
|  Sporting CP II |  Sporting CP | 01/07/2015 | N/a | 
|  Vitesse Arnhem |  Sporting CP | 09/01/2014 | Loan | 
|  Sporting CP |  PSV | 26/07/2012 | 1M € |