Ronaldo, who has scored 28 goals in Spain's domestic league this season and is also the leading marksman in the Champions League, has been complaining of discomfort in his left knee in recent weeks and has played on while receiving treatment from Real's medical staff.
The Portugal captain limped off near the end of Wednesday's Champions League quarter-final, first leg at home to Borussia Dortmund, which Real won 3-0, and Ancelotti said he would be back for Tuesday's return game in Germany.
"We will rest Cristiano tomorrow because he is a bit tired," Ancelotti told a news conference. "We want to avoid taking any risks, we have a lot of important games coming up," added the Italian.
"For this game we prefer to leave him at home to work so he can be ready for the match on Tuesday.
"He will be fresher and he can recover better. I spoke with him and we decided it would be better to rest."
Anything other than a win for Real against sixth-placed Sociedad could severely dent their chances of winning the title.
They are third with seven games left, two points behind champions Barcelona and three adrift of surprise leaders Atletico Madrid.
Barca, chasing a fifth title in six years, host bottom side Real Betis on Saturday and Atletico are at home to seventh-placed Villarreal.
Ancelotti said Real's Argentina winger Angel Di Maria was recovering well from the illness that kept him out of the Dortmund game and should be on the bench on Saturday.
Forward Jese, who needed surgery after rupturing the cruciate ligament in his right knee last month and will miss the rest of the season, was returning to consult with his surgeon in Germany on Friday as the knee had become inflamed and he had been suffering from fever, he added.
- Sports & Recreation
- Borussia Dortmund