There are a number of common mistakes when it comes to SEO.
First and foremost when looking at onsite people make their content too keyword heavy. Remember Google doesn't just look for relations between a site and a keyword, instead they look for natural relation. So if your keyword density is to high then it seems unnatural. Trying writing a simple 500 word piece about your niche. How many times does your keyword come up or a variation of your keyword? Chances are it was 1% or less. Try and stick to this.
For the purposes of SEO you want to keep your:
Meta Title -
MAX 65 Characters
Meta Description -
MAX 150 Characters
Meta Keyword - Keep it to 5 words (there are very few cases where your web-page will ever have enough content to support more than 5 related keywords)
The Meta info should also be unique for each page and related directly to its content. If you were an automotive dealer don't have metakeywords about trucks on your car page!
Also make sure to make use of <h1> tags and <alt=> tags as these are valuable indicators to Google of your keyword and niche. Alt tags will also allow your images to be categorized.
As far as off-site goes many people think it is a rat race to have as many backlinks as possible and this is simply not true.
One of the best things you can do is check how many average backlinks your front page competitors have and shoot to be within 5% of the average. This means if all your competitors have 1000 backlinks and you have 100,000 you are over-optimizing and will be slapped down by Google.
You also want your backlinks to seem natural and link related. This is why microsites, web2.0 and social sites are handy, you can include some content on these types of backlinks to relate them to your niche, they are also rarely ever seen as spam.
Another common mistake is many people only do one type of backlinking. They get stuck in the mentality "Blog comments used to work for me, so I am only going to do blog comments". Google is pushing for more and more natural ranking factors every day, and as they do so they are getting better at the study of "organic growth". So take the following into consideration:
"A new popular website about online shopping pops up on the net. On the first day it gets 1 press release, 5 people share it on Facebook, 3 blogger writes about it, 2 people put it on Pinterest, 1 person posts it on Reddit, and 3 people like it on Google plus"
This is a very natural and diverse flow. However if on the other hand it looked like this:
"A new popular website about online shopping pops up on the net and on the first day it gets 10 blog comments and 5 posts on Facebook"
It would seem a little unbalanced to Google, thing about it, if that many people are talking about it on blogs one would expect to see a blip of it on something like Reddit or Pinterest. Obviously these are over simplified examples but it gets the general principle across that you can't go putting all your eggs in one basket.
Last but not least you have to consider the case for authority. Many people think a high
PR is the be all end all, and that used to be the case but it is now just a secondary factor. At the end of the day sites that are niche related, have strong traffic, and decent backlinks are going to be better for you. TLD doesn't matter (unless it is .edu or .gov [.edu.xx is just as useless as .com]), and exact match domains don't help that much anymore (recent Google Panda updates thwarted that approach quite aggressively).
If you are seeking authority backlinks, try to look for ones that are "in-content" side bars, footers, headers and comments do not pack the same authority as anything that can easily be user edited or bought.