# Craig Gordon

Craig Sinclair Gordon (born 31 December 1982) is a Scottish professional footballer who plays as a goalkeeper for Scottish Premiership club Heart of Midlothian and the Scotland national team.
Gordon started his career with Currie Boys before joining Heart of Midlothian. He spent time on loan at Cowdenbeath (in 2001–02), before establishing himself as Hearts' first-choice keeper between 2003 and 2007, winning the Scottish Cup in 2005–06. English Premier League club Sunderland bought him in 2007 for £9 million (then the British transfer record fee for a goalkeeper).
Gordon suffered serious injuries during his time with Sunderland and was released from his contract in 2012. After two years out of the game, Gordon signed for Celtic in July 2014. He won five Scottish league titles, two Scottish Cups and four Scottish League Cups with Celtic, including domestic trebles in 2016–17, 2017–18 and 2018–19. He left Celtic and returned to Hearts in June 2020.
Gordon was the regular goalkeeper for the Scotland national football team between 2004 and 2010, before injuries interrupted his career, and returned to the national set-up in 2014. He made the Scottish FA International Roll of Honour, having made his 50th full international appearance for Scotland in 2017. In June 2024 he became the oldest footballer to have played for Scotland.
Gordon has been voted the SFWA Footballer of the Year three times, in 2006, 2015 and 2022, and was voted SPL and SFWA Young Player of the Year in 2004.

## Club career
### Early career

Born in Edinburgh, Gordon attended Balerno Community High School from 1994 until 1999. His father, David Gordon, played in goal for several East of Scotland clubs, and Gordon spent many Saturday afternoons as a child watching him play. Gordon started off his own career as a goalkeeper at local team Currie Boys Football Club, and then went on to join and graduate from the Heart of Midlothian (Hearts) youth development programme. He won the Scottish Youth Cup in 1999–2000, with Hearts beating Rangers 5–3 at Hampden Park and the SPL Under-18 League in 2000–01, both under the management of John McGlynn.

### Cowdenbeath (loan)

Gordon was loaned to lower league club Cowdenbeath in 2001. In his time there, he continued to train regularly with Hearts, but spent two nights a week training with Cowdenbeath. His first professional game was at Forthbank against Stirling Albion, and he went on to make a total of 13 appearances before being recalled by Hearts. Cowdenbeath went undefeated in their home games during Gordon's time there, and he won praise for an outstanding performance in an away league match in Dumfries versus Queen of the South which ended 3–1. Divisional champions that season, Queens, dominated the game, but Gordon's saves thwarted them time and again, with opposition manager John Connolly describing Gordon's performance as "sensational".

### Heart of Midlothian

