The easy answer is about three to six months. It takes time for Google to index any pages created or optimized on your website.
A local business won’t get crawled as often by Google’s bots. They may only crawl your website once a month, scanning for anything new or changed keywords to update in their system. It then takes time for your content to work its way up the search engine results page.
If you have multiple pages focusing on the same thing, like a headache page and a migraine page, that is called cannibalization. If you published the headache page first and then you wrote the migraine page, it may take longer for the migraine page to start to rank, even for migraine-specific keywords. Google will think the headache page is the most important in terms of keywords.
Reaction time ultimately depends on how your website is structured, but three to six months is a reasonable amount of time for things to start ranking well.