# Craig Bryson

Craig James Bryson (born 6 November 1986) is a Scottish former professional footballer who played as a midfielder. Bryson is now a strength and conditioning coach with Kilmarnock FC Women, in addition to owning a gym based in Kilmarnock called Total Fitness.
Bryson began his career at Scottish First Division club Clyde, for whom he made his professional debut in 2004. He moved to Scottish Premier League club Kilmarnock in 2007 before being bought by Derby County in 2011. At Derby, Bryson twice won the club's Player of the Year Award in 2012 and 2014. He was also named to the PFA Championship Team of the Year in 2014. He became the first Derby player to score a hat-trick against their fierce rivals Nottingham Forest in 116 years when he did so in a 5–0 win in March 2014.
Bryson was loaned to Cardiff City during the 2017–18 season and left Derby in 2019 to sign for Aberdeen. After stints with St Johnstone and Stenhousemuir, he retired from playing in September 2022. He also played in three full international matches for Scotland between 2010 and 2016.

## Club career
### Clyde
#### 2003–04 season

Born in Rutherglen, Bryson began his career with non-league side Westwood Rovers. He signed a professional contract with Scottish First Division club Clyde at the beginning of the 2003–04 season. He turned down the opportunity to sign for Scottish Premiership club Motherwell because he wanted to play regular first-team football, and he didn't feel that he would get that at Motherwell. He didn't make a first-team appearance that season but was loaned out to junior outfit East Kilbride Thistle for the latter part of the season. He made a big impression in his time at East Kilbride, scoring two goals in eight league appearances and winning the club's Young Player of the Year award.

#### 2004–05 season

Bryson made his first team debut for Clyde in the 2004–05 season in a Scottish First Division match against Raith Rovers on 14 August 2004, and scored a goal after 4 minutes in a match Clyde won 3–2. He was rewarded with a new two-year contract in November 2004 and his good form at club level saw him called up to the Scotland under-19 team for a friendly against Germany. In February 2004, Bryson scored in a 2–1 victory over Ross County in a Scottish Cup replay, which set up a quarter-final tie against Celtic, the team he supported as a boy. Bryson started against Celtic and thought he had scored after hitting the back of the net from a long-range strike, but this goal was controversially ruled out after the referee blew his whistle to award a free kick to Clyde. Celtic went on to win 5–0. Bryson continued his good form over the season, winning Clyde's Young Player of the Year Award for 2004–05.

#### 2005–06 season

During the 2005–06 season, Bryson scored goals against both halves of the Old Firm. In September 2005, he scored Clyde's equalising goal against Rangers in a Scottish League Cup tie at Ibrox Stadium, in a 5–2 extra time defeat. In January 2006, Bryson scored the opener in the famous 2–1 Scottish Cup win over holders Celtic, the game in which Roy Keane made his Celtic debut. Bryson nodded the ball into an open net to make it 1–0 after a cross from Eddie Malone evaded the Celtic defence. The win and his performance brought him to prominence and he was subsequently linked with moves to Celtic and Tottenham Hotspur and was called up to the Scotland under-21 side.

#### 2006–07 season

In the 2006–07 season, in October 2006, Bryson scored in a 3–1 victory over Greenock Morton in a Scottish Challenge Cup semi-final, which sent Clyde to their first major final in 48 years. Bryson started the final the following month against Ross County, which Clyde lost on penalties. Bryson, along with clubmate Neil McGregor, was selected for the SPFA First Division Team of the Year. Bryson's contract expired at the end of the season, and in January 2007, Billy Davies, then-manager of his future club Derby County, took him on a week's trial. However, Davies decided not to sign him permanently. In February, Scottish Premier League club Kilmarnock approached Bryson and in May, Kilmarnock manager Jim Jefferies confirmed that talks were ongoing. Bryson had rejected Clyde's offer of a new contract and thus left Clyde at the end of the 2006–07 season, having made 114 appearances in all competitions, scoring 12 goal.

### Kilmarnock
#### 2007–08 season

