Seddon was born in Berkshire, where he attended The Piggott School in Wargrave and then The Forest School, Winnersh, the partner school of Reading F.C.'s academy. He joined Reading after being spotted when playing for Twyford Comets. After a trial with Birmingham City in 2014, he took up a scholarship with the club that summer. Interviewed later that year, he assessed his strength as his left foot, and felt he needed to improve his tackling. He signed his first professional contract, of two years, in April 2016. In the 2017–18 season, he trained with the first team on occasion, and was included in the travelling squad for first-team fixtures, although did not make the bench. In December, with centre-back Harlee Dean suspended, Seddon was suggested by the Birmingham Mail as a possible addition to the squad for the visit to Fulham, and on 27 January 2018, he was given a squad number and included among the substitutes for the FA Cup fourth-round visit to Premier League club Huddersfield Town. He remained unused, and later in the season was an unused substitute for two Championship matches. In May 2018, Seddon signed a new one-year deal, with the option of a second year. He was a member of the first-team squad for their pre-season training camp in Austria, and was given a squad number for the 2018–19 season. He was an unused substitute for the 2018–19 EFL Cup first-round defeat away to Reading.
Stevenage (loan)
Seddon joined League Two club Stevenage on 30 August 2018 on loan until 15 January 2019. He made his Football League debut two days later in the starting eleven for the match at home to Cambridge United; he was substituted at half-time as his team went on to lose 1–0. Seddon made 25 appearances during his loan spell, of which 23 were in league competition.
AFC Wimbledon (loan)
The day after his loan at Stevenage expired, Seddon joined AFC Wimbledon of League One on loan until the end of the season. He went straight into the starting eleven, playing the whole of a 4–1 defeat at home to Barnsley, but suffered a minorhamstring injury that kept him out of the next match. He returned to the starting eleven for the visit to Sunderland, and stayed in it for the remaining 16 league matches, finishing with a 12-match unbeaten run that secured his team's League One status for the 2019–20 season.
First-team football with Birmingham City
Seddon made his first competitive appearance for Birmingham in the starting eleven for the opening fixture of the 2019–20 season, a visit to Brentford in the Championship. He marked his debut with a run and cross to set up Kristian Pedersen's matchwinning header. He started twice more in the league, and provided the assist for Álvaro Giménez' first goal for the club, in a 2–0 win against Barnsley, but played no part in the matchday squad after the end of August.