How many keywords should I have on my page?
The short answer here is that there isn't a set number of keywords you should include on any given page on your website. This number will change depending on the search volume and competitive level of the keyword, which can vary greatly. The best strategy is to make sure that you take certain steps to include keyword phrases throughout the page where they matter. Think of it as more a matter of strategy vs. quantity.
Typically, each page will include no more than two or three target keywords that appear multiple times throughout the page. It's most important to know where to place them.
There are several locations throughout the page where you should incorporate keywords.
All pages with written content should include a main header (H1) and possibly sub headers (H2s, H3s, etc.). You should try to include one keyword per header, but only if it feels natural. Google pays attention to this content arguably even more than to the main content itself.
Include one instance or more of a target keyword throughout the main content where, again, it feels natural. If a keyword appears in the appropriate context within the body of content, Google will likely reward this action. On the other hand, make sure you don't over-optimize with a large number of keywords. Not only does over-optimizing make reading awkward, but Google can also punish your website as a result.
This is what people actually see when they perform a Google search using a certain keyword. If you want to show up for one or two target keywords, you need to optimize meta titles (no more than 60 characters) and meta descriptions (max. 156 characters). This can help reinforce the keywords on the page itself.
Relevant images can help your webpage even more, particularly if the image is optimizable for some of your target keywords. If an image directly depicts what is being described on the page, you may be able to include keywords in the title and alt text.
Remember, don't try to stuff your webpage full of keywords. Focus more on the strategic placement of where the keywords need to be. If you want your website to rank for thousands, be prepared to write lots of content that ranks well for specific ones.