Bryson signed for Kilmarnock in July 2007 on a free transfer ahead of the 2007–08 season. As he was under the age of 24, Kilmarnock had to pay Clyde compensation, which was agreed upon between the two clubs in September. Bryson started 16 league games and came on as a substitute in 3 more, making his league debut for the club as a 71st-minute substitute against St Mirren on 22 September 2007. He almost scored in the 88th minute, but his powerful shot was well held by St Mirren keeper Chris Smith and the match finished 0–0.
He scored his first goals for the club in a 3–1 victory against Aberdeen on 24 February 2008: the first a volley at the far post from 7 yards out in the 14th minute and the second was a close-range finish from an "almost identical position" in the 75th minute. Sandwiched between his goals, he provided an assist for centre half Frazer Wright, who, up for a corner at the end of the first half, headed Bryson's cross in. For his efforts, Bryson was named man of the match and won the plaudits of his manager Jim Jefferies, who said: "Craig's whole game was terrific and if he keeps playing like that we've got a real player on our hands. It was a top performance by him and for me he was the best player on the pitch by a mile." He scored twice more and was again named man of the match in a 4–1 win against Inverness Caledonian Thistle on 22 March. His first goal, a "terrific" 25-yard shot in the 50th minute, was followed by a 56th-minute effort that he drilled into the net via a deflection off a defender.

#### 2008–09 season

During the 2008–09 season, Bryson established himself as an important first team player, making thirty-three league appearances, thirty-one of them starts. His first goal of the season came in a Scottish League Cup second round match against Brechin City on 27 August 2008. Described variously as "stunning", "unstoppable", "sublime" and "a thunderbolt", he scored the second in a 2–0 win when he received a cross from Garry Hay and flicked the ball into the top corner. His next two goals were late winners in successive matches: on 4 October, in a 2–1 win at the Hearts he made a well-timed run into the box in the 82nd minute to collect a return pass from Donovan Simmonds and finish well into the bottom corner; and then on 18 October, he scored the only goal in a 1–0 win at home to Motherwell, slipping the ball into the net at the far post in the 89th minute after a deflected shot-cum-cross from Jamie Hamill. Manager Jim Jefferies praised Bryson after the win over the Hearts, saying his late run into the box and finish were comparable to a move by Colin Cameron. He was also named man of the match after the win over Motherwell.
He was rewarded for his fine form in December 2008 with an extension to his contract that ran until the summer of 2013.

#### 2009–10 season

During the 2009–10 season, Bryson was appointed captain by manager Jimmy Calderwood. Calderwood had originally given Manuel Pascali the armband after he took over in January 2010, but changed his mind shortly after and gave it to Bryson, wanting Pascali to concentrate on his football.
Bryson ended the season with 4 league goals: a 90th minute consolation in a 2–1 defeat at home to Hearts on 28 November 2009; Kilmarnock's 4th and the 7th in the match in a 4–4 draw with Dundee United on 30 January 2010 – a "stunning volley" that manager Jimmy Calderwood said was "fit to win any game"; the only goal in a 1–0 win over Falkirk on 10 February; and a deflected cross that came off a Celtic defender in a 3–1 defeat at Celtic Park on 27 March. Kilmarnock finished the season in 11th place, 2 points above Falkirk, who were relegated after a 0–0 draw at Kilmarnock on the final day of the season.

#### 2010–11 season