Gordon made his debut for Hearts in a 1–1 draw with Livingston on 6 October 2002. His one other appearance that season was in a 4–0 defeat against Falkirk on 25 January 2003 in the third round of the Scottish Cup. Over the course of the following season, 2003–04 season, he edged out Tepi Moilanen as the regular Hearts goalkeeper, playing in 29 of Hearts' league fixtures. Gordon made his first appearance in European competition on 6 November 2003, playing in the first leg of Hearts' UEFA Cup second round tie in France against Bordeaux. He performed well and kept a clean sheet in an impressive 1–0 win for Hearts. Despite that result, Heart lost the return leg 2–0 in Edinburgh to go out on aggregate. His performances that year resulted in him being short-listed for the Scottish PFA Young Player of the Year award, which was eventually won by then Celtic midfielder Stephen Pearson. Gordon did win SFWA Young Player of the Year and SPL Young Player of the Year accolades for 2003–04. He was selected as SPL Young Player of the Month too for December 2003. Manager Craig Levein praised Gordon for his performances, stating that he had a "brilliant" season and that whilst Levein initially only intended to play him in a handful of games, "he did so well that I couldn't take him out [of the first team]." Gordon signed a new three-year contract with the club in August 2004.
In his first full season as first choice goalkeeper, Hearts qualified for the UEFA Cup after they finished third behind champions Celtic and Rangers. The team qualified for the group stages of the UEFA Cup beating Braga on aggregate 5–3. Hearts also reached the semi-finals of both the Scottish Cup (beaten by Motherwell after extra time) and Scottish League Cup (beaten by Celtic) in season 2004–05.
Gordon had become a Scotland regular by 2005 and his consistent displays during the 2005–06 season helped Hearts to a second-place finish in the Scottish Premier League and victory in the Scottish Cup. The trophy was won in a penalty shootout against Gretna following a 1–1 draw, with Gordon saving opponent Derek Townsley's penalty. He kept a clean-sheet in a 4–0 win against Edinburgh derby rivals Hibernian in the semi-final. Hearts owner Vladimir Romanov rejected an approach from Serie A side Palermo for Gordon earlier in the season. That season he was voted Scottish Football Writers' Association Player of the Year, becoming the first Hearts player to win the award since Sandy Jardine in 1986 and also the first goalkeeper since Rangers' Andy Goram in 1993.
For much of the 2006–07 season rumours linked Gordon with a move away from Tynecastle, particularly following his involvement in the issuing of a statement against club owner Vladimir Romanov. Gordon and Paul Hartley flanked captain Steven Pressley as he read out a statement claiming there was "significant unrest" in the Hearts dressing room. The venue for this statement, Hearts' Riccarton training ground, led to the media dubbing the players the "Riccarton Three". Rangers, Aston Villa, Arsenal and Manchester United were all credited with an interest in the player in late 2006. Arsenal manager Arsène Wenger observed Gordon in action in Scotland's 1–0 victory against France in a Euro 2008 qualifying match. He touted Gordon as having "presence and good handling and [he] looks a very good goalkeeper to me." Gordon confirmed his rising stock with a spectacular cross-goal save in the October 2006 Edinburgh derby and the following month he was named as Hearts' new captain, replacing the departed Pressley. Despite Hearts' claims that he was ill, he was "dropped" to the bench for the game against Dundee United in December 2006 for what many believed to be a disciplinary measure by the club following his involvement in the "Riccarton Three" statement. He was reinstated for the Edinburgh derby match against Hibernian three days later. He was not listed in the squad to face Rangers on 27 January 2007, four days before the closure of the transfer window, and it was confirmed by the club that they were negotiating his transfer. Gordon remained a Hearts player when the window closed.
In March 2007, Gordon expressed his interest in playing for Arsenal, after reports had cited that he was linked as a candidate to succeed the veteran Jens Lehmann as Arsenal's first-choice goalkeeper, stating "Arsenal is one of the top teams in Britain, in Europe, if not the world, so it is something that would definitely interest any player". Hearts failure to qualify for European competition at the season's end further increased speculation that Gordon would be sold, with Sunderland and Aston Villa rumoured suitors in July 2007. His appearance in Hearts 3–1 friendly defeat by Barcelona on 28 July proved to be his last for the club for 13 years.
On 8 November 2007, Gordon was inducted into the Hearts Hall of Fame. Still only 24, he was the youngest player ever to have that honour bestowed upon him.

### Sunderland

