Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Nantes | 2025/26 | 27 | 4 | 1 |
| Olympiacos | 2019/20 – 2024/25 | 218 | 93 | 5 |
| Apoel Nicosia | 2024/25 | 52 | 13 | 7 |
| Olympiakos Piraeus II | 2023/24 | 2 | 1 | — |
| Morocco | 2010 – 2020 | 21 | 11 | — |
| Al-Duhail SC | 2016/17 – 2019/20 | 89 | 102 | 3 |
| Granada CF | 2012/13 – 2015/16 | 134 | 45 | 2 |
| Al Hilal | 2011/12 – 2012/13 | 32 | 16 | — |
| Caen | 2008/09 – 2010/11 | 76 | 28 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 12 Jul 2024 | Olympiakos Piraeus | Apoel Nicosia | Free |
| 6 Jul 2019 | Al-Duhail SC | Olympiakos Piraeus | Free |
| 1 Sept 2016 | Granada CF | Al-Duhail SC | Free |
| 19 Jul 2012 | Al-Hilal Saudi FC | Granada CF | € 5M |
| 13 Jul 2011 | Caen | Al-Hilal Saudi FC | € 7.5M |
| 18 Jul 2025 | APOEL | Nantes | Transfer |
| 18 Jul 2025 | Apoel Nicosia | Nantes | Transfer |
| 16 Jul 2025 | Apoel Nicosia | Nantes | Free agent |
| 29 Jun 2026 | Nantes | El Arabi Youssef | Free agent |
| 31 Jul 2026 | Nantes | Marko | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | Coupe de France | Nantes | 2 | 1 | 114 | 1 | 1 | 0 | 0 | 6.90 |
| 2025/26 | Ligue 1 | Nantes | 25 | 11 | 979 | 3 | 0 | 0 | 0 | 6.59 |
| 2024/25 | 1. Division | Apoel Nicosia | 31 | 23 | 1949 | 13 | 1 | 4 | 0 | 7.28 |
| 2024/25 | UEFA Europa Conference League | Apoel Nicosia | 7 | 7 | 548 | — | 2 | 0 | 0 | 6.84 |
| 2024/25 | UEFA Europa League | Apoel Nicosia | 7 | 7 | 548 | — | 2 | 0 | 0 | 6.84 |
| 2024/25 | UEFA Champions League | Apoel Nicosia | 7 | 7 | 548 | — | 2 | 0 | 0 | 6.84 |
| 2023/24 | Super League 2 | Olympiakos Piraeus II | 2 | 2 | 172 | 1 | — | 0 | 0 | — |
| 2023/24 | Super League 1 | Olympiacos | 13 | 1 | 260 | 4 | 1 | 1 | 0 | 6.89 |
| 2023/24 | UEFA Europa League | Olympiacos | 6 | 1 | 180 | 1 | — | 0 | 0 | 7.10 |
| 2023/24 | UEFA Europa Conference League | Olympiacos | 6 | 0 | 52 | 1 | 0 | 0 | 0 | 6.70 |
| 2022/23 | Super League 1 | Olympiacos | 27 | 17 | 887 | 5 | 4 | 2 | 0 | 6.71 |
| 2022/23 | Cup | Olympiacos | 6 | 3 | 271 | 2 | — | 0 | 0 | — |
| 2022/23 | UEFA Europa League | Olympiacos | 8 | 5 | 419 | 2 | — | 1 | 0 | 6.60 |
| 2022/23 | UEFA Champions League | Olympiacos | 1 | 0 | 28 | 0 | — | 0 | 0 | — |
| 2021/22 | Super League 1 | Olympiacos | 34 | 21 | 2050 | 16 | — | 3 | 0 | — |
| 2021/22 | Cup | Olympiacos | 4 | 2 | 156 | 2 | — | 0 | 0 | — |
| 2021/22 | UEFA Champions League | Olympiacos | 3 | 1 | 146 | 1 | — | 0 | 0 | — |
| 2021/22 | UEFA Europa League | Olympiacos | 10 | 6 | 568 | 4 | — | 0 | 0 | 6.78 |
| 2020/21 | Super League 1 | Olympiacos | 33 | 24 | 2260 | 22 | — | 1 | 0 | — |
| 2020/21 | Cup | Olympiacos | 5 | 2 | 219 | 2 | — | 1 | 0 | — |
| 2020/21 | UEFA Champions League | Olympiacos | 7 | 6 | 548 | 1 | — | 0 | 0 | 6.91 |
| 2020/21 | UEFA Europa League | Olympiacos | 4 | 4 | 332 | 3 | — | 0 | 0 | 7.10 |
| 2020 | Friendlies | Morocco | 2 | 1 | 77 | 1 | — | 0 | 0 | — |
| 2019/20 | Super League 1 | Olympiacos | 34 | 30 | 2437 | 20 | — | 1 | 0 | — |
| 2019/20 | Cup | Olympiacos | 4 | 2 | 227 | 0 | — | 0 | 0 | — |
| 2019/20 | UEFA Europa League | Olympiacos | 4 | 4 | 374 | 2 | — | 1 | 0 | 6.93 |
| 2019/20 | UEFA Champions League | Olympiacos | 9 | 4 | 361 | 5 | — | 1 | 0 | 7.14 |
| 2019/20 | AFC Champions League | Al-Duhail SC | 6 | 6 | 527 | 4 | — | 0 | 0 | 7.08 |
| 2018/19 | Stars League | Al-Duhail SC | 22 | 20 | 1851 | 26 | — | 3 | 0 | — |
| 2018/19 | QSL Cup | Al-Duhail SC | 6 | 6 | 496 | 3 | — | 0 | 0 | — |
| 2018/19 | Club Friendlies | Al-Duhail SC | 1 | 1 | 85 | 0 | — | 0 | 0 | — |
| 2018/19 | AFC Champions League | Al-Duhail SC | 9 | 8 | 713 | 9 | 3 | 0 | 0 | 7.67 |
| 2018 | World Cup - Qualification Africa | Morocco | 3 | 3 | 196 | 1 | — | 0 | 0 | — |
| 2017/18 | Stars League | Al-Duhail SC | 20 | 20 | 1752 | 26 | — | 2 | 0 | — |
| 2017/18 | QSL Cup | Al-Duhail SC | 3 | 3 | 270 | 7 | — | 0 | 0 | — |
| 2017/18 | AFC Champions League | Al-Duhail SC | 4 | 3 | 270 | 3 | — | 1 | 0 | 7.30 |
| 2017 | Africa Cup of Nations | Morocco | 1 | 0 | 12 | 0 | — | 0 | 0 | — |
| 2016/17 | Stars League | Al-Duhail SC | 18 | 18 | 1598 | 24 | — | 2 | 0 | — |
| 2015/16 | La Liga | Granada CF | 35 | 27 | 2515 | 16 | 2 | 3 | 0 | 7.11 |
| 2015/16 | Copa del Rey | Granada CF | 3 | 2 | 177 | 1 | — | 1 | 0 | — |
| 2015 | Friendlies | Morocco | 1 | 1 | 66 | 0 | — | 0 | 0 | — |
| 2014/15 | La Liga | Granada CF | 28 | 24 | 1985 | 8 | — | 4 | 1 | — |
| 2014 | CAF World Cup Qualifiers | Morocco | 6 | 4 | 394 | 3 | — | 0 | 0 | — |
| 2014 | Friendlies | Morocco | 1 | 0 | 14 | 0 | — | 0 | 0 | — |
| 2013/14 | La Liga | Granada CF | 36 | 34 | 2793 | 12 | — | 5 | 0 | — |
| 2013 | CAF Africa Cup of Nations | Morocco | 3 | 1 | 153 | 1 | — | 1 | 0 | — |
| 2013 | Friendlies | Morocco | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2012/13 | La Liga | Granada CF | 31 | 23 | 1993 | 8 | — | 4 | 0 | — |
| 2012/13 | Copa del Rey | Granada CF | 1 | 1 | 68 | 0 | — | 0 | 0 | — |
| 2012/13 | King's Cup | Al Hilal | 4 | 4 | 344 | 0 | — | 0 | 0 | — |
| 2012/13 | AFC Champions League Elite | Al Hilal | 6 | 3 | 315 | 4 | — | 1 | 0 | — |
| 2012 | CAF Africa Cup of Nations | Morocco | 2 | 1 | 58 | 0 | — | 0 | 0 | — |
| 2011/12 | Saudi League | Al Hilal | 21 | 19 | 1670 | 12 | — | 1 | 0 | — |
| 2011/12 | Crown Prince Cup | Al Hilal | 1 | 0 | 26 | 0 | — | 0 | 0 | — |
| 2010/11 | Ligue 1 | Caen | 38 | 36 | 3267 | 17 | — | 3 | 0 | — |
| 2010/11 | Coupe de France | Caen | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2010 | Friendlies | Morocco | 1 | 0 | 19 | 0 | — | 0 | 0 | — |
| 2009/10 | Ligue 2 | Caen | 34 | 23 | 2104 | 11 | — | 1 | 0 | — |
| 2008/09 | Ligue 1 | Caen | 3 | 0 | 29 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
