The 29-year-old's previous contract was due to expire at the end of the season.
"This is great news for the club and shows we're heading in the right direction," Baggies manager Steve Clarke told the club's official website.
"He's a tough, uncompromising central defender who knows all about the Premier League and the opponents he's up against week in, week out. Jonas is also a very important character and leader in our dressing room."
Olsson moved to The Hawthorns from Dutch side NEC Nijmegen in 2008 for around £800,000.