At the end of the 2009–10 season, Bryson was linked with a move to Hearts, who were managed by Jim Jefferies, who had signed Bryson when he was manager of Kilmarnock. Bryson said: "we'll wait and see if anything materialises over the summer. Jim Jefferies signed me from Clyde and gave me my chance in the SPL and I'm grateful to him for that. I enjoyed working under him at Kilmarnock and wouldn't mind working under him again. Every player has ambitions to play at the highest level and I'm no different so we'll just wait and see if an offer comes in but I'm happy at Killie just now." Hearts were prepared to offer £300,000 but Kilmarnock valued Bryson at closer to £500,000 and talks between the two clubs collapsed. Hearts turned their attention to their former midfielder Paul Hartley, whose contract with English Championship club Bristol City was about to expire. However, they dropped their interest in Hartley after he refused to distance himself from criticism of Hearts' majority shareholder Vladimir Romanov during his first stint with the club. Hearts thus turned their attention back to Bryson and gave Kilmarnock a final "take-it-or-leave-it" offer, which included a "significant sell-on clause" but not an increased transfer fee. The offer was rejected. Hearts returned with two more bids on transfer deadline day, which were also rejected. Bryson said that he was "relieved the window has now closed... It's nice that other clubs want you, it shows you must be doing well, but it's not to be just now and I'll carry on doing well for Kilmarnock."
Kimarnock expected Hearts to make another attempt to sign Bryson in the January transfer window, but Bryson suffered an ankle injury that ended any potential move for him.

### Derby County
#### 2011–12 season

At the end of the 2010–11 season, it was reported that Brighton & Hove Albion, Derby County, Hull City and Leicester City were interested in signing Bryson, with Derby the favourites to sign him and Bryson himself only interested in moving to Derby. After Kilmarnock rejected two bids for Bryson from Derby, on 4 June 2011, it was confirmed that the two clubs had agreed a fee. Bryson signed for Derby on a three-year contract on 9 June, which went through on 1 July following the re-opening of the transfer window. The fee was speculated to be £350,000, rising to £450,000 after add-on clauses. Derby manager Nigel Clough called Bryson a "tremendous signing" and "a leader on and off the field" with "energy and ability in abundance". Bryson expressed his happiness at moving to Derby, saying that:
   The move has come at the right time for me. I have been playing in the SPL for four years and it does get repetitive facing the same sides four times a season. It can get monotonous. With only one team going down and one coming up there is no freshness and everything is catered for the Old Firm. But in the Championship you are playing teams just twice a season and they are all massive clubs. Celtic and Rangers draw average crowds of 50–60,000 and Killie get gates of between 4–5,000. It is hard to fight against the Old Firm as they have more money and attract the best players. The winner of the league is only ever going to come from either of the Old Firm – and I just don't see that changing in the foreseeable future. That's why I am delighted to sign for Derby as it is a fresh challenge.
Bryson made a strong start to his Derby career, despite a pre-season disrupted by injury, scoring the winner with his first Derby goal in a 1–0 victory at Blackpool and helping the side to four straight victories from opening day – the club's best season start for 106 years. He scored his first goal at Pride Park in a 3–0 victory over Millwall. Derby enjoyed a fine first quarter to the season and found themselves fourth in the table, with manager Nigel Clough singling out Bryson as the top performer of the season so far. His third goal of the season came in his man of the match performance in Derby's 3–1 win over Portsmouth, which also saw him named in the Championship team of the week. He scored against Bristol City in a 2–1 home win for Derby on 10 December 2011, tapping in from close range and scored in the 1–1 reverse fixture at Ashton Gate Stadium on 31 March 2012, with a side-foot finish. Bryson scored his sixth goal of the season in a 2–0 win at Leeds United a 25-yard curling shot which beat Leeds 'keeper Andy Lonergan. These goals cemented Bryson's place as Derby's third top scorer during the season, behind strikers Steve Davies and Theo Robinson. Bryson was a regular in the Derby team during the season, where he missed only 3 of the 49 games Derby played. Bryson's form was rewarded by winning the fans Player of the Season award. Bryson also won the Club & Supporter's Club player of the year awards.

#### 2012–13 season

Bryson was a regular in the Derby side at the start of the 2012–13 season, however the season was disrupted by a knee injury which ruled him out of several games. Bryson return three weeks earlier than expected as he started and scored in a 2–0 win at Bristol City however Nigel Clough stated he was not fully fit and was doubt for the next game. Bryson was able to start the next three games, but missed the game at home to Middlesbrough on 1 January 2013 after picking scar tissue on his hamstring. Bryson returned to the team in mid-January and despite picking up a re-occurrence of his injury in early March, Bryson soon regained his place in the side and his performance alongside midfield partner Jeff Hendrick in Derby's 3–0 win over Bristol City on 29 March earned them both praise from first team coach Andy Garner. Bryson was named the 84th best player in the 2012–13 Football League Championship by the Actim Index and it was confirmed in May 2013 that the club were in talks to extend his contract at Pride Park, with Bryson signing a new three-year contract later that month.

