Try this little on-page SEO experiment. Go to a page on your website that you are actively promoting but are having trouble ranking. Have your mother or grandmother or some non-techy friend look at the page. Give them only about 5 seconds to glance at it. Now close the browser and ask the person what the main topic of the page was. If they can give you the correct answer, give yourself a pat on the back. If they give the wrong answer, or just have no idea, you need to go back and do some more work on that page.
There have been times I have been asked to look at someone's page and tell them why it is not ranking well for the chosen keyword phrase. In many cases, it is a lack of backlinks that is the problem. However, I have often looked at pages that had no obvious topic or theme to back up the chosen keyword phrase. Sure, the phrase might have been in the title or it might have been thrown around in the middle of a 750-word text, but neither a user nor a bot would really grasp that the page was clearly, definitely about the topic that the webmaster believed it to be about. Sometimes when we create a page, we are too close to it to see it as others do. We already know what the intended topic is, so we are unable to judge the page from a user's point of view (or a bot's, for that matter). So let someone else look at the page. You may be surprised at what they see.