In August 2007, Gordon agreed a five-year contract with Sunderland. The £9 million fee was the highest a British club had ever paid for a goalkeeper, until Manchester United paid around £17 million for David de Gea in 2011. Gordon made his debut for Sunderland in the opening game of the 2007–08 Premier League against Tottenham Hotspur, keeping a clean sheet as his side won 1–0. During this match, the rival goalkeeper was Paul Robinson and the England first choice. It was the first time a Scotland first choice goalkeeper and an England first choice goalkeeper had faced each other in a club match since 2001, when Arsenal's David Seaman faced Tottenham's Neil Sullivan.
Following Sunderland's 7–1 loss to Everton in December, Sunderland manager Roy Keane dropped Gordon to the bench and Welsh goalkeeper Darren Ward took his place. Gordon regained his place as first choice goalkeeper three games later.
Midway through the 2008–09 season, Gordon was sidelined for several months with a knee injury and found himself as backup to Márton Fülöp. He regained his place in the starting eleven at the beginning of the 2009–10 season. On 7 November away at Tottenham Hotspur, he broke his arm after colliding with Jermain Defoe and was sidelined for nearly three months. He returned on 23 January in a game against Portsmouth.
During the summer of 2010, Gordon had surgery on his broken arm to remove a metal plate. He returned to training days later, but he fractured his arm again during a training session. It was confirmed he would miss the start of the 2010–11 Premier League campaign, with Sunderland's new goalkeeper Simon Mignolet deputising. When Gordon returned from injury, Mignolet remained the first choice goalkeeper. On 9 November 2010, Gordon made his first appearance of the season away at Tottenham Hotspur. The game ended in a 1–1 draw. Gordon also starred in Sunderland's 3–0 win over Chelsea. On 18 December 2010, Gordon made a stunning reflex save to deny Zat Knight in a 1–0 win against Bolton Wanderers. In 2012, this effort was voted as the best save in the 20-year history of the Premier League.
Injury struck again when he suffered a tendon injury in his knee, resulting in him being replaced by Mignolet. The knee tendon problem allowed him to be the substitute goalkeeper, despite not being fully fit. On 19 April 2011, it was revealed that Gordon had undergone knee surgery to repair his knee tendon and an anterior cruciate ligament injury he had suffered. The recruitment of Coventry City goalkeeper Keiren Westwood added further doubt about the Scotsman's future. Gordon was linked with Arsenal and Celtic amongst other clubs in August 2011. Gordon rejected a loan move to another club to continue his rehabilitation on Wearside. He made his return on 4 January 2012 for the Sunderland reserve team, keeping a clean sheet in a 2–0 victory against Arsenal reserves. He returned to first team action on 28 April against Bolton Wanderers, but he was one of nine players released by Sunderland on 19 May 2012.

### Free agent and coaching work

Gordon was linked with a move to Celtic in 2011 and 2012, but he did not sign with another club for two years as he continued to be troubled by knee injuries. He regularly did television work during his time out of football. After meeting Ian Murray while doing television work, Gordon did some coaching work for Dumbarton on a casual basis. Gordon then admitted it was highly unlikely that he would play during 2012–13 and that he was considering becoming a coach. Gordon trained with Rangers during the 2013–14 season, but was not offered a contract. In March 2014, Gordon said that he had fully recovered from his injuries and was looking to resume his playing career. In June, Celtic confirmed that Gordon had been training with them and that they were in signing talks with him.

### Celtic
#### 2014–15