#### 2013–14 season

Ahead of the 2013–14 season, Bryson was expected to compete with Paul Coutts, Jeff Hendrick and Will Hughes for a central midfield role. Manager Nigel Clough stated his intention to rotate the squad, saying that it was "lovely to have that healthy competition" for places. In the event of the season, Bryson was an ever-present in the starting line-up in the league until the 32nd fixture.
His first goal of the season came in a 3–0 win at Yeovil Town on 24 August, which was quickly followed up by his first career hat-trick in a 5–1 win at Millwall on 14 September, which was also the first league hat-trick by a Derby player since Paul Simpson in April 1996. After a 1–0 defeat at Nottingham Forest, with the club having won only once in the last six matches, having failed to win at home, and lying in 14th place, manager Nigel Clough was sacked. Bryson was saddened by the move, saying it came as a "shock", adding that Clough "has been excellent for me, he brought me down from Scotland and gave me my chance in England. So obviously I was sad to see him go. But it happens in football and you just have to get on with it." Clough was replaced by Steve McClaren and Bryson said that he was looking forward to working with the new manager.
The next game was at home against Ipswich Town, with academy manager Darren Wassall in charge and McClaren watching from the stands. Bryson captained the side for the first time in the match and Derby ended the first half 4–1 down, but after a half-time team talk from McClaren, who also made two substitutions, Derby came back to draw 4–4, with Bryson scoring twice, including the last, an 88th-minute equaliser.
After a two-month barren spell, Bryson scored five goals in six games: one each in a 3–1 win at Wigan, in a 5–1 win against Blackpool, in a 2–0 win at Charlton, in a 3–1 win against Doncaster and in a 1–1 draw at Huddersfield. This coincided with an unbeaten run that saw The Rams win 8 and draw 1 out of 9 matches, moving from 11th in the table to 2nd. He did however miss the 1–0 home win over AFC Bournemouth on 22 February, the first and only league match he missed all season. His goal against Huddersfield coming on Boxing Day, Bryson didn't score again until 28 January 2014, getting the 2nd in a 3–2 win at home to Yeovil Town.
He next scored on 22 March, netting a hat-trick against Derby's local rivals Nottingham Forest in a 5–0 win, becoming the first Derby player to score a hat-trick against Forest since Steve Bloomer in 1898 and earning a recall to the Scotland squad. His final goal of the season came in a 3–1 win at Blackpool on 8 April. Overall, he scored 16 goals as Derby finished 3rd and qualified for the play-offs. He started the semi-final first leg, a 2–1 win at Brighton & Hove Albion, but was substituted in the 89th minute with a back injury, and missed the second leg, a 4–1 win that sent Derby through to the final. He recovered in time for the play-off final against Queens Park Rangers, but was named to the bench as the form of Will Hughes and Jeff Hendrick meant they kept their places. He came on for Hughes in the 68th minute and almost scored but for a good save from QPR keeper Robert Green. Derby went on to lose the game 1–0.
Bryson's performances throughout the campaign earned him the Derby County Player of the Year award and a place in the PFA Championship Team of the Season, alongside fellow Derby midfielder Will Hughes.

#### 2014–15 season

   "Both the Club and I have shown our commitment to each other... there was a bid from another Club... in the Premier League, but I would love to try and get into the Premier League with Derby County... I see my future at Derby County and I am just happy to get everything sorted to extend my stay. The deal secures my future; I know where I am going to be playing for the next five years."
