Quoting some Stack Exchange resources below.
What is voting down?
Voting down, also known as "casting downvotes", is how the community indicates which questions and answers are least useful.
When should I vote down?
Use your downvotes whenever you encounter an egregiously sloppy, no-effort-expended post, or an answer that is clearly and perhaps dangerously incorrect.
You have a limited number of votes per day, and answer down-votes cost you a tiny bit of reputation on top of that; use them wisely.
What are the alternatives to down-voting?
The up-vote privilege comes first because that's what you should focus on: pushing great content to the top. Down-voting should be reserved for extreme cases. It's not meant as a substitute for communication and editing.
Instead of voting down:
To downvote a question, downvote immediately. If there's scope for improvement, comment and downvote. You can always undownvote if its improved. Read more
- It's unclear
- It's a plzsendtehcodez or similar question with no effort from the OP
- It's localized (will probably be useless to the world)
Note that I tend to upvote questions when their answers explain something pretty well. This is probably wrong, but that's just me.
Do NOT downvote just because:
- The question uses incorrect grammar (as long as it is comprehensible)
- The question has bad, (but clear) code; the question uses bad coding practices; the premise of the program is wrong. In this case, just comment "why haven't you done blah?". If you're answering, you can append that to your answer instead. (I've done that here). Remember, voting is to filter post quality, not code quality or OP quality.. Also, there are legitimate uses for everything, even
With answers, again, downvote immediately, comment, undownvote if fixed. With newbies I tend to be more lax, I comment first and downvote if they decide not to listen. But again, that's just me.
Try to comment whenever applicable when downvoting.
- Does not answer the question. Flag at your discretion.
- Makes no sense
- FGITW post with minimal answer: This depends upon the answer really.
- Code-only answer: A post must be useful to People From The Future™. Nobody's going to have the exact same code with the exact same issue (Well, maybe not). People From The Future™ should have an explanation of why the code is wrong/bad/whatever so that they learn something.
- Link-only answer
- Is wrong (in your opinion).
- Bad coding practices. Unlike questions, the answer should use good coding practices. For questions and answers, post quality is differently measured. For questions, it has to do with the actual question more than the code. For code-only answers, bad coding practices are..well.. bad. In the case of a good explanation with bad code, downvote, comment, undownvote. Or abstain from voting and comment. Either is fine, it's up to you.
Do NOT downvote just because:
- It's a competitor. Voting is for post quality, and you end up harming the system. Also, upvoting competing answers gets you something shiny.
- Again, grammar that does not affect comprehensibility too much.
I hope this helps. See also this thread.