Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Anorthosis | 2025/26 | 24 | 0 | 0 |
| Panserraikos | 2023/24 – 2024/25 | 54 | 1 | 1 |
| Górnik | 2022/23 – 2023/24 | 23 | 2 | — |
| Willem II | 2021/22 | 14 | 0 | — |
| Utrecht | 2018/19 – 2020/21 | 28 | 1 | 1 |
| Basel | 2019/20 | 11 | 0 | 1 |
| Grasshoppers | 2016/17 – 2017/18 | 57 | 3 | — |
| Rubin | 2015/16 – 2016/17 | 17 | 1 | 1 |
| Sweden | 2015 – 2016 | 3 | 0 | — |
| Djurgården | 2011/12 – 2015/16 | 144 | 9 | — |
| Sweden U19 | 2012 | 3 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 14 Aug 2023 | Gornik Zabrze | Panserraikos | Free |
| 27 Sept 2022 | Willem II | Gornik Zabrze | Free |
| 1 Jul 2021 | Utrecht | Willem II | Loan |
| 1 Jul 2020 | FC Basel 1893 | Utrecht | — |
| 2 Sept 2019 | Utrecht | FC Basel 1893 | Loan |
| 30 Jul 2018 | Rubin | Utrecht | Free |
| 1 Jul 2018 | Grasshoppers | Rubin | — |
| 27 Jan 2017 | Rubin | Grasshoppers | Loan |
| 4 Feb 2016 | Djurgardens IF | Rubin | € 1.1M |
| 10 Sept 2025 | Panserraikos | Anorthosis | Free Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | 1. Division | Anorthosis | 24 | 20 | 995 | 0 | 0 | 2 | 0 | 6.78 |
| 2024/25 | Super League 1 | Panserraikos | 22 | 22 | 1737 | — | 1 | 3 | 0 | 6.91 |
| 2023/24 | Super League 1 | Panserraikos | 30 | 29 | 2650 | 1 | — | 2 | 1 | 6.70 |
| 2023/24 | Cup | Panserraikos | 2 | 0 | 41 | 0 | — | 0 | 0 | — |
| 2022/23 | Ekstraklasa | Górnik | 21 | 19 | 1770 | 2 | — | 3 | 0 | 7.01 |
| 2022/23 | Cup | Górnik | 2 | 2 | 210 | 0 | — | 1 | 0 | — |
| 2021/22 | Eredivisie | Willem II | 13 | 8 | 745 | 0 | — | 0 | 1 | 6.58 |
| 2021/22 | KNVB Beker | Willem II | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020/21 | Eredivisie | Utrecht | 9 | 4 | 415 | 0 | — | 0 | 0 | 6.73 |
| 2020/21 | Friendlies Clubs | Utrecht | 1 | 1 | 61 | 0 | — | 0 | 0 | — |
| 2019/20 | Super League | Basel | 8 | 5 | 575 | 0 | 1 | 2 | 0 | 6.81 |
| 2019/20 | Eredivisie | Utrecht | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.45 |
| 2019/20 | Schweizer Cup | Basel | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2019/20 | UEFA Europa League | Basel | 2 | 2 | 180 | 0 | — | 0 | 0 | 7.05 |
| 2019/20 | UEFA Europa League | Utrecht | 2 | 2 | 210 | 0 | — | 0 | 0 | 7.05 |
| 2018/19 | Eredivisie | Utrecht | 13 | 10 | 973 | 1 | 1 | 0 | 0 | 6.92 |
| 2018/19 | KNVB Beker | Utrecht | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2017/18 | Super League | Grasshoppers | 35 | 35 | 3150 | 2 | — | 6 | 0 | — |
| 2017/18 | Schweizer Pokal | Grasshoppers | 4 | 4 | 390 | 0 | — | 0 | 0 | — |
| 2016/17 | Super League | Grasshoppers | 18 | 18 | 1620 | 1 | — | 2 | 0 | — |
| 2016/17 | Premier League | Rubin | 4 | 3 | 273 | 0 | 1 | 0 | 0 | 6.65 |
| 2016/17 | Cup | Rubin | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016 | Friendlies | Sweden | 2 | 2 | 173 | 0 | — | 0 | 0 | — |
| 2015/16 | Premier League | Rubin | 12 | 12 | 1080 | 1 | — | 1 | 0 | 7.03 |
| 2015/16 | Allsvenskan | Djurgården | 29 | 29 | 2610 | 2 | — | 3 | 0 | — |
| 2015/16 | Svenska Cupen | Djurgården | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2015 | Friendlies | Sweden | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2014/15 | Allsvenskan | Djurgården | 30 | 30 | 2700 | 2 | — | 0 | 0 | — |
| 2014/15 | Svenska Cupen | Djurgården | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2013/14 | Allsvenskan | Djurgården | 29 | 28 | 2599 | 2 | — | 1 | 0 | — |
| 2013/14 | Svenska Cupen | Djurgården | 4 | 4 | 360 | 1 | — | 0 | 0 | — |
| 2012/13 | Allsvenskan | Djurgården | 23 | 17 | 1532 | 1 | — | 0 | 0 | — |
| 2012/13 | Svenska Cupen | Djurgården | 6 | 5 | 510 | 0 | — | 0 | 0 | — |
| 2012 | UEFA U19 Championship | Sweden U19 | 3 | 3 | 270 | 0 | — | 1 | 0 | — |
| 2011/12 | Allsvenskan | Djurgården | 18 | 11 | 1108 | 0 | — | 0 | 0 | — |
| 2011/12 | Svenska Cupen | Djurgården | 1 | 0 | 15 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
