Raised in Wishaw, Keatings joined Celtic's youth system from local boys club Wishaw Wycombe Wanderers at a young age and captained the under-17 side.[2] While a member of the Glasgow club's under-19s, he was named as a substitute for the first team's game against Hibernian on 10 November 2010.[3] He made the bench on one further occasion[4] before suffering a cruciate knee injury in April;[5] despite the injury, he still finished the under-19s' top scorer with 25 goals.[6] In June 2011, he was rewarded with a new three-year contract extending his stay until 2014.[5]
After a long rehabilitation and playing with the Celtic development squad, he was sent out on loan to aid his recovery.
On 24 August 2012, Keatings joined First Division club Hamilton Academical on a loan deal.[12] The next day, he made his debut coming on as a substitute in the second half, in a 1–0 loss against Cowdenbeath. On 22 September 2012, Keatings came on as a second-half substitute scored twice, in a 3–3 comeback against Dumbarton.[13] By the January transfer window, Keatings' spell with Hamilton had been terminated after his loan was cancelled.[14]
Hamilton Academical
After ten years with Celtic, Keatings was released by the club in summer 2013.[15] Ahead of the new 2013–14 season, he went to Australia to have trials at Brisbane Roar[16] and Newcastle Jets.[17] Despite an offer in Australia[18] he joined Hamilton on a permanent deal on 18 July, signing a one-year contract having impressed the club during pre-season training.[19] At the time, he said that he hoped joining the club would help him get his career back on track.[20]
Keatings made a perfect start for the club when he scored twice in the first round of the League Cup as they beat Stirling Albion 3–0.[21] In the league, he scored three goals in two games against Raith Rovers[22] and Dumbarton.[23] He scored twice in a 2–0 win over Livingston on 5 October 2013, ending a goalscoring drought of six matches.[24] However, he sustained a calf injury during a match against Raith Rovers and was sidelined for two weeks.[25] He made his return in a 3–0 loss to Dundee on 23 November 2013. Keatings would score another three goals in two games against Cowdenbeath[26] and Dumbarton, which put his goal tally at ten.[27] After the match, he stated that he believed the promotion race in the Scottish Championship would go all the way in the remaining 15 matches.[28] Keatings scored his 15th goal of the season in all competitions in a match against Raith Rovers on 25 March 2014. He said after the match: "I hadn't scored in three games and managed to put a header in the corner. The position I'm playing in means I haven't had many chances like that, it's probably the only one that has dropped to me in the box, and I'm delighted. Hopefully I get more and achieve my target."[29]
Despite initially indicating he would sign a new contract with Accies following their promotion to the Scottish Premiership,[30] Keatings rejected the club's offer.[31] In all he made 35 appearances, scoring 15 times over the course of the season.[32]
Heart of Midlothian
On 13 June 2014, it was announced Keatings had signed a two-year contract with recently relegated Scottish Championship side Heart of Midlothian.[33] After joining Hearts, Keatings said joining the club made him "over the moon to have the opportunity to sign for a big club like this after leaving Hamilton."[34] In his first league start, he scored a hat-trick in a 4–0 victory over Raith Rovers at Stark's Park.[35] Keatings scored a "fantastic" goal against Queen of the South at home in a 4–1 victory,[36] for his fifth league goal of the season. He was released by Hearts at the end of the 2014–15 season, having only served half of his initial two-year contract.[37]
Hibernian
On 1 June 2015, Keatings signed a two-year contract with Hearts' Edinburgh rivals, Championship side Hibernian.[38] In his first league start for Hibs he scored the opening goal in a 2–0 victory over Raith Rovers at Easter Road.[39] On 7 November, he scored a hat-trick for Hibs in a 4–1 win at St Mirren.[40] He netted twice against Falkirk in the second leg of the play-off semi-final, although Hibs eventually lost the match 3–2. He came on as a substitute in the 2016 Scottish Cup final, which Hibs won 3–2 against Rangers.[41]
Keatings scored eight goals in 30 appearances for Hibs during the 2016–17 season,[42] as they earned promotion to the Premiership.[43]
Dundee United
Dundee United announced on 8 May 2017 that they had reached an agreement to sign Keatings when his contract with Hibernian expired, the player having made a decision to make a 'fresh start'.[42][44] He spent one season with United, during which they failed to achieve promotion and he struggled with his mental and physical health.[45] Having decided to commute to Dundee from his home in Lanarkshire,[46] he later remarked that the travelling distances were a factor in his ongoing depression during the period, as well as injuries and personal family issues.[47][44]
Return to Hamilton
On 31 August 2018, Keatings signed for Hamilton Academical for a third time, with the club having remained in the Premiership throughout the four years since his previous departure.[48] His mental health improved at a club he knew well and which was far closer to his home.[44] Keatings left Hamilton in May 2019 after his contract was mutually terminated.[49]
After the club appealed in an effort to overturn the referee's decision, it was ruled the ban would be upheld, with no further explanation.[52] This led to reactions from fans and from pundits such as Gary Lineker, who stated "Not even close to a dive. Would be an injustice to miss out on a cup final for this."[53] The Scottish Football Association then rescinded the ban a week later, stating that the original appeal panel members had not considered all the available evidence, meaning their decision was "not competent".[54]
Raith Rovers
Keatings signed a pre-contract agreement with Raith Rovers in March 2021, a two-year agreement due to begin in the summer of 2021.[55]
In September 2021 Keatings moved on loan to League One club Montrose.[56]
Forfar Athletic
Despite struggling in his time with Raith and Montrose with a hip injury, Keatings joined Scottish League Two side Forfar Athletic with a vow "to resurrect his playing career".[57]