Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Wigan | 2008/09 – 2026/27 | 230 | 22 | 3 |
| Tranmere | 2021/22 – 2022/23 | 33 | 3 | 1 |
| Melbourne Victory | 2020/21 | 22 | 4 | 3 |
| Luton | 2019/20 | 26 | 4 | — |
| West Brom | 2014/15 – 2017/18 | 27 | 0 | 1 |
| Sunderland | 2017/18 | 26 | 1 | 2 |
| Sunderland U21 | 2017 | 1 | 0 | — |
| Sheffield Wed | 2016/17 | 12 | 0 | 2 |
| West Bromwich Albion U23 | 2016 | 1 | 0 | — |
| Blackpool | 2011/12 | 14 | 2 | — |
| England U20 | 2011 | 4 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2023 | Tranmere | Wigan | Free |
| 9 Jul 2021 | Melbourne Victory | Tranmere | Free |
| 21 Nov 2020 | Luton | Melbourne Victory | Free |
| 1 Jul 2019 | Wigan | Luton | Free |
| 20 Jul 2018 | Sunderland | Wigan | € 2M |
| 31 Aug 2017 | West Brom | Sunderland | — |
| 1 Jul 2017 | Sheffield Wednesday | West Brom | — |
| 1 Jan 2017 | West Brom | Sheffield Wednesday | Loan |
| 28 Jan 2015 | Wigan | West Brom | € 6.4M |
| 1 Sept 2011 | Wigan | Blackpool | Loan |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | EFL Trophy | Wigan | 1 | 0 | 27 | 0 | 0 | 0 | 0 | 6.20 |
| 2026/27 | League One | Wigan | 1 | 0 | 9 | 0 | 0 | 0 | 0 | 6.70 |
| 2025/26 | League Cup | Wigan | 2 | 1 | 107 | 0 | 0 | 0 | 0 | 6.90 |
| 2025/26 | EFL Trophy | Wigan | 3 | 3 | 212 | 0 | 0 | 1 | 0 | 6.80 |
| 2025/26 | FA Cup | Wigan | 2 | 0 | — | 0 | 0 | 1 | 0 | — |
| 2025/26 | League One | Wigan | 14 | 1 | 144 | 0 | 0 | 0 | 0 | 6.55 |
| 2024/25 | League One | Wigan | 26 | 2 | 505 | 1 | 0 | 6 | 0 | 6.58 |
| 2024/25 | EFL Trophy | Wigan | 2 | 2 | 148 | 1 | 0 | 0 | 0 | 7.80 |
| 2024/25 | FA Cup | Wigan | 2 | 0 | 59 | 0 | 0 | 0 | 0 | 6.30 |
| 2023/24 | League One | Wigan | 37 | 12 | 1264 | 2 | 3 | 6 | 0 | 6.77 |
| 2023/24 | League Cup | Wigan | 1 | 1 | 64 | 0 | — | 0 | 0 | 6.70 |
| 2023/24 | EFL Trophy | Wigan | 4 | 2 | 195 | 0 | — | 2 | 0 | 7.03 |
| 2023/24 | FA Cup | Wigan | 3 | 0 | 36 | 0 | — | 0 | 0 | 6.45 |
| 2021/22 | League Two | Tranmere | 29 | 18 | 1711 | 2 | 1 | 3 | 1 | 6.71 |
| 2021/22 | EFL Trophy | Tranmere | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.30 |
| 2021/22 | League Cup | Tranmere | 1 | 1 | 79 | 0 | — | 0 | 0 | 6.30 |
| 2021/22 | FA Cup | Tranmere | 2 | 1 | 124 | 1 | — | 0 | 0 | 6.70 |
| 2020/21 | A-League | Melbourne Victory | 18 | 18 | 1418 | 4 | 2 | 6 | 0 | 6.88 |
| 2020/21 | AFC Champions League | Melbourne Victory | 4 | 4 | 285 | 0 | 1 | 1 | 0 | 6.85 |
| 2019/20 | Championship | Luton | 23 | 10 | 912 | 4 | — | 1 | 0 | 6.75 |
| 2019/20 | League Cup | Luton | 3 | 1 | 105 | 0 | — | 0 | 0 | 6.67 |
| 2018/19 | Championship | Wigan | 22 | 1 | 439 | 1 | — | 3 | 0 | 6.64 |
| 2018/19 | FA Cup | Wigan | 1 | 1 | 77 | 0 | — | 0 | 0 | 6.90 |
| 2018/19 | League Cup | Wigan | 1 | 1 | 63 | 0 | — | 0 | 0 | — |
| 2017/18 | Championship | Sunderland | 24 | 13 | 1104 | 1 | 2 | 5 | 0 | 6.82 |
| 2017 | EFL Trophy | Sunderland U21 | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017/18 | League Cup | Sunderland | 1 | 0 | 35 | 0 | — | 0 | 0 | 7.30 |
| 2017/18 | FA Cup | Sunderland | 1 | 1 | 53 | 0 | — | 0 | 0 | — |
| 2016/17 | Club Friendlies | West Brom | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2016/17 | Championship | Sheffield Wed | 11 | 2 | 309 | 0 | 2 | 0 | 0 | 6.78 |
| 2016/17 | FA Cup | Sheffield Wed | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2016 | EFL Trophy | West Bromwich Albion U23 | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2016/17 | Club Friendlies | West Brom | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2015/16 | Premier League | West Brom | 12 | 2 | 273 | 0 | 1 | 2 | 0 | 6.81 |
| 2015/16 | League Cup | West Brom | 2 | 0 | 85 | 0 | — | 1 | 0 | — |
| 2015/16 | FA Cup | West Brom | 1 | 0 | 27 | 0 | — | 0 | 0 | — |
| 2014/15 | Premier League | West Brom | 8 | 5 | 347 | 0 | — | 1 | 0 | — |
| 2014/15 | Championship | Wigan | 23 | 19 | 1474 | 5 | — | 5 | 1 | — |
| 2014/15 | FA Cup | West Brom | 2 | 0 | 34 | 0 | — | 0 | 0 | — |
| 2013/14 | Championship | Wigan | 33 | 19 | 1872 | 3 | — | 4 | 1 | — |
| 2013/14 | FA Cup | Wigan | 5 | 5 | 357 | 1 | — | 0 | 0 | — |
| 2013/14 | UEFA Europa League | Wigan | 6 | 5 | 351 | 0 | — | 0 | 0 | — |
| 2012/13 | Premier League | Wigan | 20 | 8 | 639 | 2 | — | 0 | 0 | — |
| 2012/13 | League Cup | Wigan | 3 | 2 | 167 | 1 | — | 0 | 0 | — |
| 2012/13 | FA Cup | Wigan | 7 | 7 | 550 | 3 | — | 2 | 0 | — |
| 2011/12 | Premier League | Wigan | 2 | 0 | 19 | 0 | — | 1 | 0 | — |
| 2011/12 | Championship | Blackpool | 14 | 9 | 797 | 2 | — | 0 | 0 | — |
| 2011/12 | FA Cup | Wigan | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2011 | FIFA U20 World Cup | England U20 | 4 | 4 | 299 | 0 | — | 0 | 0 | — |
| 2010/11 | Premier League | Wigan | 3 | 0 | 11 | 0 | — | 0 | 0 | — |
| 2010/11 | League Cup | Wigan | 1 | 0 | 11 | 0 | — | 0 | 0 | — |
| 2010/11 | FA Cup | Wigan | 3 | 3 | 223 | 1 | — | 0 | 0 | — |
| 2008/09 | Premier League | Wigan | 1 | 0 | 12 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Ankle/Foot Injury | 12 Apr 2016 | 15 Apr 2016 | 3 |
| Ankle/Foot Injury | 24 Jan 2016 | 8 Apr 2016 | 75 |
| Knock | 26 Aug 2015 | 28 Aug 2015 | 2 |
| Ankle/Foot Injury | 10 Mar 2015 | 8 Apr 2015 | 29 |
| Ankle/Foot Injury | 15 May 2013 | 31 May 2013 | 16 |
Trophies
| Competition | Season | Place |
|---|---|---|
| FA Cup (England) | 2012/2013 | Winner |
| Community Shield (England) | 2013 | 2nd Place |