In June 2014, Derby rejected an offer from Burnley for Bryson. Bryson was however given permission to speak to Burnley, later saying that "it doesn't matter what team it is, when someone puts an offer in for you I think you owe them the respect to sit down and speak to them... but just because I did that didn't mean I was going to sign for them." Soon afterwards, he agreed a new five-year contract with Derby, saying that his bond with the fans was part of the reason that he chose to stay: "I've got a good bond with the fans as well and that was a big part in my decision to stay here. The fans have been excellent ever since I walked through the door. When you come to a new club it can take time to win over the fans, but they have been fantastic with me... they helped me make the biggest decision of my career, if not my life. I took a while to think about it and I knew it would be a massive decision. I went through stages where one minute I thought I was leaving and then the next minute I think I'm staying. But in the end it turned out to be an easy decision for me because Derby are such a great club to be part of."
Bryson played 38 league matches in the 2014–15 season, but it was an inconsistent one for him: only 25 of them were starts and he only scored five goals: the second in a 5–1 win against Fulham on 23 August 2014, an 84th-minute equaliser in a 2–2 draw against Cardiff City on 20 September, an 81st-minute winner in a 2–1 victory at Watford, the consolation in a 3–1 League Cup defeat to Chelsea on 16 December and a 3rd-minute opener in a 4–0 win at home to Blackpool on 14 April 2015.
After starting 14 of the first 15 league matches, he picked up an injury in a 2–1 defeat to Brentford on 1 November and was out for three weeks. He came off the bench in the game against Watford to score a "stunning" winner but found himself on the bench for the next game, a 2–0 defeat to Leeds, before starting five of the next six matches: a 3–0 win against Brighton and Hove Albion, a 2–0 defeat to Middlesbrough, the 3–1 defeat to Chelsea, a 2–2 draw against Norwich City on 20 December and a 2–0 win against Leeds on 30 December. He missed the 4–0 win against Birmingham City on Boxing Day with a calf problem, having come off in the 74th minute against Norwich. He played 90 minutes of the following match, a 1–0 FA Cup win against Southport on 3 January 2015, but then found himself on the sidelines for the rest of the season, behind Will Hughes, Jeff Hendrick and Omar Mascarell in the pecking order for the three central midfield places. Of his next 11 League appearances, 9 of them came from the bench and the two that he did start ended in 2–1 defeats for The Rams: against Nottingham Forest on 17 January and against Reading on 14 February. Bryson finally returned to the starting XI on 17 March in a 1–0 defeat to Middlesbrough and started five of the next six matches, missing only the 2–0 win against Wigan on 6 April with a calf problem. However, his fifth start from those six matches would prove to be his last of the season. He was taken off in the 9th minute of the 4–4 draw against Huddersfield Town on 18 April with a thigh injury and missed the final two matches of the season. Having been top of the table in late February, a run of two wins from the last thirteen matches saw Derby finish eighth, a single point off the playoffs, and manager Steve McClaren sacked.

#### 2015–16 season

Bryson's start to the season was hampered by an injury which he picked up in the opening game of the season away to Bolton Wanderers on 8 August. He was taken off in the 21st minute suffering from what was later revealed to be a stretched ligament on the inside of his knee and was ruled out for 2 to 4 weeks. However, he was ruled out for longer than first thought; six weeks later, new Derby manager Paul Clement reported that Bryson was still feeling some discomfort in his knee, which meant he was "finding some things difficult to do relating to shooting and long passing". A week later, on 1 October, Clement revealed that Bryson had had injections in his knee to speed up the healing process and would thus miss training for a fortnight to allow his knee to settle. Clement said that "I think we all underestimated the severity of the injury he picked up on the opening day just because of his character. He wanted to push and push to get back as soon as possible but you have to allow the healing process to take place." Bryson returned to training on 16 October, played 90 minutes in an under-21 match against Newcastle United on 26 October and finally made his return to first team action on 31 October, coming on as a 79th-minute substitute for new signing Jacob Butterfield in a 3–0 win against Rotherham.
On the final day of the summer transfer window of 2017, Bryson joined fellow Championship side Cardiff City on a season-long loan deal. He scored his first goal for the club in a 2–1 win against Sunderland on 23 September 2017.
He was offered a new contract by Derby County at the end of the 2018–19 season, but instead agreed a pre-contract with Aberdeen.