In July 2014, Gordon signed for Celtic. He made his first appearance for Celtic on 19 July, playing in the first half of a pre-season friendly against Dynamo Dresden. Gordon made several saves in his 45-minute appearance, and said afterwards "It was good to get back playing. From a personal point of view, it's been a long time out. So it was good to get out there and to play for 45 minutes and get a clean sheet in the first half. I have to be happy with that." Fraser Forster was transferred to Southampton for a reported £10 million transfer fee in August, clearing the way for Gordon to become first choice goalkeeper. Gordon made his first competitive appearance in over two years on 13 August 2014, a 3–0 win against St Johnstone.
After only three games for Celtic, an impressive start to the season earned Gordon a recall to the Scotland national team in August 2014. His good form for Celtic continued both domestically and in Europe especially, with strong displays against Salzburg, Dinamo Zagreb and Astra Giurgiu, helping Celtic qualify for the UEFA Europa League knockout stages. His performances drew praise from his teammates, club coaches, national coach, supporters and observers. Many believed he was finally over his long-term injury problems and back to his best. He was already being tagged as one of Celtic's greatest bargains. Gordon also shut out his former team Hearts twice in cup matches.
Gordon kept eight successive clean sheets between December and February, which almost became nine until a 72nd minute St Johnstone goal ended the run on 14 February 2015. An outstanding double save near the end ensured a 2–1 win for Celtic. Gordon endured a torrid night in the Europa League against Inter Milan on 19 February 2015, being culpable for Inter's opening goal and at fault for their third before half-time; Celtic rallied to square the match at 3–3 with an injury time goal, and Gordon went some way to redeeming his earlier errors by pulling off an outstanding save from Xherdan Shaqiri's free kick in what proved to be the last action of the game. In the second leg at the San Siro, Gordon kept 10-man Celtic in the tie with a number of excellent saves until the 87th minute when Fredy Guarín scored with a powerful strike to give Inter a 1–0 win on the night and a 4–3 aggregate victory. One of Gordon's saves away against Inter was compared to Gordon Banks' save against Pele in 1970.
Gordon won his first silverware with Celtic after they defeated Dundee United 2–0 in the Scottish League Cup Final on 15 March 2015. He kept a clean sheet in every round of the competition, which included playing in the first Old Firm game for three years. According to The Scotsman in March 2015, Gordon was attracting the attention of Chelsea. He made his 50th Celtic appearance in a 2–1 league win at Dundee on 22 April 2015. A day after shutting out Dundee in a 5–0 home win, Celtic became league champions after Aberdeen lost at Dundee United on 2 May 2015. It was his first league title as a player. Gordon played 52 times and kept 28 clean sheets in his first season at Celtic.
Gordon was voted Player of the Year by the Scottish Football Writers' Association, and was selected in the PFA Scotland Premiership Team of the Year. He was omitted from the PFA Players' shortlist, despite having been touted amongst the favourites to win it.

#### 2015–16

For the 2015–16 season, Gordon was assigned the number 1 shirt to wear, replacing the number 26 shirt he wore when he was signed. In July 2015, Gordon signed a new contract with Celtic until 2018. His first match of season 2015–16 was the 2–0 UEFA Champions League second qualifying round first leg win at home to Stjarnan on 15 July 2015. Celtic progressed 6–1 on aggregate. The 1–0 win against Qarabağ, in the third qualifying round first leg at home, was his 30th clean sheet in 55 appearances for Celtic. Celtic advanced 1–0 on aggregate. Gordon also started the league campaign with consecutive clean sheets against Ross County and Partick Thistle. However, Gordon's form at this time was generally poorer than the previous season, in part due to Celtic struggling to find a settled defensive line-up following the departures of centre-halves Virgil van Dijk and Jason Denayer.

#### 2016–17

Gordon saved a penalty in a 2–0 second leg defeat at Hapoel Be'er Sheva in the UEFA Champions League play-off round, with Celtic progressing to the group stage after a three-year absence 5–4 on aggregate. He made his first ever appearance in the UEFA Champions League group stage in a 3–3 home draw with Manchester City on 28 September 2016.
Gordon won his second League Cup with the club without conceding a goal in the competition (just like in 2014–15), after Celtic beat Aberdeen 3–0 in the final, as the club won its 100 major trophy on 28 November 2016. He kept a clean sheet in a 1–0 home win against St Johnstone on 25 January 2017, a result which meant that Celtic equalled a 50-years-old club record 26 match unbeaten start to a domestic season (a record set by the Lisbon Lions in 1966–67). Gordon shut out his former club Hearts four days later, in a 4–0 home win, as Celtic broke the Lisbon Lions' unbeaten record.
Premier League club Chelsea made an approach for Gordon during the January 2017 transfer window, which Celtic rejected. In March 2017, Gordon signed a contract with Celtic that ran until 2020. Gordon again shut out Hearts, in a 5–0 victory at Tynecastle on 2 April 2017, with the club clinching the Scottish Premiership title for the sixth successive season in record time with eight matches remaining. The team also broke a 100-years-old club record for an unbeaten start to a domestic season (36 matches in-a-row in 1916–17), with this win being their 37th domestic match unbeaten.
Gordon was also in goal for Celtic in the 5–1 league win at Rangers on 29 April 2017, which was the club's biggest victory at Ibrox since 1897 (4–0 in 1897). On 21 May 2017, he kept a clean sheet in a 2–0 home win over Hearts in the final league match of the season, a result which meant Celtic completed a 38-match league season without losing a match, the first team to go an entire Scottish league season without a defeat since season 1898–99. He also won the Scottish Cup, after he played in the 2–1 final win against Aberdeen on 27 May 2017, which saw the club complete the domestic treble and finish a full 47-match domestic season without losing.
Celtic topped the list for the most shut-outs in the SPFL with 19 clean sheets and held the joint best record with Hibernian for goals conceded in the SPFL with 25.

