Let me set one thing straight here.
SEO doesn't create demand.
You can't just "turn it on" and see the leads start pouring in (most of the time). That's why it is called optimization. The acronym SEO spells out search engine optimization.
Everything that an SEO does should be to optimize your website for the search engines.
If all of the stars align, and you have killer assets/content on your website that are linkable, then this is a match made in heaven. This is likely the case when you do see the floodgates open once the SEO works their magic. The site needs to be optimized to point people in the right direction. When this happens, it is a beautiful thing.
If your story doesn't go like this, then there are many things that you should check. I'll start with the actual job of the SEO, and move on to the more subjective/ambiguous.
Check That There Are No Holes
The first thing that you should do is make sure that there are no "holes" within the website. I chunk all of this together under the technical SEO umbrella. These are all of the things that an SEO should be doing to put your company's best foot forward. These include, but are not limited too, meta titles & descriptions, 300, 400, 500 response codes, etc. They can be as simple as removing a broken link, to having to do full-blown forensic work to fix something that was implemented by the buck-and-under menu SEO. The thing here is to make sure that these ducks are mostly in order. Do this before throwing in the hat this early.
A Leg to Stand On
Now that you know that your website is being worked on, you can make suggestions if you think that something could be better. Those of us that work in this industry know the best practices, but at the end of the day, you folks are at the property/business. If you feel the metas should state something else, then you can voice your opinion. Do you think that another keyword would be better? Let the SEO know.
A change can be made, and we can test the old version versus the new, and see how they perform in a side by side test. If the latest version performs better, I don't know of any SEO that will be offended. Our goal is to get the best results, and if another idea is better, than it wins...plain and simple. If the old ad works better, than the business owner can learn something new. If you are adamant that this new version should do better, you'd have to start diving deeper.
Maybe It's Something Else
So your website is in tip-top shape, and you are optimizing your web pages, but still, traffic isn't growing how you would like. What's the deal? Well, maybe it is the content? Perhaps the product that you are offering, and the keywords that you are trying to rank for don't mesh. Perhaps your product USP isn't right. It could be tons of different things. How can you check if this might be the case? Let's say that you have a particular keyword that you want to rank for. You have created this piece of content for your site, it is optimized, and you feel that you should be ranking well for it.
My first course of action is always to open an incognito window. I search the term that we are trying to rank for. If we are on page one, I make sure to open every page that falls above us in the listing. Then I sit down and analyze why it is that they are outranking us. The same goes even if you are not on the first page of the SERPs. Always look at what is already ranking. Ask yourself this question. "Is what I am about to put out better than all of the pages on the first page?" If it is not, then you are going to have a tough time ranking. Just keep that in mind.
Or Could It Be This…
So you have gone through every part of this process, and you still feel that you should be ranking! What gives? Putting feelings aside, because many times, emotions are wrong. In all honesty, the one thing that I see as the root cause of this is simple. It ties back to how time-consuming this optimizing process is. Figuring out why something isn't performing can take hours. People always forget that as marketers, we are also tasked with promotion. Oh, glorious word. PROMOTION.
You have to factor in promotion. I think my post is the bees-knees, you might think yours is the cat's pajamas, but that doesn't mean it will be a success. If it truly is that good, then a little promotion will help it to gain the steam that it needs to get the ball rolling. This is where social media, link building, PR, etc. all come into play. Typically one a person is tasked with handling all of these functions, but it can become an arduous process. At times, this process can fall to the wayside if the team is not diligent.
This is why I say that SEO does not create demand. Promotion does.
People have such a hard time with SEO companies. They ask, what can you do for me? Companies have to say, well, it depends…., and then things get off to a shaky start. What do I mean? It depends? Where there is less demand, things are going to be harder in one aspect, where there is more, they are going to be harder in another perspective. It might be easier for me to rank for a handful of terms in the middle of nowhere, but that might be because there is less comparative demand for these terms there. This means that we can have the rankings. At the end of the day, though, we need to focus on what is going to convert.
On the other hand, going after these same terms in a major metropolitan city would end up eating up our entire management budget. The competition will also most likely be much more fierce, requiring out-of-the-box thinking that tends to be tough to scale.
Yes, you can take demand from your competitors through better SEO. You can funnel that demand over to your website in an optimized fashion. You can't (necessarily) create it. I say necessarily because optimizations can have an impact on your branding, but the only thing that produces demand is promotion. So make sure that your website's technical SEO is in order, that your content is top-notch, and ensure that you are promoting it. If you follow these steps, then you are on your way to getting the SEO that you hear people talking about.