The simplest solution as your original thought about using
IsFoundOnPage(). If you have caching turned on, simply repeat the function for each keyword in your list. Only the first instance for each URL will take time to fetch, but from there, each keyword will only take a fraction of a second.
If you need something more flexible than a basic text match, you can also use
RegexpFindOnUrl() wrapped within
ROWS(), similar to this:
=ROWS( RegexpFindOnUrl("https://seotoolsforexcel.com/", "(seo)", 1) )
Note the above will find instances of "seo" anywhere within the page, so if you want to search only within visible text, you can try something like this:
=ROWS( RegexpFind( XPathOnUrl("https://seotoolsforexcel.com/", "//body//div", "", , "text"), "(seo)", 1 ) )