A lot of possibilities here, if you have just recently made the page changes you indicated above, I would recommend utilizing the Fetch and Render command in Google Search Console, and then Request To Re-Index the page. This will speed up the time it takes for Google to re-index your page with the changes you mentioned above (I have seen improvements in as fast as a day). You may need to verify your website in Google Search Console if you have not already in order to do this.
In addition to this, it may be beneficial to use more LSI (similar user intent) keywords on the page as it may be "over-optimized", for example if you have a page on lawn care that you want to rank for "lawn care in _____", try using "lawn services" and "lawn maintenance" in the H2s, image alt text, and content more instead of just re-using "lawn care" 99 times on the page. Also considering the length of the page is important as well, see if you can add a paragraph or two in new, unique content that mentions your keyword once or twice.
If neither of those work, it's time to start doing some backlink research to see what backlinks your competitors have that are ranking in the top 3-5 positions on Google for the keyword you are wanting to rank for. Use Moz' Open Site Explorer, Ahrefs, or SEMrush will be great in helping with this. I would also do a quick page speed audit, check the page's loading time with Pingdom and/or Google pagespeed insights. You may want to decrease the size of photos on the page or leverage cacheing (may need the help of a website developer depending on resources).
On-Site SEO is merely one facet of ranking your webpage higher, and if your keyword term that you are wanting to rank for is competitive you need to pay attention to technical SEO and Off-Site SEO and Quality Backlinks to the page as well, even if you have an "optimization score of 100" with whatever analysis tool you are using. Hope this helps and best of success!