Ryder, 33, took personal leave from the Saints in March but returned in round seven and played 12 games in 2021.
The All-Australian has played 26 games in two seasons at St Kilda after 170 at Essendon and 73 for Port Adelaide.
“We’re really lucky to have Jack commit long-term to the club,” Saints list manager James Gallagher said.
Advertisement
“He’s the ultimate professional, always adhering himself and others to really high-standards which is exactly what we need from a young leader like him.
“Jack has the capabilities and dedication to elevate his game to another level and can play a variety of roles for the team.
“Paddy’s continued to show his importance despite his age. His ruck work is first-class and we’ve been fortunate to have him at the club over the past two seasons.”