The 24-year-old has been at the Perth club since 2008 and has established himself as manager Tommy Wright's number one choice this season.
He has made 30 appearances, keeping 10 clean sheets, in this campaign.
"I'm grateful to have this sort of security and peace of mind," Clark told the club website. "This season has far exceeded my expectations."
Clark, who has had loan spells at Elgin City and Queen of the South, was injured at the weekend, going off at half time in the win at Motherwell.
"I had hoped to try and get into the team but to have managed 30 starts is very pleasing for me but I'm taking nothing for granted," he added.
"With his second half display on Saturday, Alan Mannus reminded everyone - if it were needed - what a great keeper he is and I'll need to stay focused if I want to retain my place in the team."
St Johnstone goalkeeper Zander Clark has signed a two-year contract extension until the summer of 2020.