| Competition | Goals | Apps | Started | Minutes | Sub On | Sub Off | ||
|---|---|---|---|---|---|---|---|---|
| England | ||||||||
| Championship | 12 | 201 | 173 | 15,691' | 28 | 24 | 31 | 0 |
| League One | 5 | 95 | 79 | 7,160' | 16 | 19 | 11 | 0 |
| Premier League | 1 | 33 | 18 | 1,767' | 15 | 8 | 7 | 1 |
| League Two | 1 | 31 | 19 | 1,822' | 12 | 2 | 2 | 0 |
| FA Cup | 5 | 20 | 18 | 1,604' | 2 | 3 | 2 | 0 |
| National League | 0 | 16 | 9 | 891' | 7 | 2 | 1 | 0 |
| Carabao Cup | 3 | 11 | 8 | 787' | 3 | 1 | 1 | 0 |
| EFL Vertu Trophy | 0 | 7 | 6 | 424' | 1 | 3 | 1 | 0 |
| Total | 27 | 414 | 330 | 30,146' | 84 | 62 | 56 | 1 |
| Club | Season | League | National cup | League cup | Total | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Division | Apps | Gls | Apps | Gls | Apps | Gls | Apps | Gls | ||
Braintree Town | 2013/2014 | National League | 16 | 0 | - | - | - | - | 16 | 0 |
| 2014/2015 | - | - | - | - | - | - | - | - | - | |
| Total | 16 | 0 | - | - | - | - | 16 | 0 | ||
Hartlepool Utd | 2015/2016 | League Two | 3 | 0 | - | - | - | - | 3 | 0 |
| 2016/2017 | League Two | 25 | 1 | - | - | - | - | 25 | 1 | |
| Total | 28 | 1 | - | - | - | - | 28 | 1 | ||
Newport County | 2015/2016 | League Two | 3 | 0 | 1 | 0 | - | - | 4 | 0 |
| Total | 3 | 0 | 1 | 0 | - | - | 4 | 0 | ||
Brentford | 2015/2016 | - | - | - | - | - | 1 | 0 | 1 | 0 |
| Total | - | - | - | - | 1 | 0 | 1 | 0 | ||
Wigan Athletic | 2016/2017 | Championship | 1 | 0 | - | - | - | - | 1 | 0 |
| 2017/2018 | - | - | - | 1 | 0 | 2 | 1 | 3 | 1 | |
| Total | 1 | 0 | 1 | 0 | 2 | 1 | 4 | 1 | ||
Bury | 2017/2018 | League One | 22 | 1 | - | - | - | - | 22 | 1 |
| Total | 22 | 1 | - | - | - | - | 22 | 1 | ||
Shrewsbury Town | 2018/2019 | League One | 42 | 2 | 8 | 2 | 1 | 0 | 51 | 4 |
| 2019/2020 | League One | 31 | 2 | 11 | 2 | - | - | 42 | 4 | |
| Total | 73 | 4 | 19 | 4 | 1 | 0 | 93 | 8 | ||
Reading | 2020/2021 | Championship | 45 | 3 | - | - | 1 | 0 | 46 | 3 |
| 2021/2022 | Championship | 41 | 2 | 1 | 0 | - | - | 42 | 2 | |
| Total | 86 | 5 | 1 | 0 | 1 | 0 | 88 | 5 | ||
Stoke City | 2022/2023 | Championship | 32 | 4 | 3 | 1 | 1 | 0 | 36 | 5 |
| 2023/2024 | Championship | 37 | 1 | - | - | 3 | 2 | 40 | 3 | |
| 2024/2025 | Championship | 3 | 0 | - | - | 1 | 0 | 4 | 0 | |
| Total | 72 | 5 | 3 | 1 | 5 | 2 | 80 | 8 | ||
Burnley | 2024/2025 | Championship | 42 | 2 | 1 | 0 | - | - | 43 | 2 |
| 2025/2026 | Premier League | 33 | 1 | 1 | 0 | 1 | 0 | 35 | 1 | |
| Total | 75 | 3 | 2 | 0 | 1 | 0 | 78 | 3 | ||
| Career total | 376 | 19 | 27 | 5 | 11 | 3 | 414 | 27 | ||