This depends on a few factors, including the breed, coat and activity level of your dog. It also depends on how active he/she is and what activities are enjoyed. If your dog spends a lot of time outside in a yard and loves to roll around on the ground, then it will need a both more often than a dog that is mostly indoors.
Smell is also a factor. If you can smell him/her, than chances are it’s time for a bath. Breeds with a soft coat tend to get dirtier than those with a harsh-textured coat. Harsh-textured coated dogs (Collies, Shelties and lab) can be washed once a month. Also, breeds without undercoats, like Yorkies, Maltese, Shitzus and Afghans, should be bathed around once a week. It is recommended to wash your dog with a dog shampoo or a baby shampoo. If you wash your dog more than once a month, make sure that it is soap-free or is a moisturizing shampoo so you do not dry out his/her skin.
Generally speaking, you should wash your dog every 2-6 weeks.