Search your own company name and there you are, first result. Search for what you actually sell and you're nowhere. Almost every business owner has done this and concluded that SEO is a scam.
It isn't, but the explanation is duller than most people selling it let on. Ranking for your own name proves nothing. Nobody searches your name unless they already know you, and those people were going to find you anyway.
Google can't rank a page it can't find
Start here, because it's more common than anyone admits.
Plenty of sites have pages Google has simply never looked at. Sometimes the site was launched with a setting switched on that tells search engines to stay away, and nobody switched it off. That setting is on by default while a site is being built, and forgetting it is the single most expensive checkbox in this industry.
Sometimes the pages exist but nothing links to them, so there's no path in. Sometimes the important text is inside an image or a PDF, which Google treats roughly the way you'd treat a locked filing cabinet.
You can check this in about a minute. Search site:yourdomain.com in
Google. What comes back is roughly what Google knows about. If pages are
missing from that list, no amount of writing will help until they're in
it.
You don't have a page for the thing you want to rank for
This is the one that catches most people.
You want to rank for "emergency boiler repair." You have a homepage, an about page, and a services page listing eleven things, one of which is boiler repair, in a bullet point.
Google is looking for the best page about emergency boiler repair. You haven't got one. You've got a bullet point. So it ranks someone who wrote a whole page about it, and that person isn't better than you at fixing boilers. They were just clearer about what the page was for.
One page, one job. That's most of it.
Your competitors have been at it longer
Unwelcome, but real. A site that's been publishing steadily for six years and has other sites linking to it has a head start you can't buy your way past in a month.
What you can do is pick fights you can win. "Plumber" is a fight with national companies and years of history. "Emergency plumber in [your town]" is a fight with four local firms, two of which have a website from 2014 and no page for it.
Narrower terms get searched less. They also convert far better, because someone typing a specific thing at 11pm is not browsing.
What to actually do about it
In order:
Check Google can see your pages at all. Free, takes minutes, and it's pointless doing anything else first.
If you serve a local area, fill in your Google Business listing properly. Every field, real photos, actual opening hours. For a lot of local searches this matters more than the website does, and most listings are half-finished.
Then build one real page for each thing you want to be found for, and be more specific than feels necessary.
None of this is fast. Anyone promising you page one in thirty days is either aiming at phrases nobody types or lying, and you'll usually find out which about four months in.