"I am very happy to make this announcement. It is a privilege to be part of this Chelsea squad and the Chelsea family, at one of the most historic clubs in the Premier League," Caballero told Chelsea's website.
"It is a difficult time for everyone right now so I feel blessed by this opportunity and truly appreciate it."
Caballero has played nine times for Frank Lampard's side this term, with the Argentine's last appearance coming in a 2-2 draw at Bournemouth in late February.
The 38-year-old, who joined from Manchester City in 2017, started the season as back-up to Kepa Arrizabalaga.
He earned a run of five successive starts in the first team after the Spaniard made a series of costly mistakes.
Kepa had reclaimed his place by the time the Premier League was suspended due to the coronavirus on March 13.
"I trust in Willy, he trains brilliantly and is a great professional," Lampard said.
"He stepped into the team earlier this year and showed his quality, and his experience is invaluable in the dressing room. I'm delighted he will be with us next season."
May 20, 2020