| Competition | Goals | Apps | Started | Minutes | Sub On | Sub Off | ||
|---|---|---|---|---|---|---|---|---|
| England | ||||||||
| Championship | 19 | 225 | 193 | 17,572' | 32 | 9 | 22 | 0 |
| League One | 4 | 51 | 43 | 3,980' | 8 | 1 | 6 | 0 |
| Premier League | 3 | 35 | 33 | 2,933' | 2 | 1 | 3 | 1 |
| FA Cup | 1 | 6 | 6 | 552' | 0 | 0 | 2 | 0 |
| Carabao Cup | 2 | 5 | 5 | 429' | 0 | 1 | 0 | 0 |
| League Two | 0 | 5 | 5 | 386' | 0 | 1 | 1 | 0 |
| National League | 1 | 3 | 3 | 254' | 0 | 1 | 1 | 0 |
| FA Trophy | 0 | 1 | 1 | 90' | 0 | 0 | 0 | 0 |
| EFL Vertu Trophy | 0 | 1 | 1 | 90' | 0 | 0 | 0 | 0 |
| Total | 30 | 332 | 290 | 26,286' | 42 | 14 | 35 | 1 |
| Club | Season | League | National cup | League cup | Total | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Division | Apps | Gls | Apps | Gls | Apps | Gls | Apps | Gls | ||
Charlton Athletic | 2012/2013 | - | - | - | - | - | - | - | - | - |
| Total | - | - | - | - | - | - | - | - | ||
Dartford | 2012/2013 | National League | 3 | 1 | 1 | 0 | - | - | 4 | 1 |
| Total | 3 | 1 | 1 | 0 | - | - | 4 | 1 | ||
Cardiff City | 2014/2015 | Championship | - | - | - | - | - | - | - | - |
| 2015/2016 | - | - | - | - | - | - | - | - | - | |
| 2016/2017 | Championship | - | - | - | - | - | - | - | - | |
| Total | - | - | - | - | - | - | - | - | ||
Arsenal | 2014/2015 | - | - | - | - | - | - | - | - | - |
| Total | - | - | - | - | - | - | - | - | ||
AFC Wimbledon | 2015/2016 | League Two | 5 | 0 | - | - | - | - | 5 | 0 |
| Total | 5 | 0 | - | - | - | - | 5 | 0 | ||
Crewe Alexandra | 2015/2016 | League One | 13 | 0 | - | - | - | - | 13 | 0 |
| Total | 13 | 0 | - | - | - | - | 13 | 0 | ||
Rotherham Utd | 2016/2017 | Championship | 17 | 1 | - | - | - | - | 17 | 1 |
| 2017/2018 | League One | 38 | 4 | 2 | 0 | 2 | 1 | 42 | 5 | |
| 2018/2019 | Championship | 46 | 7 | 1 | 0 | 2 | 1 | 49 | 8 | |
| Total | 101 | 12 | 3 | 0 | 4 | 2 | 108 | 14 | ||
West Bromwich Albion | 2019/2020 | Championship | 43 | 5 | 1 | 0 | 1 | 0 | 45 | 5 |
| 2020/2021 | Premier League | 33 | 2 | 1 | 1 | - | - | 34 | 3 | |
| 2021/2022 | Championship | 31 | 1 | - | - | - | - | 31 | 1 | |
| 2022/2023 | Championship | 22 | 2 | 2 | 0 | - | - | 24 | 2 | |
| 2023/2024 | Championship | 27 | 2 | - | - | - | - | 27 | 2 | |
| 2024/2025 | Championship | 15 | 0 | - | - | - | - | 15 | 0 | |
| Total | 171 | 12 | 4 | 1 | 1 | 0 | 176 | 13 | ||
Hull City | 2025/2026 | Championship | 24 | 1 | - | - | - | - | 24 | 1 |
| 2026/2027 | Premier League | 2 | 1 | - | - | - | - | 2 | 1 | |
| Total | 26 | 2 | - | - | - | - | 26 | 2 | ||
| Career total | 319 | 27 | 8 | 1 | 5 | 2 | 332 | 30 | ||