#### Later years

Celtic again won domestic trebles in 2017–18 and in 2018–19. This meant they had won all three competitions for three consecutive years, a feat known as the "treble treble". Gordon played regularly during that time but occasional high-profile mistakes, such as in the UEFA Europa League against Fenerbahçe in 2015 and Red Bull Salzburg in 2018, posed doubts as to his reliability; he lost his place to Fraser Forster (returning from Southampton on loan) in 2019–20, and made only six first team appearances during that season. He decided to leave Celtic in June 2020, despite having been offered a new contract, as he wanted to play more regularly.

### Return to Heart of Midlothian

After leaving Celtic, Gordon signed a two-year contract with Heart of Midlothian in June 2020. He made a good start to his second spell with Hearts, helping them reach the 2020 Scottish Cup Final by making key saves during the semi-final against Hibs (delayed from the previous season). Against Ayr United, Gordon captained the team on his 200th appearance for the club. He became the 75th Hearts player to reach that milestone. A 3–0 win marked his 66th Hearts shut out. He finished the season with eight consecutive clean sheets. Gordon lost out to teammate Liam Boyce for Championship Player of the Year, but did make Team of the Year for the division.
Ahead of the 2021–22 season Gordon became the Hearts club captain, following the retirement of previous captain Steven Naismith. He signed a new contract in December 2021, which is due to keep him at the club until 2024. In November 2021 he broke the record, previously held by Steven Pressley, for most international appearances made while with Hearts. Gordon was shortlisted for PFA Scotland Player of the Year for the first time in 2021–22 and made the divisional Team of the Year category again. Despite missing out on the PFA award (to Callum McGregor), the SFWA voted him their Footballer of the Year for a record third time.
On 24 December 2022, Gordon suffered a serious leg injury following a collision with Steven Fletcher during a Scottish Premiership match against Dundee United. Hearts confirmed two days later that Gordon had suffered a double leg break, and that he would miss the remainder of the 2022–23 season.
Gordon resumed training with the Hearts first team in October 2023, and he made his first appearance since injury on 20 January 2024 against Spartans in the Scottish Cup. That appearance meant he became the oldest man to play in a competitive game for Hearts. A month later, he signed a new contract with Hearts that will keep him with the club for the 2024–25 season.

## International career
### Scotland under-21 team

Gordon made his debut for the Scotland under-21 team on 4 September 2002 at New Douglas Park, Hamilton in a 2–1 win versus Israel. Over the next year he played a further four times for the under-21 team.

### Full international, 2004–2010

Gordon made his full international Scotland debut in a 4–1 victory versus Trinidad and Tobago at Easter Road on 30 May 2004. Scotland started their qualifying campaign for the 2006 World Cup on 8 September 2004 versus Slovenia at Hampden Park. Gordon played in goal and kept a clean sheet, although Scotland performed poorly in a goalless draw. Having been given his debut by Berti Vogts, Gordon established himself as the Scotland first-choice goalkeeper throughout the campaign and under Vogts' successor Walter Smith, playing in all ten of Scotland's qualifying matches.
BBC pundit and former player Allan Preston saw him as a potential Scottish great, describing him as "one of the best goalkeepers in Europe". After a 1–1 draw versus Italy, Gordon obtained praise from the opposition goalkeeper Gianluigi Buffon, who said he could be one of the best goalkeepers in the world. Gordon kept clean sheets as Scotland won 1–0 twice versus France in UEFA Euro 2008 qualification. He also registered an assist in the Parc de Princes, after James McFadden controlled Gordon's punt, turned his marker and smashed home from 35 yards. Gordon had attained a total of 40 caps by November 2010 but his injury problems prevented him from adding to this total for the next four years.

