The most effective time to spray weeds is when they're actively growing but before they begin to blossom. This means two applications a year -- one in spring and another in early fall -- should suffice for weed control. Spraying at these times ensures that the weeds have leaves for the herbicide to attack, yet flowers haven't developed and dispersed seeds. Younger weeds are much easier to control than older weeds for this reason.
An alternative to general weed killers is the pre-emergence herbicide, which kills weeds when the seeds are almost ready to germinate but before they sprout. The key is treating your lawn with them before weeds begin to emerge. Depending on your climate, this may mean applying them in February for spring weeds or October to control winter annuals. They begin degrading and losing effectiveness shortly after application, so you'll need to reapply them once more, six to nine weeks after the first application, for continued success.
Though weeds can steal nutrients from young grass, newly seeded lawns don't always tolerate strong herbicides. To control weeds without damaging a new lawn, wait until you've mowed the grass at least three times before applying post-emergence herbicides at half strength. Reapply the herbicide seven to 10 days later to kill any weeds that survived the initial half-strength application.
As weeds prepare for winter, they move nutrients from their foliage to their roots. If you apply herbicide at this time -- specifically sometime in autumn -- the weeds will also move the herbicide to their roots, which kills them more effectively. And though herbicides are designed not to harm an established lawn, it's smart to spray existing weeds directly with a post-emergent spray to avoid wasting it in the long run.