Housetraining frustrates new owners mostly because expectations are set too high too early. Most puppies aren't fully reliable until somewhere between four and six months old, and some take longer, that's normal, not a sign you're doing it wrong.
A schedule beats reacting to accidents
Take your puppy out after every wake-up, after every meal, after play sessions, and roughly every one to two hours in between for very young puppies. Reward immediately after they go in the right spot, not after you're back inside, timing matters. A predictable schedule prevents most accidents before they happen, rather than punishing them after the fact.
Watch for the signals
Circling, sniffing intently, and sudden restlessness are common pre-toileting signs. Learning your specific puppy's tells takes a week or two of close observation, but it pays off since you can intervene before an accident rather than after.
Accidents are information, not failures
If an accident happens, it usually means you missed a schedule cue or gave too much freedom too soon, it's rarely about the puppy being stubborn. Clean thoroughly with an enzymatic cleaner, since residual scent encourages repeat accidents in the same spot. Never rub a puppy's nose in it or scold after the fact, they can't connect the punishment to something that happened minutes earlier, it just creates anxiety.
Managing space matters
Restricting access to the whole house early on, using baby gates or a pen, makes accidents easier to prevent and catch in progress. Gradually expand their freedom as reliability improves, rather than giving full run of the house on day one.
Realistic setbacks
Regression happens, often around adolescence, or after a change in routine like moving house or a new pet. Go back to the basic schedule rather than assuming training has failed entirely, most regressions resolve within a couple of weeks of returning to consistent fundamentals.