You stop a dog pulling by teaching them to anchor to you as you move through the world, not by hauling back on the lead. Pulling is not stubbornness. It is a dog who has never been taught to anchor to a human while they move through the world. The walk is happening to them, not with you.
ANCHOR is brain work, not obedience drills. You are not feeding a stream of commands. You lay out the path so the dog processes what is around them and chooses to stay with you, because you made that the obvious choice. Structured walking is one form of it.
The freedom this builds reduces frustration, especially in adolescent and adult dogs who only ever learned that being good means waiting for a command.
Try this week. Before your next walk, decide on a line you will hold: the dog stays beside or behind you, not in front. If they get in front, turn around and walk the other way. Repeat as necessary. No talking, no treats, no negotiating. If you really need to get somewhere, or you feel your frustration rising, switch them into EXPLORE instead, where sniffing and pottering are allowed, rather than fighting for a line you are not in the mood to hold.
Part of the full guide: How to get a calm, well-mannered dog
New puppy? The Good Puppy Blueprint is the online program for puppies under twelve weeks. For a dog over twelve weeks, private training works it through one-on-one.