### Comeback, 2014–2017

Following his comeback with Celtic, Gordon was recalled to the Scotland squad in September 2014 for a Euro 2016 qualification match against Germany. Gordon eventually obtained his 41st cap, ending a four-year absence from international football, when he came on as a half-time substitute in a friendly defeat to England on 18 November 2014. Gordon started his first Scotland match in almost five years in a friendly win versus Northern Ireland in March 2015
Gordon made his first start for Scotland in a competitive match in seven years in a 2018 World Cup qualifier against England in November 2016, and retained his place in the team for the 1–0 home win versus Slovenia in March 2017. On 5 October 2017, Gordon obtained his 50th cap versus Slovakia at Hampden Park to enter Scotland's Roll of Honour. Willie Miller presented him with a medal after he won his 50th cap.

### Steve Clarke, 2020–present

Gordon was not selected by Scotland manager Steve Clarke during his first year in charge, as he had lost his first team place at Celtic. After a good start to his second stint with Hearts, Gordon was recalled to the national squad in November 2020. The call up included the defeat of Serbia in the UEFA Nations League play-off final to qualify for UEFA Euro 2020, the Scotland men's team's first major tournament in 23 years. He also gained his 55th cap, a 1–0 away defeat by Slovakia in the 2020–21 UEFA Nations League, set a new record for the longest-spanning international career for a Scottish player (16 years 5 months and 17 days). This beat a mark set by his rival for the position David Marshall just three days earlier, which itself had overtaken a record dating back to 1903 by fellow goalkeeper Ned Doig.
Gordon was picked in the Scotland squad for Euro 2020, but was an unused substitute during the tournament as Marshall played in all of Scotland's three matches. Gordon became the first choice goalkeeper again in September 2021, as Marshall was no longer playing for his club. In November 2021 he saved a penalty during a 2–0 win in Moldova that clinched a place in the World Cup qualifying playoffs. Teammate Callum McGregor said Gordon was "like Peter Pan" after that game, a reference to the longevity of his performances.
Gordon was shortlisted for SFWA International Player of the Year in 2021–22, an award he had already won in 2009–10.
On 14 June 2022, he gained his 70th Scotland cap in a 4–1 Nations League victory over Armenia, becoming only the seventh player in history to hit 70 caps for the Scottish men's team. In his 73rd cap against Ukraine (0–0), Gordon recorded his 30th clean sheet, which ensured promotion to Group A of the UEFA Nations League. Gordon missed all of UEFA Euro 2024 qualifying due to a broken leg suffered in December 2022, although Scotland qualified automatically in his absence. In February 2024 he stated that he wanted to become Scotland's oldest player, the record being held by David Weir, and was subsequently recalled to the international squad a month later. Gordon broke that record on 7 June when he appeared as a second-half substitute in a friendly against Finland, but he was left out of the final squad for UEFA Euro 2024.
He kept consecutive clean sheets in the Nations League in October and November 2024, as Scotland drew 0-0 with Portugal and beat Croatia 1-0. This was followed by a 2-1 win over Poland on 18 November 2024, which saw Gordon became the third oldest player to compete in European competition at 41 years and 322 days old.

## Personal life

Gordon has four children: daughters Freya and Emma with former wife Jennifer, and sons Ace Harlow (born 2021) and Axel (born 2022), from a relationship with his partner Summer Harl. Axel was born on the morning of a Scotland international match that his father played in.

