The Norwegian striker saw the full 90 minutes again on Sunday, something he often struggled to do at Borussia Dortmund, as he scored in a thrilling 3-3 draw at Newcastle.
Guardiola said afterwards that new signing Julian Alvarez was ready to start the attack when Haaland was rested.
“Good food, good rest,” he said when explaining Haaland’s improved fitness. “People say the apartment he bought has a good bed. Nothing in particular.
“What’s important is that he has no worries. Last season he didn’t play 90 minutes because he was injured. The physios and the doctors have done an incredible job since his arrival to avoid injury.
“Now he has one game a week. I tell you now when we have games every three days that Erling won’t play, I will play Julian.
“One of my favorite players is Bernardo [Silva] and he hasn’t played until today. Riad [Mahrez] is by far one of my favorite players – especially on the bigger stages – and today he didn’t play. When we start with matches every three days, everyone is going to play.
City came from two goals down to draw at St James’ Park after taking the lead through Ilkay Gundogan, and Guardiola paid tribute to Newcastle’s performance in the encounter.
He said: “Why not give credit to the Newcastle team? Brentford beat (Manchester) United 4-0 and everyone talks about how bad United and Brentford are? They did something right, Nope ?
“When you take these type of players with this quality, it can happen. It’s the start of the season and I think it’s really, really good for us to have this kind of experience. We spoke about it at halftime, ‘You have to live with that, 2-1 down, we’ll see what happens now, how we are as a team, let’s go’.
“That’s what we have to do to live in these kinds of situations. This is why the Premier League is so difficult. Everyone is going to drop points and we lost the first two, but considering how we fared from 2-1…”