He spent his youth with Hednesford Town and Redditch United before turning professional at Burton Albion in June 2015. He spent the 2015–16 and 2016–17 seasons on loan at Brackley Town and Kidderminster Harriers respectively before he was transferred to Port Vale in June 2017. He was loaned out to Chester in December 2017 and left the club permanently to sign for Bradford City in May 2019. He was loaned out to AFC Fylde in October 2019 and Colchester United in January 2022 before joining Colchester permanently six months later. From Colchester, he was loaned to Solihull Moors in November 2023. He joined Walsall in July 2024.
Speaking in May 2016, Nigel Clough said that "he's impressed us very much since we've come in", and "the plan with him is to get him out on loan, if we can do, to League Two or the National League".[6] He returned on loan to the National League North in June 2016 with newly relegated club Kidderminster Harriers.[7] Harriers ended the 2016–17 season in second place, and lost out to Chorley in the play-off semi-finals; manager John Eustace praised Hornby's performance in the play-offs.[8]
Port Vale
Hornby signed a two-year contract with EFL League Two club Port Vale in June 2017.[9] He faced competition for the first-team spot from Rob Lainton, Ryan Boot, and Joe Slinn.[10] He made his debut for the "Valiants" in the first round of the EFL Cup on 9 August, coming on for Lainton – who had suffered a serious thigh injury – at half-time during a 4–1 defeat to Leeds United at Elland Road.[11] He made his debut in the English Football League three days later, in a 3–2 loss to Wycombe Wanderers at Vale Park, and with Hornby conceding six goals within the space of 135 minutes, manager Michael Brown said that he was considering signing a new goalkeeper as Hornby was thrown "in the deep end" despite being "a young boy" with "a good future."[12] Hornby picked up an injury in October and was ruled out of action for six weeks.[13] On 7 December, he joined National League club Chester on an initial one-month loan.[14] "Blues" manager Marcus Bignot signed Hornby to provide competition for Alex Lynch, following the departure of back-up goalkeeper Nathan Vaughan.[15] Having established himself in the "Seals" first-team, the loan deal was initially extended by a further month, and then until the end of the 2017–18 season.[16][17] However, he was recalled by Port Vale manager Neil Aspin on 26 February after Lainton picked up an injury.[18] He got his chance to stake a first-team place under Aspin after Boot picked up an injury at the start of April.[19] He played well in the end of season run-in to help the club to avoid relegation, leading Aspin to say that "now he has proved a point and now he puts himself in a really good position to compete for the number one jersey next season."[20]
Despite playing well in pre-season friendlies, he began the 2018–19 season as back-up to experienced new signing Scott Brown, and was limited to appearances in the group stages of the EFL Trophy.[21] Brown went on to be named as the club's Player of the Year whilst Hornby was restricted to reserve team matches despite impressing in those games.[22]
Bradford City
In May 2019, after rejecting a new contract offer from Port Vale, Hornby signed a two-year contract with fellow League Two club Bradford City.[23][24] He made his debut for the "Bantams" in the EFL Cup on 13 August, in a 4–0 defeat to Preston North End at Valley Parade.[25] He made his second appearance in the EFL Trophy on 3 September, helping Bradford to beat Bolton Wanderers 4–3 on penalties following a 1–1 draw.[26] He moved on loan to AFC Fylde on 7 October after manager Gary Bowyer wanted Hornby to play regular football rather than sit on the bench as cover for Richard O'Donnell.[27]Dave Challinor stated that he brought Hornby to the "Coasters" after goalkeepers James Montgomery and Dan Lavercombe suffered a loss of confidence following Fylde's record of 29 goals conceded in the opening 15 games of the National League season.[28]
Hornby played 21 games in the 2020–21 season, which proved a difficult campaign for the club and one which he described as "a real mixed bag and a test of character" after he replaced an injured Richard O'Donnell in the starting eleven.[29] Joint-managers Mark Trueman and Conor Sellars signed Will Huffer from Bradford (Park Avenue) in January to provide back-up for Hornby rather than attempting to bring in an experienced goalkeeper to replace him in the starting line-up.[30] On 12 May 2021, he was one of four players offered a new contract by Bradford City.[31][32] Manager Derek Adams signed Alex Bass on loan from Portsmouth in January 2023, which was enough to convince Hornby that it was time to leave the club.[33]
Colchester United
Having featured nine times for Bradford during the first half of the campaign, he joined League Two rivals Colchester United on loan until the end of the 2021–22 season on 31 January 2022; "U's" manager Wayne Brown required goalkeeper cover following suspension to Shamal George, injury concerns with Dean Gerken and the inexperience of Ted Collins.[34] He made a good impression at the Colchester Community Stadium, being named in the League Two Team of the Week for the final of his eight appearances, leading to speculation that he would be a summer transfer target.[35][36]
His loan spell was made into a permanent one on 28 June after an undisclosed fee was agreed; he signed a two-year contract with Colchester.[37] He said that he was looking forward to battling with George for a first-team place in the 2022–23 campaign.[38] However, he picked up an injury. He underwent surgery to repair a SLAP tear (Superior Labrum from Anterior to Posterior tear) and a partial tear of his rotation cuff in his shoulder, which saw him miss the second half of the campaign.[39] Manager Matt Bloomfield signed Tom Smith on loan from Arsenal as cover in the January transfer window.[40]
On 15 November 2023, Hornby joined National League club Solihull Moors on loan until January 2024, after Moors had loanee Tommy Simkin recalled to his parent club.[41] However, he was recalled early from his loan by Colchester manager Matthew Etherington on 14 December after having kept one clean sheet in four games for Solihull.[42][43] He remained as Owen Goodman's understudy until he was returned to the Colchester first XI by new manager Danny Cowley at the end of the 2023–24 season.[44] United narrowly avoided relegation and Horby said he would love to be kept on at the club.[45] However, he was one of four players released by the club upon the expiry of his contract.[46]
On 24 July 2024, Hornby joined Walsall on a permanent one-year deal having impressed on his trial period; he had previously spent time with the club's academy before his departure aged 14.[50] Manager Mat Sadler said that "It's one we've been really careful about who we put alongside Tommy (Simkin) and Sam is the perfect one".[51] Simkin started in the league at the start of the 2024–25 season, though Hornby saved three penalties in two EFL Trophy games.[52]
Career statistics
As of match played 27 April 2024
Appearances and goals by club, season and competition