## Career statistics
### Club

    As of 15 March 2025
Appearances and goals by club, season and competition :
| Club | Season | League | League | League | National cup | National cup | League cup | League cup | Europe | Europe | Total | Total |
| Club | Season | Division | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals |
| Heart of Midlothian | 2001–02 | Scottish Premier League | 0 | 0 | 0 | 0 | 0 | 0 | — | — | 0 | 0 |
| Heart of Midlothian | 2002–03 | Scottish Premier League | 1 | 0 | 1 | 0 | 0 | 0 | — | — | 2 | 0 |
| Heart of Midlothian | 2003–04 | Scottish Premier League | 29 | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 35 | 0 |
| Heart of Midlothian | 2004–05 | Scottish Premier League | 38 | 0 | 6 | 0 | 3 | 0 | 6 | 0 | 53 | 0 |
| Heart of Midlothian | 2005–06 | Scottish Premier League | 36 | 0 | 5 | 0 | 2 | 0 | — | — | 43 | 0 |
| Heart of Midlothian | 2006–07 | Scottish Premier League | 34 | 0 | 1 | 0 | 1 | 0 | 6 | 0 | 42 | 0 |
| Heart of Midlothian | Total | Total | 139 | 0 | 15 | 0 | 8 | 0 | 14 | 0 | 175 | 0 |
| Cowdenbeath (loan) | 2001–02 | Scottish Second Division | 12 | 0 | 0 | 0 | 1 | 0 | — | — | 13 | 0 |
| Sunderland | 2007–08 | Premier League | 34 | 0 | 1 | 0 | 0 | 0 | — | — | 35 | 0 |
| Sunderland | 2008–09 | Premier League | 12 | 0 | 1 | 0 | 1 | 0 | — | — | 14 | 0 |
| Sunderland | 2009–10 | Premier League | 26 | 0 | 1 | 0 | 3 | 0 | — | — | 30 | 0 |
| Sunderland | 2010–11 | Premier League | 15 | 0 | 0 | 0 | 0 | 0 | — | — | 15 | 0 |
| Sunderland | 2011–12 | Premier League | 1 | 0 | 0 | 0 | 0 | 0 | — | — | 1 | 0 |
| Sunderland | Total | Total | 88 | 0 | 3 | 0 | 4 | 0 | 0 | 0 | 95 | 0 |
| Celtic | 2014–15 | Scottish Premiership | 33 | 0 | 5 | 0 | 4 | 0 | 10 | 0 | 52 | 0 |
| Celtic | 2015–16 | Scottish Premiership | 35 | 0 | 2 | 0 | 3 | 0 | 12 | 0 | 52 | 0 |
| Celtic | 2016–17 | Scottish Premiership | 35 | 0 | 5 | 0 | 4 | 0 | 11 | 0 | 55 | 0 |
| Celtic | 2017–18 | Scottish Premiership | 26 | 0 | 3 | 0 | 4 | 0 | 12 | 0 | 45 | 0 |
| Celtic | 2018–19 | Scottish Premiership | 18 | 0 | 0 | 0 | 0 | 0 | 14 | 0 | 32 | 0 |
| Celtic | 2019–20 | Scottish Premiership | 0 | 0 | 0 | 0 | 2 | 0 | 4 | 0 | 6 | 0 |
| Celtic | Total | Total | 147 | 0 | 15 | 0 | 17 | 0 | 63 | 0 | 242 | 0 |
| Heart of Midlothian | 2020–21 | Scottish Championship | 26 | 0 | 2 | 0 | 3 | 0 | — | — | 31 | 0 |
| Heart of Midlothian | 2021–22 | Scottish Premiership | 36 | 0 | 5 | 0 | 5 | 0 | — | — | 46 | 0 |
| Heart of Midlothian | 2022–23 | Scottish Premiership | 16 | 0 | 0 | 0 | 1 | 0 | 8 | 0 | 25 | 0 |
| Heart of Midlothian | 2023–24 | Scottish Premiership | 3 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 7 | 0 |
| Heart of Midlothian | 2024–25 | Scottish Premiership | 28 | 0 | 3 | 0 | 1 | 0 | 8 | 0 | 40 | 0 |
| Heart of Midlothian | Total | Total | 109 | 0 | 14 | 0 | 10 | 0 | 16 | 0 | 149 | 0 |
| Heart of Midlothian | Hearts total | Hearts total | 248 | 0 | 29 | 0 | 18 | 0 | 30 | 0 | 324 | 0 |
| Career total | Career total | Career total | 494 | 0 | 47 | 0 | 40 | 0 | 92 | 0 | 674 | 0 |
* ↑ Includes Scottish Cup, FA Cup
* ↑ Includes Scottish League Cup, Football League Cup
* 1 2 Appearances in UEFA Cup
* ↑ Four appearances in UEFA Champions League, two appearances in UEFA Cup
* ↑ Two appearances in UEFA Champions League, eight appearances in UEFA Europa League
* ↑ Six appearances in UEFA Champions League, six appearances in UEFA Europa League
* 1 2 Appearances in UEFA Champions League
* ↑ Six appearances in UEFA Champions League, eight appearances in UEFA Europa League
* ↑ One appearance in UEFA Champions League, two appearances in UEFA Europa League
* ↑ The later stages of the 2019–20 Scottish Cup were played in October and December 2020.
* ↑ Two appearances in UEFA Europa League, six appearances in UEFA Europa Conference League
* ↑ Two appearances in UEFA Europa League, four appearances in UEFA Conference League

