Raised in Bishopbriggs,[1] Fraser joined Celtic when he was eight years old, progressing through the youth ranks signing a three-year professional contract in the summer of 2010.[2] Whilst a member of Celtic's under-19 squad,[3] he was called up to the first team for a friendly match against Athletic Bilbao on 26 March 2011.[4] He made his debut the following season, on 3 November 2011, in a 3–1 win against Rennes in the UEFA Europa League, coming on as a substitute at half time and playing in the centre of defence.[5] Fraser made his first start for Celtic in a Scottish Premier League match against Inverness Caledonian Thistle on 9 February 2013.[6]
Fraser immediately signed for Ross County.[8] He made his debut for the Highland side on 24 January 2015, in a 1–0 defeat at home to Celtic.[9] On 17 March 2015, Fraser signed a new contract to keep him at Ross County until 2017.[10]
A year later he signed a further two-year extension, keeping him under contract until summer 2019.[11]
On 5 June 2020, Fraser rejected a new contract at Ross County and left the club after five-and-a-half years and making 195 appearances.[14]
St Mirren
On 28 July 2020, Fraser signed a one-year deal with St Mirren.[15] In May 2021, he signed a two-year extension to remain at the club until the summer of 2023.[16]
International
Fraser represented Scotland at under-16, under-17, under-18, under-19 and under-21 levels.[17]