Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Wigan | 2015/16 – 2026/27 | 257 | 18 | 24 |
| Bradford | 2025/26 | 50 | 0 | 5 |
| Al Qadsiah | 2023/24 – 2024/25 | 1 | 0 | — |
| AGF | 2024/25 | 18 | 0 | 0 |
| Sunderland | 2018/19 – 2020/21 | 137 | 13 | 4 |
| Tranmere | 2010/11 – 2014/15 | 128 | 19 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 2 Sept 2024 | Al-Qadisiyah FC | Aarhus | Free |
| 12 Jul 2023 | Wigan | Al-Qadisiyah FC | Free |
| 1 Jul 2021 | Sunderland | Wigan | Free |
| 1 Jan 2019 | Wigan | Sunderland | — |
| 10 Aug 2018 | Wigan | Sunderland | Loan |
| 3 Jul 2015 | Tranmere | Wigan | Free |
| 30 Jun 2025 | Aarhus | Bradford | Free agent |
| 31 Aug 2024 | Al Qadsia | Aarhus | Free agent |
| 30 Jun 2026 | Bradford | Wigan | Transfer |
| 29 Jun 2026 | Bradford | Wigan | Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Wigan | 1 | 1 | 95 | 0 | 0 | 0 | 0 | 7.90 |
| 2026/27 | EFL Trophy | Wigan | 2 | 2 | 135 | 0 | 0 | 1 | 0 | 7.40 |
| 2026/27 | League One | Wigan | 8 | 8 | 720 | 1 | 1 | 2 | 0 | 7.21 |
| 2025/26 | League Cup | Bradford | 2 | 2 | 187 | 0 | 0 | 0 | 0 | 6.75 |
| 2025/26 | EFL Trophy | Bradford | 3 | 2 | 165 | 0 | 0 | 0 | 0 | 7.10 |
| 2025/26 | League One | Bradford | 45 | 45 | 4052 | 0 | 5 | 15 | 0 | 7.11 |
| 2024/25 | Superliga | AGF | 14 | 0 | 226 | 0 | 0 | 1 | 0 | 6.79 |
| 2024/25 | DBU Pokalen | AGF | 4 | 2 | 172 | 0 | — | 0 | 0 | — |
| 2023/24 | King's Cup | Al Qadsiah | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2022/23 | Championship | Wigan | 45 | 45 | 4027 | 1 | 3 | 8 | 0 | 6.97 |
| 2022/23 | FA Cup | Wigan | 2 | 2 | 180 | 0 | — | 1 | 0 | — |
| 2021/22 | League One | Wigan | 44 | 44 | 3948 | 3 | 12 | 11 | 0 | 7.28 |
| 2021/22 | EFL Trophy | Wigan | 3 | 2 | 129 | 1 | 2 | 0 | 0 | 8.00 |
| 2021/22 | League Cup | Wigan | 2 | 2 | 158 | 0 | — | 1 | 0 | 6.95 |
| 2021/22 | FA Cup | Wigan | 5 | 5 | 436 | 1 | — | 1 | 0 | 7.30 |
| 2020/21 | League One | Sunderland | 44 | 39 | 3450 | 5 | 3 | 4 | 0 | 7.00 |
| 2020/21 | FA Cup | Sunderland | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2020/21 | EFL Trophy | Sunderland | 7 | 7 | 620 | 1 | — | 1 | 0 | 7.14 |
| 2020/21 | League Cup | Sunderland | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.20 |
| 2019/20 | League One | Sunderland | 31 | 30 | 2644 | 2 | 1 | 6 | 0 | 6.84 |
| 2019/20 | League Cup | Sunderland | 4 | 3 | 269 | 1 | — | 0 | 0 | 6.87 |
| 2019/20 | EFL Trophy | Sunderland | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2019/20 | FA Cup | Sunderland | 2 | 2 | 210 | 0 | — | 0 | 0 | — |
| 2018/19 | League One | Sunderland | 38 | 32 | 2696 | 4 | — | 5 | 3 | 6.70 |
| 2018/19 | Championship | Wigan | 1 | 0 | 20 | 0 | — | 0 | 0 | 6.50 |
| 2018/19 | EFL Trophy | Sunderland | 4 | 3 | 306 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Sunderland | 3 | 2 | 199 | 0 | — | 0 | 0 | 6.70 |
| 2018/19 | League Cup | Sunderland | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.00 |
| 2017/18 | League One | Wigan | 40 | 29 | 2759 | 5 | — | 3 | 0 | — |
| 2017/18 | League Cup | Wigan | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Wigan | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017/18 | FA Cup | Wigan | 7 | 7 | 630 | 0 | — | 2 | 0 | 7.25 |
| 2017/18 | Club Friendlies | Wigan | 1 | 1 | 61 | 0 | — | 0 | 0 | — |
| 2016/17 | Championship | Wigan | 42 | 40 | 3603 | 0 | 6 | 9 | 0 | 6.87 |
| 2016/17 | League Cup | Wigan | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | FA Cup | Wigan | 2 | 2 | 180 | 0 | — | 1 | 0 | 6.80 |
| 2016/17 | Club Friendlies | Wigan | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2015/16 | League One | Wigan | 44 | 43 | 3726 | 6 | — | 10 | 0 | — |
| 2015/16 | League Cup | Wigan | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2015/16 | EFL Trophy | Wigan | 2 | 2 | 180 | 0 | — | 1 | 0 | — |
| 2015/16 | FA Cup | Wigan | 1 | 0 | 29 | 0 | — | 0 | 0 | — |
| 2014/15 | League Two | Tranmere | 45 | 45 | 3919 | 7 | — | 8 | 0 | — |
| 2014/15 | League Cup | Tranmere | 1 | 0 | 6 | 0 | — | 0 | 0 | — |
| 2014/15 | EFL Trophy | Tranmere | 3 | 3 | 270 | 3 | — | 0 | 0 | — |
| 2014/15 | FA Cup | Tranmere | 4 | 4 | 360 | 3 | — | 1 | 0 | — |
| 2013/14 | League One | Tranmere | 34 | 28 | 2623 | 2 | — | 6 | 0 | — |
| 2013/14 | EFL Trophy | Tranmere | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2013/14 | League Cup | Tranmere | 2 | 2 | 210 | 0 | — | 0 | 0 | — |
| 2012/13 | League One | Tranmere | 27 | 25 | 2256 | 3 | — | 5 | 0 | — |
| 2012/13 | EFL Trophy | Tranmere | 1 | 1 | 75 | 0 | — | 0 | 0 | — |
| 2012/13 | League Cup | Tranmere | 1 | 0 | 8 | 0 | — | 0 | 0 | — |
| 2012/13 | FA Cup | Tranmere | 3 | 1 | 184 | 1 | — | 0 | 0 | — |
| 2011/12 | League One | Tranmere | 4 | 2 | 167 | 0 | — | 1 | 0 | — |
| 2011/12 | EFL Trophy | Tranmere | 2 | 0 | 28 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Suspended | 27 Nov 2019 | 8 Dec 2019 | 11 |
| Suspended | 7 Oct 2018 | 4 Nov 2018 | 28 |
| Suspended | 2 Sept 2018 | 23 Sept 2018 | 21 |
| Suspended | 23 Oct 2016 | 30 Oct 2016 | 7 |
| Suspended | 2 Nov 2013 | 10 Nov 2013 | 8 |
Trophies
| Competition | Season | Place |
|---|---|---|
| Division 1 (Saudi-Arabia) | 2023/2024 | Winner |
| League One (England) | 2021/2022 | Winner |
| League One (England) | 2017/2018 | Winner |
| League One (England) | 2015/2016 | Winner |
| EFL Trophy (England) | 2020/2021 | Winner |
| EFL Trophy (England) | 2018/2019 | 2nd Place |
