The Portugal international was substituted 10 minutes from the end of Real's UEFA Champions League quarter-final first-leg tie with Borussia Dortmund on Wednesday due to a minor knee problem.
And Ancelotti will give him a weekend off to recover fully.
Ronaldo has scored 45 goals in 41 appearances for Real this season in all competitions and Ancelotti is keen to give him a break ahead of the second leg in Germany against Dortmund on Tuesday.
"Cristiano will rest. He is tired and has a bit of a problem," said the Real head coach. "We prefer him to stay in Madrid, work and get ready for the next game.
"On Tuesday (against Dortmund) he will be fresher and can recover better.
"He has played a lot of games. We just want him to rest.
"I've spoken with Cristiano and together we decided it was better he rested.
"It's normal he wants to play all the game but there's no problem."
The Italian has not decided who will replace the 29-year-old against Sociedad and insisted there are a number of possibilities to choose from.
"We have options," added Ancelotti.
"Alvaro Morata could play, we could change Isco's position or move the other forwards around.
"Gareth Bale is playing well, consistently. He could change positions with Cristiano missing."
Real are third in La Liga heading into the weekend's fixtures, three points behind leaders and city rivals Atletico.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.