Shaqiri, who joined the Reds from Stoke in 2018, scored eight goals in 63 appearances in all competitions under Jurgen Klopp.
It has been reported that Ligue 1 club Lyon have paid £9.5million for the 29-year-old.
Liverpool said on their website: “The Switzerland international finalised a switch that will see him embark on a new chapter in his career with the Ligue 1 club.
“He departs the Reds with winner’s medals in the Premier League, Champions League, FIFA Club World Cup and UEFA Super Cup.”
Shaqiri, who helped Switzerland reached the quarter-finals at Euro 2020, failed to establish himself in Klopp’s starting line-up.
He signed a five-year deal at Anfield in July 2018 after Liverpool triggered a £13m release clause.
Stoke had paid a club-record £12m to sign Shaqiri from Inter Milan in August 2015.
He made 22 Premier League appearances during Liverpool’s title-winning campaign in 2019-20, but featured in only 14 top-flight matches last season and has not appeared for Klopp’s side since a 2-1 win at West Brom in May.
Lyon finished fourth in Ligue 1 last term, missing out on a Champions League place, and appointed Dutchman Peter Bosz as head coach in May following the departure of Rudi Garcia.