### Aberdeen

Bryson's Aberdeen career was hampered by injury, playing only 6 games at the start of the 2019–20 season due to an ankle injury.
In August 2020 he was one of eight Aberdeen players who received a suspended three-match ban from the Scottish FA after they breached coronavirus-related restrictions by visiting a bar earlier in the month. On 9 September 2020, Bryson departed Aberdeen via mutual consent.

### St Johnstone

A week after leaving Aberdeen, Bryson signed with St Johnstone on a contract to the end of the 2020–21 season. Bryson would enjoy success with St Johnstone, lifting both the Scottish League Cup and the Scottish Cup in the 2020–21 season. In December 2021 however, Bryson would suffer an ankle injury against Celtic which would require surgery and end his season.

### Stenhousemuir

In June 2022 following the end of his contract with St Johnstone, Bryson decided to go part-time and sign a one-year deal with Scottish League Two side Stenhousemuir. Bryson retired from playing football in September 2022.

## International career

Bryson was capped by Scotland at under-19 and under-21 level while with Clyde. He was called up for a Scotland B match in 2009 but was later withdrawn at the request of his club manager Jim Jefferies.
On 16 November 2010, Bryson made his full international debut as a second-half substitute against the Faroe Islands at Pittodrie. Bryson's form for Derby saw him recalled to the squad for a friendly against the United States in May 2012, but he did not play. In 2013, Bryson was recalled to the senior squad for World Cup qualifiers against Belgium and Macedonia in September and Croatia in October, but did not get any match time.
He started a friendly against Norway in Molde on 20 November to gain his second cap for his country. He was also called up for a post-season friendly against Nigeria, but while Derby teammates Chris Martin and Craig Forsyth made their debuts, Bryson did not come off the substitutes bench.

## Style of play

Bryson plays in central midfield and describes himself as a "box-to-box central midfielder, who will always give 100% for the team."
Bryson scored 16 league goals for Derby in the 2013–14 season, which was more than he had scored in any of his previous three seasons combined. He put this improvement down to manager Steve McClaren: "he's changed the formation slightly and I have more freedom to get in the box and support Chris [Martin]. We are a good partnership." Scotland manager Gordon Strachan hailed the understanding between the two when he called them up for a friendly with Nigeria in May 2014: "When you look at the link-up between [Martin] and Bryson, I think it's 40-odd goals they've scored between them. It's a smashing partnership."
Martin himself said of his partnership with Bryson in May 2014: "I think people must hate playing against him, because I certainly would. I wouldn't want to mark him. People can't stay with him, he's got that much energy. From my point of view, he helps my game, because he takes people away and runs in behind. It makes it easier for me to play, because he's always there next to me."

## Career statistics
### Club

    As of match played 23 August 2022
