| Competition | Goals | Apps | Started | Minutes | Sub On | Sub Off | ||
|---|---|---|---|---|---|---|---|---|
| England | ||||||||
| League One | 44 | 270 | 202 | 18,114' | 68 | 89 | 32 | 2 |
| Championship | 9 | 74 | 42 | 3,700' | 32 | 36 | 12 | 0 |
| FA Cup | 3 | 25 | 13 | 1,190' | 12 | 9 | 4 | 0 |
| League Two | 5 | 23 | 20 | 1,675' | 3 | 8 | 3 | 0 |
| Premier League | 0 | 18 | 12 | 929' | 6 | 12 | 1 | 0 |
| EFL Vertu Trophy | 7 | 15 | 12 | 1,041' | 3 | 5 | 0 | 0 |
| Carabao Cup | 0 | 12 | 5 | 563' | 7 | 1 | 1 | 0 |
| National League | 1 | 6 | 5 | 409' | 1 | 5 | 0 | 0 |
| Scotland | ||||||||
| Premiership | 0 | 13 | 7 | 576' | 6 | 6 | 1 | 0 |
| League Cup | 0 | 4 | 2 | 173' | 2 | 1 | 0 | 0 |
| Europe | ||||||||
| UEFA Europa League | 1 | 4 | 1 | 80' | 3 | 1 | 0 | 0 |
| Total | 70 | 464 | 321 | 28,450' | 143 | 173 | 54 | 2 |
| Club | Season | League | National cup | League cup | Europe | Total | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Division | Apps | Gls | Apps | Gls | Apps | Gls | Apps | Gls | Apps | Gls | ||
Forest Green Rovers | 2012/2013 | National League | 6 | 1 | - | - | - | - | - | - | 6 | 1 |
| Total | 6 | 1 | - | - | - | - | - | - | 6 | 1 | ||
Bristol City | 2012/2013 | Championship | 7 | 0 | - | - | - | - | - | - | 7 | 0 |
| 2013/2014 | League One | 20 | 1 | 3 | 0 | - | - | - | - | 23 | 1 | |
| 2014/2015 | League One | 2 | 0 | 3 | 1 | 1 | 0 | - | - | 6 | 1 | |
| 2015/2016 | Championship | 14 | 1 | 2 | 0 | 1 | 0 | - | - | 17 | 1 | |
| Total | 43 | 2 | 8 | 1 | 2 | 0 | - | - | 53 | 3 | ||
Oxford Utd | 2014/2015 | League Two | 9 | 1 | - | - | - | - | - | - | 9 | 1 |
| Total | 9 | 1 | - | - | - | - | - | - | 9 | 1 | ||
Cheltenham Town | 2014/2015 | League Two | 14 | 4 | - | - | - | - | - | - | 14 | 4 |
| Total | 14 | 4 | - | - | - | - | - | - | 14 | 4 | ||
Fleetwood Town | 2015/2016 | League One | 14 | 5 | - | - | - | - | - | - | 14 | 5 |
| 2016/2017 | League One | 12 | 0 | - | - | - | - | - | - | 12 | 0 | |
| 2017/2018 | League One | 28 | 2 | 9 | 3 | 1 | 0 | - | - | 38 | 5 | |
| 2018/2019 | League One | 39 | 7 | 4 | 1 | 1 | 0 | - | - | 44 | 8 | |
| 2019/2020 | League One | 36 | 2 | 6 | 2 | 1 | 0 | - | - | 43 | 4 | |
| 2020/2021 | League One | 33 | 5 | 2 | 1 | 3 | 0 | - | - | 38 | 6 | |
| Total | 162 | 21 | 21 | 7 | 6 | 0 | - | - | 189 | 28 | ||
Aberdeen | 2016/2017 | Premiership | 13 | 0 | - | - | 4 | 0 | 4 | 1 | 21 | 1 |
| Total | 13 | 0 | - | - | 4 | 0 | 4 | 1 | 21 | 1 | ||
Ipswich Town | 2021/2022 | League One | 37 | 12 | 3 | 1 | - | - | - | - | 40 | 13 |
| 2022/2023 | League One | 42 | 9 | 5 | 1 | 1 | 0 | - | - | 48 | 10 | |
| 2023/2024 | Championship | 35 | 6 | 2 | 0 | 1 | 0 | - | - | 38 | 6 | |
| 2024/2025 | Premier League | 18 | 0 | - | - | - | - | - | - | 18 | 0 | |
| 2025/2026 | Championship | 18 | 2 | 1 | 0 | - | - | - | - | 19 | 2 | |
| Total | 150 | 29 | 11 | 2 | 2 | 0 | - | - | 163 | 31 | ||
Leicester City | 2026/2027 | League One | 7 | 1 | - | - | 2 | 0 | - | - | 9 | 1 |
| Total | 7 | 1 | - | - | 2 | 0 | - | - | 9 | 1 | ||
| Career total | 404 | 59 | 40 | 10 | 16 | 0 | 4 | 1 | 464 | 70 | ||