| - | Morton | Ayr | Return from loan | |
02 Feb2026 | Ayr | Morton | Loan | |
| - | Dundee FC | Ayr | Free agent | |
| - | Bengaluru FC | Dundee FC | Free agent | |
| - | St. Mirren | Bengaluru FC | Free agent | |
07 Jan2021 | Shrewsbury | St. Mirren | Free agent | |
02 Jan2021 | Aberdeen | Shrewsbury | Transfer | |
07 Jan2019 | Motherwell | Aberdeen | Free agent | |
01 Mar2018 | Portsmouth | Motherwell | Free agent | |
07 Apr2016 | Doncaster | Portsmouth | Transfer | |
| - | Oldham | Doncaster | Return from loan | |
| - | Doncaster | Oldham | Loan | |
| - | Middlesbrough | Doncaster | Transfer | |
10 Feb2013 | Shrewsbury | Middlesbrough | Return from loan | |
| - | Middlesbrough | Shrewsbury | Loan | |
07 Jan2011 | Darlington | Middlesbrough | Free agent |
C. Main transfer history tracks all club moves during the professional career, including transfer dates and teams involved.