I teach stay and wait. Each have different meanings. Stay means to freeze in any position that they are in no matter what is going on around them and wait is a boundary command which means that they can move about freely as long as they do not cross an established boundary.
Stay is a very complex behavior and needs to be taught separately from learning the position behaviors.
Stay is the tool we use to teach our dogs self restraint. This is how they learn to resist their impulses. It is a very specific behavior different from sit, down or stand. Stay crosses over into many other behaviors as well.
Since most beginner dogs when they first learn to sit and stay, of course they think that stay means to sit. Then they learn down and stay, which they begin to think stay means do not stand. Then they learn stand and stay and this is when they begin to understand the meaning of stay, which is to freeze in any position that they are in. Now we can add stay to any other command you can think of. Lie on their side, sit up, bow, hold one paw up, etc. Stay added to any of these now means to maintain that position and do nothing else.
Teaching dogs to stay while they are still learning the word associations tends to bring slower behavioral responses. And tends to make learning the behavior not as fun for the dog. If you want fast responses, get the dog to perform the skill and release them right away. Quick response equals quick release. Once you have got the behavior in a habitually fast response, now is the time to teach the stay.
Stay, of course, is a progressive learning exercise because we are introducing different levels of distractions. People coming up to pet the dog, other animals in the area and toys flying by. These all have different degrees of influence and need to be introduced fist at an easy level and then progressively more difficult level. For instance a person walking by not looking at the dog is less exciting than a person walking by looking at the dog and making eye contact. A person making eye contact while walking up to the dog is even more exciting and a person walking up to the dog making eye contact and reaching out to touch the dog is even more exciting.
In our minds we know stay means do not move under any situation, but the dog needs to be shown this in a way that it is easy to understand. That person coming up to them reaching out to pet them is an invitation to break the stay command.
Or other animals in the area. A dog on the other side of the street is less exciting than a dog who is walking right up to them. A stay command in our minds means that the dog does not move even if another dog comes up to them and sniffs them to play with them. Stay means stay no matter what, but in the dogs mind they can not understand this unless we work our way up to this level of distractions.
Dog training is environmental, which means where ever you practice and what ever situation you practice, that is where your dog will do the best. If you want you dog to stay under a particular situation then you need to rehearse that situation so your dog understands what is expected.
Now after I have proofed my dogs under all levels of distractions then I move to the point where the command implies stay. If I say sit that means sit and stay. If I say down that means down and stay, etc. This is the time we begin to introduce advanced obedience. Since advanced means more complex behaviors grouped together into a single command. To do this in the beginning is not laying a good foundation for advanced learning.
This is why I teach stay as a separate command.
Now, wait is the command I use for boundary training. I use wait when I need to cross the street and I do not want my dog to follow. Or I open the front door and I do not want the to run through the doorway. This gives the dog a little more freedom with the understanding that there are boundaries to that freedom. I use this command if I want the dog to stay off the furniture or keep them out of a certain room. These type of things the stay command would be inappropriate.