Yes and No!!!
It is worth it depending on a few factors.
I am in a very competitive field when it comes to SEO. I don’t try to compete with anyone because I don’t have the time or resources to compete at that level. So for me, it isn’t worth it. Plus, people who are searching for my industry online are looking at price, not quality or what I can provide.
If you market yourself through SEO but your site looks like a kid put it together, you are wasting your money and time. People may find your site but they won’t take you seriously.
You can take classes and try it yourself, but is your time really worth doing something you don’t already know how to do? You can hire a company, but again, do your homework. What are their results? What are their clients saying?
NO!!! And if anyone says it is, question them, question them, question them. What are they guaranteeing? I can guarantee I can you get you on the first page of Google for a keyword that has no relevance to your business, but that doesn’t accomplish anything. Keywords are what people type into the search engine to find you. If they are looking for your industry they are going to be typing in very specific keywords. Make sure the guarantee is in writing based on keywords you want. Otherwise, understand that this is a gamble and Google always changes the rules. There is no guarantee in SEO (from my background and knowledge of how it all works).
Again, do your homework.