Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Rangers | 2023/24 – 2025/26 | 273 | 0 | 1 |
| Crystal Palace | 2020/21 – 2023/24 | 19 | 0 | — |
| Man United | 2022/23 – 2023/24 | 0 | 0 | — |
| Crystal Palace U23 | 2021/22 | 0 | 0 | — |
| England | 2012/13 – 2020/21 | 9 | 0 | — |
| Stoke | 2013/14 – 2020/21 | 166 | 0 | — |
| England U21 | 2013/14 – 2017/18 | 27 | 0 | — |
| Derby County | 2014/15 | 6 | 0 | — |
| Leeds United | 2013/14 | 16 | 0 | — |
| Barnsley | 2013/14 | 13 | 0 | — |
| Birmingham | 2011/12 – 2012/13 | 29 | 0 | — |
| Great Britain U23 | 2012/13 | 4 | 0 | — |
| England U19 | 2011/12 | 2 | 0 | — |
| England U20 | 2011/12 | 4 | 0 | — |
| Cheltenham | 2011/12 | 12 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2023 | Crystal Palace | Rangers | Free |
| 6 Jan 2023 | Crystal Palace | Manchester United | Loan |
| 16 Oct 2020 | Stoke City | Crystal Palace | — |
| 23 Nov 2014 | Derby | Stoke City | — |
| 20 Oct 2014 | Stoke City | Derby | Loan |
| 6 May 2014 | Leeds | Stoke City | — |
| 21 Feb 2014 | Stoke City | Leeds | Loan |
| 23 Dec 2013 | Barnsley | Stoke City | — |
| 26 Sept 2013 | Stoke City | Barnsley | Loan |
| 31 Jan 2013 | Stoke City | Birmingham | Loan |
| 31 Jan 2013 | Birmingham | Stoke City | € 3.8M |
| 20 Feb 2012 | Birmingham | Cheltenham | Loan |
| 8 Sept 2011 | Birmingham | Cheltenham | Loan |
| 30 Jun 2026 | Rangers | Hull City | Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | League Cup | Rangers | 37 | 37 | 3330 | — | 0 | 1 | 0 | 7.02 |
| 2025/26 | UEFA Europa League | Rangers | 8 | 8 | 725 | 0 | 0 | 0 | 0 | 6.95 |
| 2025/26 | UEFA Champions League | Rangers | 6 | 6 | 450 | 0 | 0 | 0 | 0 | 8.30 |
| 2025/26 | Premiership | Rangers | 38 | 38 | 3420 | 0 | 0 | 1 | 0 | 6.99 |
| 2024/25 | Premiership | Rangers | 33 | 30 | 2520 | — | 1 | 2 | 0 | 7.02 |
| 2024/25 | League Cup | Rangers | 37 | 37 | 3330 | — | 0 | 1 | 0 | 7.02 |
| 2024/25 | UEFA Europa League | Rangers | 12 | 11 | 930 | — | 0 | 1 | 0 | 6.95 |
| 2024/25 | UEFA Champions League | Rangers | 12 | 11 | 930 | — | 0 | 1 | 0 | 6.95 |
| 2023/24 | Premiership | Rangers | 37 | 37 | 3330 | — | 0 | 1 | 0 | 7.02 |
| 2023/24 | FA Cup | Rangers | 37 | 37 | 3330 | — | 0 | 1 | 0 | 7.02 |
| 2023/24 | League Cup | Rangers | 4 | 4 | 360 | 0 | — | 0 | 0 | — |
| 2023/24 | UEFA Europa League | Rangers | 8 | 8 | 720 | 0 | — | 1 | 0 | 7.30 |
| 2023/24 | UEFA Champions League | Rangers | 4 | 4 | 360 | 0 | — | 0 | 0 | 6.95 |
| 2022/23 | Friendlies Clubs | Crystal Palace | 2 | 2 | 76 | 0 | — | 0 | 0 | — |
| 2021/22 | Premier League | Crystal Palace | 9 | 8 | 764 | 0 | — | 0 | 0 | 6.63 |
| 2021/22 | FA Cup | Crystal Palace | 5 | 5 | 450 | 0 | — | 1 | 0 | 6.85 |
| 2021/22 | League Cup | Crystal Palace | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.20 |
| 2020/21 | Premier League | Crystal Palace | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.30 |
| 2020/21 | FA Cup | Crystal Palace | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.20 |
| 2019/20 | Championship | Stoke | 35 | 35 | 3150 | 0 | — | 0 | 0 | 6.48 |
| 2019/20 | League Cup | Stoke | 1 | 1 | 90 | 0 | — | 0 | 0 | 5.70 |
| 2018/19 | Championship | Stoke | 45 | 45 | 4050 | 0 | — | 0 | 0 | 6.93 |
| 2018/19 | World Cup - Qualification Europe | England | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.20 |
| 2018/19 | Friendlies | England | 3 | 3 | 245 | 0 | — | 0 | 0 | — |
| 2017/18 | Premier League | Stoke | 35 | 35 | 3150 | 0 | — | 0 | 0 | 7.00 |
| 2017/18 | FA Cup | Stoke | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.50 |
| 2017/18 | Friendlies | England | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2016/17 | Premier League | Stoke | 5 | 5 | 450 | 0 | — | 0 | 0 | 6.82 |
| 2016/17 | UEFA European Championship Qualifiers | England | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016/17 | Friendlies | England | 1 | 1 | 45 | 0 | — | 0 | 0 | — |
| 2015/16 | Premier League | Stoke | 31 | 31 | 2790 | 0 | — | 0 | 0 | 6.99 |
| 2015/16 | League Cup | Stoke | 4 | 4 | 420 | 0 | — | 0 | 0 | — |
| 2015/16 | UEFA U21 Championship | England U21 | 14 | 14 | 1216 | 0 | — | 0 | 0 | — |
| 2015/16 | Friendlies | England | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2014/15 | Premier League | Stoke | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2014/15 | Championship | Derby County | 6 | 6 | 540 | 0 | — | 0 | 0 | — |
| 2014/15 | FA Cup | Stoke | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2014/15 | League Cup | Stoke | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2014/15 | Tournoi Maurice Revello | England U21 | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2013/14 | Championship | Leeds United | 16 | 16 | 1440 | 0 | — | 0 | 0 | — |
| 2013/14 | Championship | Barnsley | 13 | 13 | 1170 | 0 | — | 2 | 0 | — |
| 2013/14 | FA Cup | Stoke | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2013/14 | UEFA U21 Championship | England U21 | 10 | 10 | 900 | 0 | — | 0 | 0 | — |
| 2012/13 | Olympics Men | Great Britain U23 | 4 | 4 | 390 | 0 | — | 0 | 0 | — |
| 2012/13 | Friendlies | England | 1 | 1 | 46 | 0 | — | 0 | 0 | — |
| 2012/13 | Championship | Birmingham | 29 | 29 | 2610 | 0 | — | 0 | 0 | — |
| 2011/12 | UEFA U19 Championship | England U19 | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2011/12 | FIFA U20 World Cup | England U20 | 4 | 4 | 360 | 0 | — | 0 | 0 | — |
| 2011/12 | League Two | Cheltenham | 12 | 12 | 1080 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
