https://developers.google.com/search/docs/fundamentals/seo-s...
SEO stands for Search Engine Optimization, so SEO means the process of optimizing a web site for better discovery by search engines.
The world of SEO teems with frauds and scams, people promising to get your site to the top with one weird trick, etc. Don't get fleeced. If you pay an expert make sure you tie payment to measurable results (using actual analytics). The search engines you care about have countermeasures to prevent the more obvious ways to artificially increase search engine rankings. You can do a lot with the content in the site, making the site friendly to crawlers, and getting other real sites to link to yours.
But, targeting those keywords will be really hard (as Yelp and friends) would be hard to beat in the rankings for that.
You could try targeting diy keywords ("how to clean a tub in nyc"), but even that might be challenging to beat websites like e-how or youtube.
If it was me, I'd try doing organic marketing on social media (e.g. fun tiktok videos), as their content goes stale fast, which means more opportunities to get in front of your audience.
Pretty hard to take influence on the "linked by other pages" thing, but this will come automatically as soon as you take the time to write good content and fix the technological basics. To do so, you could take a look at google page speed insights (https://pagespeed.web.dev). It also gives you hints what's wrong with your page, e.g.:
Reduce unused javascript (316kb)
Minimize third party javascript
Reduce javascript execution time (7.9 seconds)
Reduce load for the main thread (14.6 seconds)
...