If you go to www.ripoffreport.com/ and put the search term “SEO” in the search bar you will get over 450 complaints listed.   There are actually collection agencies that specialize in getting money from companies that don’t pay their SEO bill.   It doesn’t take much research to find out there are a lot of unhappy SEO clients.   It might even be safe to say that there are more dissatisfied businesses than satisfied for SEO services.   We certainly see that in many potential new clients we call on where they are not embarrassed about stating that they were “cheated” out of money by an SEO company.  
SEO is getting a lot of bad reputation, some of it deserved and some of it not.   I think that the issues can be categorized as follows:
1.        Evil
2.       Ignorant
3.       Unrealistic
Evil:   There are companies out there who are blatantly and knowingly misleading their customers to get their business. They will lock them in on a long term contract and keep collecting money until the client has had enough and run off into the sunset to find another sucker.   They might send you a report on keywords that you are ranking in, not bothering to tell you that you already ranked on them before they met you or that the terms they show you ranking on may sound impressive, but no one is searching for them.   I think there are as many dishonest schemes out there as fish in the ocean. These companies rely on the fact that most of their clients don’t understand the internet, websites or search engines and one can just about say anything and they won’t have any basis to challenge it. 
Ignorant: There are a lot of companies that claim that they do SEO, but really don’t know very much about it. Some of them are companies that haven’t kept up with the changes, but keep doing the things that seemed to work 4 or 5 years ago. There are companies that build websites and suddenly decide that they are SEO experts, which probably means just putting in title tags, Meta descriptions and Meta keyword descriptions.   These companies actually are trying to do honest work, but don’t really know what they are doing. The success rate with these companies is hit or miss;   doing work with these people could be harmful as they could unintentionally do things that hurt your rankings or even get you banned. They get a lot of their “SEO knowledge” from unqualified sources and have as much mis-information as good information.  
Unrealistic:   Many clients quite frankly have very unrealistic expectations about SEO. Some of them think that an SEO specialist somehow goes into the “back door” of the website (whatever that is) and puts in keywords. They believe that they could give the SEO person a set of keywords and expect to be ranked on them within days or weeks.  Sometimes people hear from a “friend of a friend” who works at company xyz that knows this guy and he got fantastic results and it only took him 10 minutes. Good SEO is a long term plan, getting ranked today on worthwhile keywords takes good research and ongoing work.
Some of this unrealistic expectation can come from an aggressive sales person who says just about anything to convince you to go with him. Once he lands the order, the SEO people are actually doing good ethical SEO work, but the salesman hyped up the expectation to the point that anything less than a miracle was a failure.
How to pick a good ethical SEO specialist?
The SEO industry is unregulated; anyone can claim to be an expert and most of the typical clients won’t know the difference.     Companies are willing to pay a lot of money for SEO services, because getting high visibilities in search engines is a great way to get business.    With good solid work, a website can become a lead generating machine. When compared to other marketing services such as tradeshows, televisions advertising, magazine ads, even yellow page advertising, good SEO is one of the best values around. That is -- if it works, and since we all ready have established that there are a lot of bad SEO companies trying to get your money, the question becomes, how can you make a good decision when you aren’t and expert yourself?
Here are my ten sets of criteria that may help save you some headaches. Some of my colleagues thought many of these were unfair, so take it as my opinion and not an absolute.
1.       Choose a company that is local to your business, where you can actually meet and talk with the person that is doing the work. There are enough SEO specialists in any area that you don’t have to go out of state to find one.
2.       Just like in any business, getting references from people you trust can help. Asking the company for references is great, but it is pretty easy to manufacture 3 or 4 good references.
3.       Make sure that measuring and reporting traffic on your site is part of the SEO program; have the company install Google analytics on your site with YOUR account. Agree before hand on what the critical metrics to track are. It is simply too easy to spoof a good rankings report. A truly effective program should see improvements in key metrics.
4.       Avoid companies that are requiring a year contact. If they are doing good work for you, you won’t want to leave them.   But to be fair, you need to stick with anyone at least 6 months to really test them.
5.       Don’t pick any company that spammed you with an unsolicited email
6.       Don’t pick any company that makes incredible ranking guarantees such as we guarantee 100 first page rankings.
7.       Any good SEO program involves content generation and modification – if someone proposes SEO by only doing link building – don’t go with them.
8.       Don’t go with any company that claims that they have a totally unique system that no one else is using.
9.       Don’t go with any company that uses an automated phone solicitation system.
10.   Ignore online customer reviews; SEO companies know how to fake those.
So there you have it, my unqualified and unsubstantiated opinion about how to choose an SEO specialist, I would be very curious to find out how many companies  that met all 10 of these criteria’s were  accused as scammers.