### International

    As of match played 18 November 2024
Appearances and goals by national team and year :
| National team | Year | Apps | Goals |
| Scotland | 2004 | 5 | 0 |
| Scotland | 2005 | 9 | 0 |
| Scotland | 2006 | 5 | 0 |
| Scotland | 2007 | 10 | 0 |
| Scotland | 2008 | 6 | 0 |
| Scotland | 2009 | 3 | 0 |
| Scotland | 2010 | 2 | 0 |
| Scotland | 2011 | — | — |
| Scotland | 2012 | — | — |
| Scotland | 2013 | — | — |
| Scotland | 2014 | 1 | 0 |
| Scotland | 2015 | 2 | 0 |
| Scotland | 2016 | 2 | 0 |
| Scotland | 2017 | 7 | 0 |
| Scotland | 2018 | 2 | 0 |
| Scotland | 2019 | — | — |
| Scotland | 2020 | 1 | 0 |
| Scotland | 2021 | 9 | 0 |
| Scotland | 2022 | 10 | 0 |
| Scotland | 2023 | — | — |
| Scotland | 2024 | 5 | 0 |
| Total | Total | 79 | 0 |

## Honours

Hearts Academy
* Scottish U-18 Premier League: 2000–01
* Scottish Youth Cup: 1999–2000
Heart of Midlothian
* Scottish Cup: 2005–06
* Scottish Championship: 2020–21
Celtic
* Scottish Premiership: 2014–15, 2015–16, 2016–17, 2017–18, 2018–19
* Scottish Cup: 2016–17, 2017–18
* Scottish League Cup: 2014–15, 2016–17, 2017–18, 2018–19, 2019–20
Individual
* SFWA Footballer of the Year: 2005–06, 2014–15, 2021–22
* SPFL Premiership Player of the Year: 2021–22
* SFWA Young Player of the Year: 2003–04
* SPL Young Player of the Year: 2003–04
* SFWA International Player of the Year: 2009–10
* Heart of Midlothian Hall of Fame: 2007
* Hearts Supporters Player of the Year: 2021–22
* Hearts Players' Player of the Year: 2021–22
* PFA Scotland Premiership Team of the Year: 2014–15, 2021–22
* Scotland national football team roll of honour inductee: 2017
* SPL Young Player of the Month: December 2003