Appearances and goals by club, season and competition :
| Club | Season | League | League | League | FA Cup | FA Cup | League Cup | League Cup | Other | Other | Total | Total |
| Club | Season | Division | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals |
| Clyde | 2004–05 | Scottish First Division | 27 | 3 | 2 | 1 | 2 | 0 | 2 | 0 | 33 | 4 |
| Clyde | 2005–06 | Scottish First Division | 32 | 2 | 3 | 1 | 3 | 1 | 1 | 0 | 39 | 4 |
| Clyde | 2006–07 | Scottish First Division | 33 | 3 | 1 | 0 | 1 | 0 | 4 | 1 | 39 | 4 |
| Clyde | Total | Total | 92 | 8 | 6 | 2 | 6 | 1 | 7 | 1 | 111 | 12 |
| Kilmarnock | 2007–08 | Scottish Premier League | 19 | 4 | 2 | 0 | 1 | 0 | — | — | 22 | 4 |
| Kilmarnock | 2008–09 | Scottish Premier League | 33 | 2 | 3 | 1 | 3 | 1 | — | — | 39 | 4 |
| Kilmarnock | 2009–10 | Scottish Premier League | 33 | 4 | 3 | 0 | 2 | 0 | — | — | 38 | 4 |
| Kilmarnock | 2010–11 | Scottish Premier League | 33 | 2 | 1 | 0 | 2 | 0 | — | — | 36 | 2 |
| Kilmarnock | Total | Total | 118 | 12 | 9 | 1 | 8 | 1 | — | — | 135 | 14 |
| Derby County | 2011–12 | Championship | 44 | 6 | 2 | 0 | 0 | 0 | — | — | 46 | 6 |
| Derby County | 2012–13 | Championship | 37 | 5 | 1 | 0 | 1 | 0 | — | — | 39 | 5 |
| Derby County | 2013–14 | Championship | 45 | 16 | 0 | 0 | 2 | 0 | 2 | 0 | 49 | 16 |
| Derby County | 2014–15 | Championship | 38 | 4 | 2 | 0 | 4 | 1 | — | — | 44 | 5 |
| Derby County | 2015–16 | Championship | 21 | 3 | 1 | 0 | 0 | 0 | 2 | 0 | 24 | 3 |
| Derby County | 2016–17 | Championship | 34 | 2 | 2 | 1 | 1 | 0 | — | — | 37 | 3 |
| Derby County | 2017–18 | Championship | 4 | 1 | 0 | 0 | 1 | 0 | — | — | 5 | 1 |
| Derby County | 2018–19 | Championship | 28 | 3 | 3 | 0 | 1 | 0 | — | — | 32 | 3 |
| Derby County | Total | Total | 251 | 40 | 11 | 1 | 10 | 1 | 4 | 0 | 276 | 42 |
| Cardiff City (loan) | 2017–18 | Championship | 22 | 2 | 0 | 0 | 0 | 0 | — | — | 22 | 2 |
| Aberdeen | 2019–20 | Scottish Premiership | 8 | 0 | 2 | 0 | 1 | 0 | 1 | 0 | 12 | 0 |
| Aberdeen | 2020–21 | Scottish Premiership | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 |
| Aberdeen | Total | Total | 10 | 0 | 2 | 0 | 1 | 0 | 1 | 0 | 14 | 0 |
| St Johnstone | 2020–21 | Scottish Premiership | 20 | 0 | 4 | 0 | 4 | 0 | — | — | 28 | 0 |
| St Johnstone | 2021–22 | Scottish Premiership | 9 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 10 | 0 |
| St Johnstone | Total | Total | 29 | 0 | 4 | 0 | 5 | 0 | 0 | 0 | 38 | 0 |
| Stenhousemuir | 2022–23 | Scottish League Two | 3 | 0 | 0 | 0 | 4 | 1 | 1 | 0 | 8 | 1 |
| Career total | Career total | Career total | 525 | 62 | 32 | 4 | 34 | 4 | 13 | 1 | 604 | 71 |
* 1 2 3 4 Appearances in Scottish Challenge Cup
* 1 2 Appearances in Championship play-offs
* ↑ Appearances in UEFA Europa League

### International

Appearances and goals by national team and year :
| National team | Year | Apps | Goals |
| Scotland | 2010 | 1 | 0 |
| Scotland | 2011 | — |
| Scotland | 2012 | — |
| Scotland | 2013 | 1 | 0 |
| Scotland | 2014 | — |
| Scotland | 2015 | — |
| Scotland | 2016 | 1 | 0 |
| Total | Total | 3 | 0 |

## Honours

Clyde
* Scottish Challenge Cup runner-up: 2006–07
St Johnstone
* Scottish Cup: 2020–21
* Scottish League Cup: 2020–21
Individual
* PFA Scotland Team of the Year: 2006–07 First Division
* PFA Team of the Year: 2013–14 Championship
* Clyde Young Player of the Year: 2004–05, 2005–06
* Derby County Player of the Year: 2011–12; 2013–14
* East Kilbride Thistle Young Player of the Year: 2002–03