| Season | Team | Competition | MP | G | A | Rating | ||
|---|---|---|---|---|---|---|---|---|
| 2024/2025 | SPAL | Serie C | 15 | 0 | 0 | 3 | 1 | – |
| 2023/2024 | CFR Cluj | Liga I | 9 | 1 | 0 | 4 | 0 | 7.0 |
| 2022/2023 | PAOK | Super League 1 | 23 | 0 | 0 | 3 | 1 | 6.5 |
| 2021/2022 | PAOK | Super League 1 | 14 | 0 | 0 | 4 | 0 | – |
| 2020/2021 | PAOK | Super League 1 | 26 | 2 | 0 | 9 | 1 | – |
| 2019/2020 | PAOK | Super League 1 | 23 | 1 | 0 | 7 | 0 | – |
| 2018/2019 | PAOK | Super League 1 | 17 | 1 | 0 | 4 | 0 | – |
| 2017/2018 | PAOK | Super League 1 | 18 | 1 | 0 | 3 | 0 | – |
| 2017/2018 | Empoli | Serie B | 0 | 0 | 0 | 0 | 0 | – |
| 2016/2017 | Empoli | Serie A | 15 | 3 | 1 | 5 | 0 | 6.9 |
| 2016/2017 | Napoli | Serie A | 5 | 0 | 1 | 0 | 0 | 6.9 |
| 2015/2016 | Napoli | Serie A | 20 | 1 | 2 | 2 | 0 | 6.8 |
| 2014/2015 | Torino | Serie A | 32 | 3 | 0 | 9 | 1 | – |
| 2013/2014 | Torino | Serie A | 29 | 5 | 0 | 6 | 0 | – |
| 2012/2013 | Napoli | Serie A | 7 | 0 | 0 | 0 | 0 | – |
| 2011/2012 | Brescia | Serie B | 38 | 7 | 0 | 4 | 0 | – |
| 2010/2011 | Südtirol | Serie C | 32 | 2 | 0 | 1 | 0 | – |
| 2010/2011 | Brescia | Serie A | 0 | 0 | 0 | 0 | 0 | – |
| 2008/2009 | Brescia | Serie B | 1 | 0 | 0 | 0 | 0 | – |
| Total | 324 | 27 | 4 | 64 | 4 | – | ||
| Date | From | To | Type | |
|---|---|---|---|---|
| 09 Mar 2024 | CFR | SPAL | Free | |
| - | Empoli | PAOK | € 1.3M | |
| - | Napoli | Empoli | N/A | |
| 07 Jan 2015 | Torino | Napoli | N/A | |
| 07 Nov 2013 | Napoli | Torino | Loan | |
| - | Brescia | Napoli | € 2M | |
| 09 Jan 2010 | Brescia | Südtirol | Loan |
O. El Kaddouri career history shows progression across clubs and competitions, including club timeline, national team appearances and overall career totals.