Early career Having previously played at
C.D. Guadalajara's and
Tigres UANL's youth academy teams, Salcedo joined
Major League Soccer (MLS) club
Real Salt Lake's academy in January 2012. In August of the same year he began training with the first-team squad. Salcedo signed a
home grown player contract with Salt Lake in January 2013, having met the minimum requirement to be defined as "home grown" of one year academy training.
Real Salt Lake On 4 May 2013, Salcedo made his professional MLS debut for Real Salt Lake as a substitute against
Vancouver Whitecaps, ending in a 2–0 win entering as a substitute in the 89th minute. In the second half of the 2013 season he was a regular starter for Salt Lake starting 12 games by season's end. Following a lack of playing time in the 2014 season with Real Salt Lake, in November 2014, Salcedo took to
Twitter asking the team not to bring him into future team plans, citing issues with former general manager
Garth Lagerwey.
Guadalajara On 6 January 2015, Salcedo returned to Mexican side
C.D. Guadalajara, for the price of $450,000. Salcedo made his debut for the club in a 2–1 win at home against
Pumas UNAM in which he played the first 60 minutes. On 1 March, Salcedo scored his first goal in a 3–0 win at home against
Monterrey in which he played the full 90 minutes. At the end of his
first tournament with
Chivas, he was listed in the Best XI. The following
season, he would win the
Apertura 2015 Copa MX with Guadalajara, defeating
Club León 1–0, qualifying them to the
2016 Supercopa MX, where they would also go on to win, defeating
Veracruz 2–0.
Loan to Fiorentina On 21 August 2016, Italian club
ACF Fiorentina announced they had acquired Salcedo on loan, with the option to purchase the player at the end of the deal. Salcedo made his debut with Fiorentina on 15 September against
PAOK in their 0–0 draw in the
Europa League. He made his
Serie A debut ten days later against
Milan in a 0–0 draw.
Loan to Eintracht Frankfurt On 13 June 2017, Salcedo joined German side
Eintracht Frankfurt on an initial loan from Guadalajara with an option to buy. Following a shoulder injury sustained at the
2017 FIFA Confederations Cup, Salcedo's
Bundesliga debut came on 9 September against
Borussia Mönchengladbach which ended in a 1–0 win for Eintracht Frankfurt, playing the entirety of the match. In April 2018, Salcedo was listed as one of three center-backs nominated for the Bundesliga
Team of the Season, alongside
Mats Hummels and
Jerome Boateng. On 14 May, Eintracht Frankfurt announced they had signed Salcedo to a four-year contract, tying him to the club until 2022. On 19 May, Salcedo won the
DFB-Pokal with Eintracht Frankfurt after they defeated
Bayern Munich 3–1 in the
final.
Eintracht Frankfurt On 12 August 2018, Salcedo played in his first competitive game of the
season in Frankfurt's 5–0 loss to Bayern Munich for the
DFL-Supercup. On 1 September, during a league match against
Werder Bremen, which Frankfurt lost 2–1, Salcedo suffered a
high ankle sprain, meaning he would be ruled out of action for an undetermined amount of time. On 2 December, he reappeared as an unused substitute in Frankfurt's 2–1 loss to
Wolfsburg. Six days later, he made his return to the starting eleven in Frankfurt's 1–0 loss to
Hertha Berlin.
Tigres UANL On 22 January 2019, amidst much speculation,
Tigres UANL announced via social media the signing of Salcedo to a four-year contract, being handed the number 3 which had previously been worn by
Juninho, who had retired at the conclusion of the
2018 Apertura. He had cited family issues as the main reason for returning to Mexico. Salcedo also revealed that he did not return to C.D. Guadalajara because the team was only looking to acquire him on loan from Frankfurt, an offer which was declined by the German side. Two weeks after being officially presented with Tigres, Salcedo made his
Liga MX debut in a 2–0 victory against Veracruz. On 12 March, in the second leg of the
2019 CONCACAF Champions League quarter-finals against MLS side
Houston Dynamo, Salcedo scored his first goal with Tigres in a 1–0 victory. Four days later, he scored his first league goal with Tigres in a 4–1 victory over
Querétaro. Despite Tigres finishing runners-up in the
CONCACAF Champions League Finals to
city rivals C.F. Monterrey, Salcedo was included in the competition's Best XI. The following month, on 26 May, Salcedo won the
Clausura championship with Tigres after defeating
León 1–0 on aggregate in the
finals. On 22 December 2020, Tigres won the
CONCACAF Champions League with a 2-1 victory over MLS side
Los Angeles FC.
Later career On 31 January 2022, Salcedo returned to MLS, signing with
Toronto FC as a
Designated Player. Six months later, Toronto and Salcedo mutually agreed to the termination of his contract in order for him to return to Mexico for family reasons. Shortly after, Salcedo joined
Juárez. On 16 June 2023,
Cruz Azul reached an agreement to sign Salcedo. On 21 October, he made his debut for the club in a match against Juárez. ==International career==